On 2025-11-03 14:17, Paul E. McKenney wrote:
[...]
This is effectively a use of split-counters, but the split
is across concurrency handling mechanisms rather than across
CPUs.
Ah, got it, thank you! But we would need an additional softirq counter,
correct?
Fundamentally it depends on how you want to split frequent vs infrequent
accesses.
If the fast-paths you care about are all in thread context, then you
only need to split between percpu ops vs atomic counters. The per-thread
accesses would use percpu ops, and all the rest use atomics. The "all
the rest" can cover everything else including softirqs, irq, and nmis.
I will keep this in my back pocket in case Catalin's and Yicong's prefetch
trick turns out to be problematic, and again, thank you!
You're welcome! :)
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com