diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2018-05-01 15:05:45 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2018-07-12 15:39:01 -0700 |
commit | 91f63ced7dc4e80acd13386204327d5de00a672d (patch) | |
tree | 4c30ccd7ea1a69644291b276d5aa19bd79b60bc2 /kernel/rcu/tree.c | |
parent | 77cfc7bf24ba0ba37be54e224007847d485a860f (diff) | |
download | lwn-91f63ced7dc4e80acd13386204327d5de00a672d.tar.gz lwn-91f63ced7dc4e80acd13386204327d5de00a672d.zip |
rcu: Replace smp_wmb() with smp_store_release() for stall check
This commit gets rid of the smp_wmb() in record_gp_stall_check_time()
in favor of an smp_store_release().
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r-- | kernel/rcu/tree.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index a4277c1087d9..439228b79811 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -1246,9 +1246,9 @@ static void record_gp_stall_check_time(struct rcu_state *rsp) unsigned long j1; rsp->gp_start = j; - smp_wmb(); /* Record start time before stall time. */ j1 = rcu_jiffies_till_stall_check(); - WRITE_ONCE(rsp->jiffies_stall, j + j1); + /* Record ->gp_start before ->jiffies_stall. */ + smp_store_release(&rsp->jiffies_stall, j + j1); /* ^^^ */ rsp->jiffies_resched = j + j1 / 2; rsp->n_force_qs_gpstart = READ_ONCE(rsp->n_force_qs); } |