rcu/nocb: Enable re-awakening under high callback load
authorPaul E. McKenney <paulmck@linux.ibm.com>
Thu, 23 May 2019 17:43:58 +0000 (10:43 -0700)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Tue, 13 Aug 2019 21:35:49 +0000 (14:35 -0700)
commitaeeacd9d844b2219d47e9010298b635c68a2a4c9
tree25d875d28d600c3aebd746fbe0174c207f824238
parent0bd55c693617cd2488378d011b66b92e1dd66ecf
rcu/nocb: Enable re-awakening under high callback load

The __call_rcu_nocb_wake() function and its predecessors set
->qlen_last_fqs_check to zero for the first callback and to LONG_MAX / 2
for forced reawakenings.  The former can result in a too-quick reawakening
when there are many callbacks ready to invoke and the latter prevents a
second reawakening.  This commit therefore sets ->qlen_last_fqs_check
to the current number of callbacks in both cases.  While in the area,
this commit also moves both assignments under ->nocb_lock.

Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
kernel/rcu/tree_plugin.h