diff options
| author | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2026-08-08 13:31:49 -0400 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@kernel.org> | 2026-09-18 16:06:51 -0700 |
| commit | 0b8114b25f170df7577ae592a195efc4643d2484 (patch) | |
| tree | b4e567760c3773237ad3832c43ffbd7368fe0dc9 /tools/perf/scripts/python/stackcollapse.py | |
| parent | 2ddd9c4cc53bc4b06da7d23486247857c11e7420 (diff) | |
| download | linux-next-0b8114b25f170df7577ae592a195efc4643d2484.tar.gz linux-next-0b8114b25f170df7577ae592a195efc4643d2484.zip | |
hazptr: Implement two-phase wildcard scan
Implement a two-phase wildcard scan to guarantee forward progress of
synchronize_hazptr() even if there is a steady stream of ill-timed
readers which populate wildcards into per-CPU slots.
This is performed by flipping between two wildcard values (1UL and 2UL),
and alternatively scanning for the opposite wildcard while newcoming
readers use the other one.
There is no possibility to miss a reader because all slots for all
wildcards are accounted for during a synchronize.
As a simplification, use this period flip to drive the hazptr overflow
list selection as well, since there is really no point is making the
overflow list flip use a different state.
Protect the wildcard flip with a mutex.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Reviewed-by: Bradley Morgan <include@grrlz.net>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
