On Tue, Oct 01, 2024 at 09:02:01PM -0400, Mathieu Desnoyers wrote: > Hazard pointers appear to be a good fit for replacing refcount based lazy > active mm tracking. > > Highlight: > > will-it-scale context_switch1_threads > > nr threads (-t) speedup > 24 +3% > 48 +12% > 96 +21% > 192 +28% Impressive!!! I have to ask... Any data for smaller numbers of CPUs? Thanx, Paul > I'm curious to see what the build bots have to say about this. > > This series applies on top of v6.11.1. > > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> > Cc: Nicholas Piggin <npiggin@xxxxxxxxx> > Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxx> > Cc: Will Deacon <will@xxxxxxxxxx> > Cc: Boqun Feng <boqun.feng@xxxxxxxxx> > Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Cc: John Stultz <jstultz@xxxxxxxxxx> > Cc: Neeraj Upadhyay <Neeraj.Upadhyay@xxxxxxx> > Cc: Boqun Feng <boqun.feng@xxxxxxxxx> > Cc: Frederic Weisbecker <frederic@xxxxxxxxxx> > Cc: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> > Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx> > Cc: Uladzislau Rezki <urezki@xxxxxxxxx> > Cc: Steven Rostedt <rostedt@xxxxxxxxxxx> > Cc: Lai Jiangshan <jiangshanlai@xxxxxxxxx> > Cc: Zqiang <qiang.zhang1211@xxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: Waiman Long <longman@xxxxxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Vlastimil Babka <vbabka@xxxxxxx> > Cc: maged.michael@xxxxxxxxx > Cc: Mateusz Guzik <mjguzik@xxxxxxxxx> > Cc: Jonas Oberhauser <jonas.oberhauser@xxxxxxxxxxxxxxx> > Cc: rcu@xxxxxxxxxxxxxxx > Cc: linux-mm@xxxxxxxxx > Cc: lkmm@xxxxxxxxxxxxxxx > > Mathieu Desnoyers (4): > compiler.h: Introduce ptr_eq() to preserve address dependency > Documentation: RCU: Refer to ptr_eq() > hp: Implement Hazard Pointers > sched+mm: Use hazard pointers to track lazy active mm existence > > Documentation/RCU/rcu_dereference.rst | 38 ++++++- > Documentation/mm/active_mm.rst | 9 +- > arch/Kconfig | 32 ------ > arch/powerpc/Kconfig | 1 - > arch/powerpc/mm/book3s64/radix_tlb.c | 23 +--- > include/linux/compiler.h | 63 +++++++++++ > include/linux/hp.h | 154 ++++++++++++++++++++++++++ > include/linux/mm_types.h | 3 - > include/linux/sched/mm.h | 71 +++++------- > kernel/Makefile | 2 +- > kernel/exit.c | 4 +- > kernel/fork.c | 47 ++------ > kernel/hp.c | 46 ++++++++ > kernel/sched/sched.h | 8 +- > lib/Kconfig.debug | 10 -- > 15 files changed, 346 insertions(+), 165 deletions(-) > create mode 100644 include/linux/hp.h > create mode 100644 kernel/hp.c > > -- > 2.39.2