aboutsummaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-10-01 10:26:24 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-12-04 12:26:52 -0800
commitdf5bd5144a80a9f6c3807383b11f735dae9caf9d (patch)
treefce44d0970a70446c5fd6b50f2e764db0efb8e56 /ipc
parentrcu: Invert sync_rcu_exp_select_cpus() "if" statement (diff)
downloadlinux-dev-df5bd5144a80a9f6c3807383b11f735dae9caf9d.tar.xz
linux-dev-df5bd5144a80a9f6c3807383b11f735dae9caf9d.zip
rcu: Reduce expedited GP memory contention via per-CPU variables
Currently, the piggybacked-work checks carried out by sync_exp_work_done() atomically increment a small set of variables (the ->expedited_workdone0, ->expedited_workdone1, ->expedited_workdone2, ->expedited_workdone3 fields in the rcu_state structure), which will form a memory-contention bottleneck given a sufficiently large number of CPUs concurrently invoking either synchronize_rcu_expedited() or synchronize_sched_expedited(). This commit therefore moves these for fields to the per-CPU rcu_data structure, eliminating the memory contention. The show_rcuexp() function also changes to sum up each field in the rcu_data structures. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'ipc')
0 files changed, 0 insertions, 0 deletions