diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2021-09-29 11:09:34 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2021-12-07 16:22:22 -0800 |
commit | 790da248978a0722d92d1471630c881704f7eb0d (patch) | |
tree | 1c78e09b356d5dec37b650046fe141c03418715c /kernel/bpf/sysfs_btf.c | |
parent | 147f04b14adde831eb4a0a1e378667429732f9e8 (diff) |
rcu: Make idle entry report expedited quiescent states
In non-preemptible kernels, an unfortunately timed expedited grace period
can result in the rcu_exp_handler() IPI handler setting the rcu_data
structure's cpu_no_qs.b.exp field just as the target CPU enters idle.
There are situations in which this field will not be checked until after
that CPU exits idle. The resulting grace-period latency does not qualify
as "expedited".
This commit therefore checks this field upon non-preemptible idle entry in
the rcu_preempt_deferred_qs() function. It also qualifies the rcu_core()
preempt_count() check with IS_ENABLED(CONFIG_PREEMPT_COUNT) to prevent
false-positive quiescent states from count-free kernels.
Reported-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'kernel/bpf/sysfs_btf.c')
0 files changed, 0 insertions, 0 deletions