[GIT PULL] tasklist lock

From: Christian Brauner
Date: Sat Mar 22 2025 - 06:14:34 EST


Hey Linus,

/* Summary */

According to the performance testbots this brings a 23% performance
increase when creating new processes:

- Reduce tasklist_lock hold time on exit.

- Perform add_device_randomness() without tasklist_lock.

- Perform free_pid() calls outside of tasklist_lock.

- Drop irq disablement around pidmap_lock.

- Add some tasklist_lock asserts.

- Call flush_sigqueue() lockless by changing release_task().

- Don't pointlessly clear __exit_signal()->clear_tsk_thread_flag(TIF_SIGPENDING).

/* Testing */

gcc version 14.2.0 (Debian 14.2.0-6)
Debian clang version 16.0.6 (27+b1)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

No known conflicts.

Merge conflicts with other trees
================================

No known conflicts.

The following changes since commit 2014c95afecee3e76ca4a56956a936e23283f05b:

Linux 6.14-rc1 (2025-02-02 15:39:26 -0800)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/kernel-6.15-rc1.tasklist_lock

for you to fetch changes up to 0a7713ac0d98d02f2c69145754c93715ab07b307:

Merge patch series "reduce tasklist_lock hold time on exit and do some pid cleanup" (2025-02-07 11:22:44 +0100)

Please consider pulling these changes from the signed kernel-6.15-rc1.tasklist_lock tag.

Thanks!
Christian

----------------------------------------------------------------
kernel-6.15-rc1.tasklist_lock

----------------------------------------------------------------
Christian Brauner (2):
Merge patch series "exit: change the release_task() paths to call flush_sigqueue() lockless"
Merge patch series "reduce tasklist_lock hold time on exit and do some pid cleanup"

Mateusz Guzik (5):
exit: perform add_device_randomness() without tasklist_lock
exit: hoist get_pid() in release_task() outside of tasklist_lock
pid: sprinkle tasklist_lock asserts
pid: perform free_pid() calls outside of tasklist_lock
pid: drop irq disablement around pidmap_lock

Oleg Nesterov (2):
exit: change the release_task() paths to call flush_sigqueue() lockless
exit: kill the pointless __exit_signal()->clear_tsk_thread_flag(TIF_SIGPENDING)

include/linux/pid.h | 7 +++--
kernel/exit.c | 56 ++++++++++++++++++++++--------------
kernel/pid.c | 82 +++++++++++++++++++++++++++++------------------------
kernel/sys.c | 14 +++++----
4 files changed, 93 insertions(+), 66 deletions(-)