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(-)