| From: |
| Mathieu Desnoyers <mathieu.desnoyers-AT-efficios.com> |
| To: |
| Linus Torvalds <torvalds-AT-linux-foundation.org>, Andrew Morton <akpm-AT-linux-foundation.org>, Peter Zijlstra <peterz-AT-infradead.org> |
| Subject: |
| [RFC PATCH 0/4] sched+mm: Track lazy active mm existence with hazard pointers |
| Date: |
| Tue, 01 Oct 2024 21:02:01 -0400 |
| Message-ID: |
| <20241002010205.1341915-1-mathieu.desnoyers@efficios.com> |
| Cc: |
| linux-kernel-AT-vger.kernel.org, Mathieu Desnoyers <mathieu.desnoyers-AT-efficios.com>, Nicholas Piggin <npiggin-AT-gmail.com>, Michael Ellerman <mpe-AT-ellerman.id.au>, Greg Kroah-Hartman <gregkh-AT-linuxfoundation.org>, Sebastian Andrzej Siewior <bigeasy-AT-linutronix.de>, "Paul E. McKenney" <paulmck-AT-kernel.org>, Will Deacon <will-AT-kernel.org>, Boqun Feng <boqun.feng-AT-gmail.com>, Alan Stern <stern-AT-rowland.harvard.edu>, John Stultz <jstultz-AT-google.com>, Neeraj Upadhyay <Neeraj.Upadhyay-AT-amd.com>, Frederic Weisbecker <frederic-AT-kernel.org>, Joel Fernandes <joel-AT-joelfernandes.org>, Josh Triplett <josh-AT-joshtriplett.org>, Uladzislau Rezki <urezki-AT-gmail.com>, Steven Rostedt <rostedt-AT-goodmis.org>, Lai Jiangshan <jiangshanlai-AT-gmail.com>, Zqiang <qiang.zhang1211-AT-gmail.com>, Ingo Molnar <mingo-AT-redhat.com>, Waiman Long <longman-AT-redhat.com>, Mark Rutland <mark.rutland-AT-arm.com>, Thomas Gleixner <tglx-AT-linutronix.de>, Vlastimil Babka <vbabka-AT-suse.cz>, maged.michael-AT-gmail.com, Mateusz Guzik <mjguzik-AT-gmail.com>, Jonas Oberhauser <jonas.oberhauser-AT-huaweicloud.com>, rcu-AT-vger.kernel.org, linux-mm-AT-kvack.org, lkmm-AT-lists.linux.dev |
| Archive-link: |
| Article |
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%
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@efficios.com>
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: Boqun Feng <boqun.feng@gmail.com>
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 | 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