• P
    rcu: Remove rcu_needs_cpu_flush() to avoid false quiescent states · e90c53d3
    Paul E. McKenney 提交于
    The purpose of rcu_needs_cpu_flush() was to iterate on pushing the
    current grace period in order to help the current CPU enter dyntick-idle
    mode.  However, this can result in failures if the CPU starts entering
    dyntick-idle mode, but then backs out.  In this case, the call to
    rcu_pending() from rcu_needs_cpu_flush() might end up announcing a
    non-existing quiescent state.
    
    This commit therefore removes rcu_needs_cpu_flush() in favor of letting
    the dyntick-idle machinery at the end of the softirq handler push the
    loop along via its call to rcu_pending().
    Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    e90c53d3
rcutree.c 63.6 KB