]> git.karo-electronics.de Git - linux-beck.git/commitdiff
rcu: Remove ACCESS_ONCE() from jiffies
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 5 Dec 2013 02:42:03 +0000 (18:42 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 17 Feb 2014 23:01:42 +0000 (15:01 -0800)
Because jiffies is one of a very few variables marked "volatile", there
is no need to use ACCESS_ONCE() when accessing it.  This commit therefore
removes the redundant ACCESS_ONCE() wrappers.

Reported by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
kernel/rcu/torture.c
kernel/rcu/tree.c

index ab7dd192a50b04d603fdcc604f3b6512e9889d31..022c5312b7259876b706cb2bc43e1dd6ac127afc 100644 (file)
@@ -1352,7 +1352,7 @@ rcu_torture_shutdown(void *arg)
        unsigned long jiffies_snap;
 
        VERBOSE_PRINTK_STRING("rcu_torture_shutdown task started");
-       jiffies_snap = ACCESS_ONCE(jiffies);
+       jiffies_snap = jiffies;
        while (ULONG_CMP_LT(jiffies_snap, shutdown_time) &&
               !kthread_should_stop()) {
                delta = shutdown_time - jiffies_snap;
@@ -1361,7 +1361,7 @@ rcu_torture_shutdown(void *arg)
                                 "rcu_torture_shutdown task: %lu jiffies remaining\n",
                                 torture_type, delta);
                schedule_timeout_interruptible(delta);
-               jiffies_snap = ACCESS_ONCE(jiffies);
+               jiffies_snap = jiffies;
        }
        if (kthread_should_stop()) {
                VERBOSE_PRINTK_STRING("rcu_torture_shutdown task stopping");
index 321feef0f5c0763d75bc0c38e3e46ba703a5e601..73c3cd2b87ac5fefd498eead7e981d4739029df5 100644 (file)
@@ -837,7 +837,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
         * to the next.  Only do this for the primary flavor of RCU.
         */
        if (rdp->rsp == rcu_state &&
-           ULONG_CMP_GE(ACCESS_ONCE(jiffies), rdp->rsp->jiffies_resched)) {
+           ULONG_CMP_GE(jiffies, rdp->rsp->jiffies_resched)) {
                rdp->rsp->jiffies_resched += 5;
                resched_cpu(rdp->cpu);
        }
@@ -847,7 +847,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
 
 static void record_gp_stall_check_time(struct rcu_state *rsp)
 {
-       unsigned long j = ACCESS_ONCE(jiffies);
+       unsigned long j = jiffies;
        unsigned long j1;
 
        rsp->gp_start = j;
@@ -1005,7 +1005,7 @@ static void check_cpu_stall(struct rcu_state *rsp, struct rcu_data *rdp)
 
        if (rcu_cpu_stall_suppress || !rcu_gp_in_progress(rsp))
                return;
-       j = ACCESS_ONCE(jiffies);
+       j = jiffies;
 
        /*
         * Lots of memory barriers to reject false positives.