• Frederic Weisbecker's avatar
    rcu/nocb: Prepare for fine-grained deferred wakeup · 87090516
    Frederic Weisbecker authored
    Tuning the deferred wakeup level must be done from a safe wakeup
    point. Currently those sites are:
    
    * ->nocb_timer
    * user/idle/guest entry
    * CPU down
    * softirq/rcuc
    
    All of these sites perform the wake up for both RCU_NOCB_WAKE and
    RCU_NOCB_WAKE_FORCE.
    
    In order to merge ->nocb_timer and ->nocb_bypass_timer together, we plan
    to add a new RCU_NOCB_WAKE_BYPASS that really should be deferred until
    a timer fires so that we don't wake up the NOCB-gp kthread too early.
    
    To prepare for that, this commit specifies the per-callsite wakeup
    level/limit.
    
    Cc: Josh Triplett <josh@joshtriplett.org>
    Cc: Lai Jiangshan <jiangshanlai@gmail.com>
    Cc: Joel Fernandes <joel@joelfernandes.org>
    Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
    [ paulmck: Fix non-NOCB rcu_nocb_need_deferred_wakeup() definition. ]
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    87090516
tree.c 151 KB