• Paul E. McKenney's avatar
    rcu: Move synchronize_sched_expedited() to combining tree · bce5fa12
    Paul E. McKenney authored
    Currently, synchronize_sched_expedited() uses a single global counter
    to track the number of remaining context switches that the current
    expedited grace period must wait on.  This is problematic on large
    systems, where the resulting memory contention can be pathological.
    This commit therefore makes synchronize_sched_expedited() instead use
    the combining tree in the same manner as synchronize_rcu_expedited(),
    keeping memory contention down to a dull roar.
    
    This commit creates a temporary function sync_sched_exp_select_cpus()
    that is very similar to sync_rcu_exp_select_cpus().  A later commit
    will consolidate these two functions, which becomes possible when
    synchronize_sched_expedited() switches from stop_one_cpu_nowait() to
    smp_call_function_single().
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    bce5fa12
tree.c 140 KB