diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-04-27 07:41:37 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-04-27 07:41:37 +0200 |
commit | 96fd20cf3f1620d699db43cd08745f1e57e1072a (patch) | |
tree | 88b0caa1cd8bfa66e6a4b00ad21108f03369eb03 /kernel/rcu/tree.c | |
parent | d160a727c40e7175aa642137910a3fda46262fc8 (diff) | |
parent | 22607d66bbc3e81140d3bcf08894f4378eb36428 (diff) |
Merge branch 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU updates from Paul E. McKenney:
"This series greatly reduces the performance degradation of Tree SRCU
on a CPU-hotplug stress test. The effect was not subtle: Mike Galbraith
measured Classic SRCU at 55 seconds and Tree SRCU at more than 16 -minutes-
for this test. Mike collected ftrace data that showed that Classic SRCU
was auto-expediting invocations of synchronize_srcu() that found SRCU
completely idle. This series therefore adds this auto-expedite capability
to Tree SRCU, bringing the performance shortfall to less than ten seconds,
which is a great improvement over the initial shortfall of 15 minutes."
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r-- | kernel/rcu/tree.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 23aa02587d0f..91fff49d5869 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -704,15 +704,11 @@ void rcutorture_get_gp_data(enum rcutorture_type test_type, int *flags, default: break; } - if (rsp != NULL) { - *flags = READ_ONCE(rsp->gp_flags); - *gpnum = READ_ONCE(rsp->gpnum); - *completed = READ_ONCE(rsp->completed); + if (rsp == NULL) return; - } - *flags = 0; - *gpnum = 0; - *completed = 0; + *flags = READ_ONCE(rsp->gp_flags); + *gpnum = READ_ONCE(rsp->gpnum); + *completed = READ_ONCE(rsp->completed); } EXPORT_SYMBOL_GPL(rcutorture_get_gp_data); |