• Paul E. McKenney's avatar
    rcu: Avoid self-IPI in sync_rcu_exp_select_node_cpus() · b9ad4d6e
    Paul E. McKenney authored
    Although sync_rcu_exp_select_node_cpus() treats the current CPU as being
    in a quiescent state, it might well migrate to some other CPU before
    reaching the smp_call_function_single(), which could then result in an
    unnecessary simulated self-IPI.  This commit therefore instead simply
    refuses to invoke smp_call_function_single() on the current CPU, which
    causes the later rcu_report_exp_cpu_mult() to report this CPU's quiescent
    state with less overhead.
    
    This also reduces the rcu_exp_handler() function's state space by removing
    the direct call that this smp_call_function_single() uses to emulate the
    requested self-IPI.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
    [ paulmck: Use get_cpu() instead of preempt_disable() per Joel Fernandes. ]
    b9ad4d6e
tree_exp.h 24 KB