public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v9 00/11] futex: Add support task local hash maps.
@ 2025-02-25 17:09 Sebastian Andrzej Siewior
  2025-02-25 17:09 ` [PATCH v9 01/11] futex: fixup futex_wait_setup [fold futex: Move futex_queue() into futex_wait_setup()] Sebastian Andrzej Siewior
                   ` (11 more replies)
  0 siblings, 12 replies; 26+ messages in thread
From: Sebastian Andrzej Siewior @ 2025-02-25 17:09 UTC (permalink / raw)
  To: linux-kernel
  Cc: André Almeida, Darren Hart, Davidlohr Bueso, Ingo Molnar,
	Juri Lelli, Peter Zijlstra, Thomas Gleixner, Valentin Schneider,
	Waiman Long, Sebastian Andrzej Siewior

Hi,

this is a follow up on
        https://lore.kernel.org/ZwVOMgBMxrw7BU9A@jlelli-thinkpadt14gen4.remote.csb

and adds support for task local futex_hash_bucket.

This is rebased of v8 ontop of PeterZ's futex_class. The complete tree
is at
	https://git.kernel.org/pub/scm/linux/kernel/git/bigeasy/staging.git/log/?h=futex_local_v9
	https://git.kernel.org/pub/scm/linux/kernel/git/bigeasy/staging.git futex_local_v9

v8…v9 https://lore.kernel.org/all/20250203135935.440018-1-bigeasy@linutronix.de
  - Rebase on top PeterZ futex_class
  - A few patches vanished due to class rework.
  - struct futex_hash_bucket has now pointer to futex_private_hash
    instead of slot number
  - CONFIG_BASE_SMALL now removes support for the "futex local hash"
    instead of restricting it to to 2 slots.
  - Number of threads, used to determine the number of slots, is capped
    at num_online_cpus.

v7…v8 https://lore.kernel.org/all/20250123202446.610203-1-bigeasy@linutronix.de/
  - Rebase on v6.14-rc1

Sebastian Andrzej Siewior (11):
  futex: fixup futex_wait_setup [fold futex: Move futex_queue() into
    futex_wait_setup()]
  futex: Create helper function to initialize a hash slot.
  futex: Add basic infrastructure for local task local hash.
  futex: Hash only the address for private futexes.
  futex: Allow automatic allocation of process wide futex hash.
  futex: Decrease the waiter count before the unlock operation.
  futex: Introduce futex_q_lockptr_lock().
  futex: Acquire a hash reference in futex_wait_multiple_setup().
  futex: Allow to re-allocate the private local hash.
  futex: Resize local futex hash table based on number of threads.
  futex: Use a hashmask instead of hashsize.

 include/linux/futex.h      |  32 ++-
 include/linux/mm_types.h   |   7 +-
 include/uapi/linux/prctl.h |   5 +
 kernel/fork.c              |  24 ++
 kernel/futex/core.c        | 450 +++++++++++++++++++++++++++++++++++--
 kernel/futex/futex.h       |  15 +-
 kernel/futex/pi.c          |  15 +-
 kernel/futex/requeue.c     |  29 ++-
 kernel/futex/waitwake.c    |  31 ++-
 kernel/sys.c               |   4 +
 10 files changed, 574 insertions(+), 38 deletions(-)

-- 
2.47.2


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

end of thread, other threads:[~2025-03-11 15:20 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-25 17:09 [PATCH v9 00/11] futex: Add support task local hash maps Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 01/11] futex: fixup futex_wait_setup [fold futex: Move futex_queue() into futex_wait_setup()] Sebastian Andrzej Siewior
2025-02-26  8:15   ` Thomas Gleixner
2025-02-26  8:40     ` Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 02/11] futex: Create helper function to initialize a hash slot Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 03/11] futex: Add basic infrastructure for local task local hash Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 04/11] futex: Hash only the address for private futexes Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 05/11] futex: Allow automatic allocation of process wide futex hash Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 06/11] futex: Decrease the waiter count before the unlock operation Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 07/11] futex: Introduce futex_q_lockptr_lock() Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 08/11] futex: Acquire a hash reference in futex_wait_multiple_setup() Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 09/11] futex: Allow to re-allocate the private local hash Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 10/11] futex: Resize local futex hash table based on number of threads Sebastian Andrzej Siewior
2025-02-25 17:09 ` [PATCH v9 11/11] futex: Use a hashmask instead of hashsize Sebastian Andrzej Siewior
2025-02-26  8:17   ` Thomas Gleixner
2025-03-03 10:54 ` [PATCH v9 00/11] futex: Add support task local hash maps Peter Zijlstra
2025-03-03 14:17   ` Sebastian Andrzej Siewior
2025-03-03 16:40     ` Sebastian Andrzej Siewior
2025-03-04 14:58       ` Sebastian Andrzej Siewior
2025-03-05  9:02         ` Sebastian Andrzej Siewior
2025-03-10 16:01           ` Peter Zijlstra
2025-03-10 16:27             ` Sebastian Andrzej Siewior
2025-03-11 10:17               ` Peter Zijlstra
2025-03-11 10:33                 ` Sebastian Andrzej Siewior
2025-03-10 15:57         ` Peter Zijlstra
2025-03-11 15:20   ` Sebastian Andrzej Siewior

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox