diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2024-05-15 10:01:34 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2024-05-15 10:01:34 -0700 |
commit | 1484f939b01c265a23de707c7bc982a404c3c52f (patch) | |
tree | 5f3e81043f8bfcd738a500115faffdf24c2936da | |
parent | 0ef7d8bce484449f7880419915651a80b360df9b (diff) | |
download | linux-rcu-dev.tar.gz |
EXP rcu-tasks: Synchronize RCU Tasks Trace GP with write to rq->currdev
More here TBD!
Reported-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
-rw-r--r-- | kernel/rcu/tasks.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h index 8c9538b555e372..8adbd886ad2ee6 100644 --- a/kernel/rcu/tasks.h +++ b/kernel/rcu/tasks.h @@ -1723,6 +1723,11 @@ static void rcu_tasks_trace_pregp_step(struct list_head *hop) for_each_possible_cpu(cpu) WARN_ON_ONCE(per_cpu(trc_ipi_to_cpu, cpu)); + // Force any concurrent rq->curr stores to complete, relying on + // the fact that a store instruction is a tiny region with preemption + // disabled, and thus an RCU read-side critical section. + synchronize_rcu(); + // Disable CPU hotplug across the CPU scan for the benefit of // any IPIs that might be needed. This also waits for all readers // in CPU-hotplug code paths. |