[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250710110011.384614-1-bigeasy@linutronix.de>
Date: Thu, 10 Jul 2025 13:00:05 +0200
From: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
To: linux-kernel@...r.kernel.org
Cc: André Almeida <andrealmeid@...lia.com>,
Darren Hart <dvhart@...radead.org>,
Davidlohr Bueso <dave@...olabs.net>,
Ingo Molnar <mingo@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>,
Valentin Schneider <vschneid@...hat.com>,
Waiman Long <longman@...hat.com>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Subject: [PATCH v2 0/6] futex: Use RCU-based per-CPU reference counting
I picked up PeterZ futex patch from
https://lore.kernel.org/all/20250624190118.GB1490279@noisy.programming.kicks-ass.net/
and I am posting it here it now so it can be staged for v6.17.
This survived a few days on my machine and compile robot reported that
is passes its tests.
v1…v2 https://lore.kernel.org/all/20250707143623.70325-1-bigeasy@linutronix.de
- Removed the IMMUTABLE bits
- There was a race if the application exits while the RCU callback is
pending. Stuffed with mmget()/ mmput_async().
Changes since its initial posting:
- A patch description has been added
- The testuite is "fixed" slightly different and has been split out
- futex_mm_init() is fixed up.
- The guard(preempt) has been replaced with guard(rcu) since there is
no reason to disable preemption.
Since it was not yet released, should we rip out the IMMUTABLE bits and
just stick with GET/SET slots?
Peter Zijlstra (1):
futex: Use RCU-based per-CPU reference counting instead of rcuref_t
Sebastian Andrzej Siewior (5):
selftests/futex: Adapt the private hash test to RCU related changes
futex: Make futex_private_hash_get() static
futex: Remove support for IMMUTABLE
selftests/futex: Remove support for IMMUTABLE
perf bench futex: Remove support for IMMUTABLE
include/linux/futex.h | 16 +-
include/linux/mm_types.h | 5 +
include/linux/sched/mm.h | 2 +-
include/uapi/linux/prctl.h | 2 -
init/Kconfig | 4 -
kernel/fork.c | 8 +-
kernel/futex/core.c | 281 ++++++++++++++----
kernel/futex/futex.h | 2 -
tools/include/uapi/linux/prctl.h | 2 -
tools/perf/bench/futex-hash.c | 1 -
tools/perf/bench/futex-lock-pi.c | 1 -
tools/perf/bench/futex-requeue.c | 1 -
tools/perf/bench/futex-wake-parallel.c | 1 -
tools/perf/bench/futex-wake.c | 1 -
tools/perf/bench/futex.c | 21 +-
tools/perf/bench/futex.h | 1 -
.../trace/beauty/include/uapi/linux/prctl.h | 2 -
.../futex/functional/futex_priv_hash.c | 113 +++----
18 files changed, 315 insertions(+), 149 deletions(-)
--
2.50.0
Powered by blists - more mailing lists