rcu: Export rcu_request_urgent_qs_task()
authorPaul E. McKenney <paulmck@kernel.org>
Thu, 6 Jul 2023 03:34:43 +0000 (20:34 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 12 Jul 2023 21:45:23 +0000 (23:45 +0200)
commit43a89baecfe200cb4530f42b9fcf904925d6d14a
tree49f4959bd244b9885cb585e1663cce7988cf334d
parent04fabf00b4d3aff5d010ecb617001814e409e24a
rcu: Export rcu_request_urgent_qs_task()

If a CPU is executing a long series of non-sleeping system calls,
RCU grace periods can be delayed for on the order of a couple hundred
milliseconds.  This is normally not a problem, but if each system call
does a call_rcu(), those callbacks can stack up.  RCU will eventually
notice this callback storm, but use of rcu_request_urgent_qs_task()
allows the code invoking call_rcu() to give RCU a heads up.

This function is not for general use, not yet, anyway.

Reported-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20230706033447.54696-11-alexei.starovoitov@gmail.com
include/linux/rcutiny.h
include/linux/rcutree.h
kernel/rcu/rcu.h