OSDN Git Service

sched/membarrier: synchronize_sched() with synchronize_rcu()
authorPaul E. McKenney <paulmck@linux.ibm.com>
Wed, 7 Nov 2018 03:09:14 +0000 (19:09 -0800)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Tue, 27 Nov 2018 17:21:43 +0000 (09:21 -0800)
Now that synchronize_rcu() waits for preempt-disable regions of code
as well as RCU read-side critical sections, synchronize_sched() can be
replaced by synchronize_rcu().  This commit therefore makes this change.

Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
kernel/sched/membarrier.c

index 388a7a6..3cd8a3a 100644 (file)
@@ -210,7 +210,7 @@ static int membarrier_register_global_expedited(void)
                 * future scheduler executions will observe the new
                 * thread flag state for this mm.
                 */
-               synchronize_sched();
+               synchronize_rcu();
        }
        atomic_or(MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY,
                  &mm->membarrier_state);
@@ -246,7 +246,7 @@ static int membarrier_register_private_expedited(int flags)
                 * Ensure all future scheduler executions will observe the
                 * new thread flag state for this process.
                 */
-               synchronize_sched();
+               synchronize_rcu();
        }
        atomic_or(state, &mm->membarrier_state);