• Paul E. McKenney's avatar
    rcu: Kick adaptive-ticks CPUs that are holding up RCU grace periods · 65d798f0
    Paul E. McKenney authored
    Adaptive-ticks CPUs inform RCU when they enter kernel mode, but they do
    not necessarily turn the scheduler-clock tick back on.  This state of
    affairs could result in RCU waiting on an adaptive-ticks CPU running
    for an extended period in kernel mode.  Such a CPU will never run the
    RCU state machine, and could therefore indefinitely extend the RCU state
    machine, sooner or later resulting in an OOM condition.
    
    This patch, inspired by an earlier patch by Frederic Weisbecker, therefore
    causes RCU's force-quiescent-state processing to check for this condition
    and to send an IPI to CPUs that remain in that state for too long.
    "Too long" currently means about three jiffies by default, which is
    quite some time for a CPU to remain in the kernel without blocking.
    The rcu_tree.jiffies_till_first_fqs and rcutree.jiffies_till_next_fqs
    sysfs variables may be used to tune "too long" if needed.
    Reported-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Chris Metcalf <cmetcalf@tilera.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Geoff Levand <geoff@infradead.org>
    Cc: Gilad Ben Yossef <gilad@benyossef.com>
    Cc: Hakan Akkan <hakanakkan@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Kevin Hilman <khilman@linaro.org>
    Cc: Li Zhong <zhong@linux.vnet.ibm.com>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    65d798f0
rcutree_plugin.h 74.3 KB