linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v2 0/4] sched+mm: Track lazy active mm existence with hazard pointers
@ 2024-10-04 18:27 Mathieu Desnoyers
  2024-10-04 18:27 ` [RFC PATCH v2 1/4] compiler.h: Introduce ptr_eq() to preserve address dependency Mathieu Desnoyers
                   ` (3 more replies)
  0 siblings, 4 replies; 26+ messages in thread
From: Mathieu Desnoyers @ 2024-10-04 18:27 UTC (permalink / raw)
  To: Boqun Feng
  Cc: linux-kernel, Mathieu Desnoyers, Linus Torvalds, Andrew Morton,
	Peter Zijlstra, Nicholas Piggin, Michael Ellerman,
	Greg Kroah-Hartman, Sebastian Andrzej Siewior, Paul E. McKenney,
	Will Deacon, Alan Stern, John Stultz, Neeraj Upadhyay,
	Frederic Weisbecker, Joel Fernandes, Josh Triplett,
	Uladzislau Rezki, Steven Rostedt, Lai Jiangshan, Zqiang,
	Ingo Molnar, Waiman Long, Mark Rutland, Thomas Gleixner,
	Vlastimil Babka, maged.michael, Mateusz Guzik, Jonas Oberhauser,
	rcu, linux-mm, lkmm

[ Based on recent discussion with Linus, it appears that this series
  just proves that it's time to get rid of active mm altogether:

  https://lore.kernel.org/lkml/CAHk-=wgztWbA4z85xKob4eS9P=Nt5h4j=HnN+Pc90expskiCRA@mail.gmail.com/

  I'm posting a v2 fixing minor issues from v1 in case it can be useful
  to try hazard pointers with other use-cases, or for further
  benchmarking of active mm tracking impact.
]

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
     1                -0.2%
     2                +0.4%
     3                +0.2%
     6                +0.6%
    12                +0.8%
    24                +3%
    48               +12%
    96               +21%
   192               +28%
   384                +4%
   768                -0.6%

This series applies on top of v6.11.1.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: "Paul E. McKenney" <paulmck@kernel.org>
Cc: Will Deacon <will@kernel.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: John Stultz <jstultz@google.com>
Cc: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Frederic Weisbecker <frederic@kernel.org>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Uladzislau Rezki <urezki@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Cc: Zqiang <qiang.zhang1211@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Waiman Long <longman@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: maged.michael@gmail.com
Cc: Mateusz Guzik <mjguzik@gmail.com>
Cc: Jonas Oberhauser <jonas.oberhauser@huaweicloud.com>
Cc: rcu@vger.kernel.org
Cc: linux-mm@kvack.org
Cc: lkmm@lists.linux.dev

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                    | 158 ++++++++++++++++++++++++++
 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, 350 insertions(+), 165 deletions(-)
 create mode 100644 include/linux/hp.h
 create mode 100644 kernel/hp.c

-- 
2.39.2


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2024-10-07 19:10 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-04 18:27 [RFC PATCH v2 0/4] sched+mm: Track lazy active mm existence with hazard pointers Mathieu Desnoyers
2024-10-04 18:27 ` [RFC PATCH v2 1/4] compiler.h: Introduce ptr_eq() to preserve address dependency Mathieu Desnoyers
2024-10-04 18:27 ` [RFC PATCH v2 2/4] Documentation: RCU: Refer to ptr_eq() Mathieu Desnoyers
2024-10-04 21:15   ` Joel Fernandes
2024-10-06 19:52   ` David Laight
2024-10-06 20:39     ` Paul E. McKenney
2024-10-07 11:01     ` Sebastian Andrzej Siewior
2024-10-04 18:27 ` [RFC PATCH v2 3/4] hp: Implement Hazard Pointers Mathieu Desnoyers
2024-10-04 21:25   ` Joel Fernandes
2024-10-05 12:05     ` Mathieu Desnoyers
2024-10-05 11:19   ` Frederic Weisbecker
2024-10-05 11:42     ` Mathieu Desnoyers
2024-10-05 16:04   ` Peter Zijlstra
2024-10-05 16:07     ` Peter Zijlstra
2024-10-05 18:56       ` Mathieu Desnoyers
2024-10-07 10:42         ` Peter Zijlstra
2024-10-07 13:22           ` Mathieu Desnoyers
2024-10-05 18:50     ` Mathieu Desnoyers
2024-10-07 10:40       ` Peter Zijlstra
2024-10-07 14:50         ` Mathieu Desnoyers
2024-10-07 18:18           ` Paul E. McKenney
2024-10-07 19:06             ` Paul E. McKenney
2024-10-07 19:08               ` Mathieu Desnoyers
2024-10-04 18:27 ` [RFC PATCH v2 4/4] sched+mm: Use hazard pointers to track lazy active mm existence Mathieu Desnoyers
2024-10-07 14:50   ` kernel test robot
2024-10-07 15:05     ` Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).