Single-threaded processes don't need to issue barriers, since the thread's current CPU is the only one that matters.
Signed-off-by: Mathieu Desnoyers <[email protected]> CC: Peter Zijlstra <[email protected]> CC: Paul E. McKenney <[email protected]> CC: Boqun Feng <[email protected]> CC: Andrew Hunter <[email protected]> CC: Maged Michael <[email protected]> CC: [email protected] CC: Avi Kivity <[email protected]> CC: Benjamin Herrenschmidt <[email protected]> CC: Paul Mackerras <[email protected]> CC: Michael Ellerman <[email protected]> CC: Dave Watson <[email protected]> --- kernel/sched/membarrier.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/membarrier.c b/kernel/sched/membarrier.c index a92fddc22747..7eec6914d2d2 100644 --- a/kernel/sched/membarrier.c +++ b/kernel/sched/membarrier.c @@ -39,7 +39,7 @@ static void membarrier_private_expedited(void) bool fallback = false; cpumask_var_t tmpmask; - if (num_online_cpus() == 1) + if (num_online_cpus() == 1 || get_nr_threads(current) == 1) return; /* -- 2.11.0

