• Paul E. McKenney's avatar
    rcu: Accommodate zero jiffies_till_first_fqs and kthread kicking · 9cf422a8
    Paul E. McKenney authored
    It is perfectly fine to set the rcutree.jiffies_till_first_fqs boot
    parameter to zero, in fact, this can be useful on specialty systems that
    usually have at least one idle CPU and that need fast grace periods.
    This is because this setting causes the RCU grace-period kthread to
    scan for idle threads immediately after grace-period initialization,
    as opposed to waiting several jiffies to do so.
    
    It is also perfectly fine to set the rcutree.rcu_kick_kthreads kernel
    parameter, which gives the RCU grace-period kthread an extra wakeup
    if it doesn't make progress for a period of three times the setting of
    the rcutree.jiffies_till_first_fqs boot parameter.  This is of course
    problematic when the value of this parameter is zero, as it can result
    in unnecessary wakeup IPIs along with unnecessary WARN_ONCE() invocations.
    
    This commit therefore defers kthread kicking for at least two jiffies,
    regardless of the setting of rcutree.jiffies_till_first_fqs.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
    9cf422a8
tree.c 119 KB