[GIT PULL] scheduler fixes

From: Ingo Molnar

Date: Fri May 08 2026 - 21:57:21 EST


Linus,

Please pull the latest sched/urgent Git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-urgent-2026-05-09

for you to fetch changes up to 9f6d929ee2c6f0266edb564bcd2bd47fd6e884a8:

Miscellaneous scheduler fixes:

- Fix spurious failures in rseq self-tests (Mark Brown)

- Fix rseq rseq::cpu_id_start ABI regression due to
TCMalloc's creative use of the supposedly read-only field.
The fix is to introduce a new ABI variant based on
a new (larger) rseq area registration size, to keep
the TCMalloc use of rseq backwards compatible on new kernels.
(Thomas Gleixner)

- Fix wakeup_preempt_fair() for not waking up task (Vincent Guittot)

- Fix s64 mult overflow in vruntime_eligible() (Zhan Xusheng)

Thanks,

Ingo

------------------>
Mark Brown (1):
selftests/rseq: Don't run tests with runner scripts outside of the scripts

Thomas Gleixner (10):
rseq: Set rseq::cpu_id_start to 0 on unregistration
rseq: Protect rseq_reset() against interrupts
rseq: Don't advertise time slice extensions if disabled
rseq: Revert to historical performance killing behaviour
selftests/rseq: Skip tests if time slice extensions are not available
selftests/rseq: Make registration flexible for legacy and optimized mode
selftests/rseq: Validate legacy behavior
rseq: Implement read only ABI enforcement for optimized RSEQ V2 mode
rseq: Reenable performance optimizations conditionally
selftests/rseq: Expand for optimized RSEQ ABI v2

Vincent Guittot (1):
sched/fair: Fix wakeup_preempt_fair() for not waking up task

Zhan Xusheng (1):
sched/fair: Fix overflow in vruntime_eligible()


Documentation/userspace-api/rseq.rst | 94 ++++++++-
include/linux/rseq.h | 37 ++--
include/linux/rseq_entry.h | 122 ++++++------
include/linux/rseq_types.h | 13 +-
include/uapi/linux/rseq.h | 5 +-
kernel/rseq.c | 214 +++++++++++++--------
kernel/sched/fair.c | 44 ++++-
kernel/sched/membarrier.c | 11 +-
tools/testing/selftests/rseq/Makefile | 21 +-
tools/testing/selftests/rseq/check_optimized.c | 17 ++
tools/testing/selftests/rseq/legacy_check.c | 65 +++++++
tools/testing/selftests/rseq/param_test.c | 25 ++-
tools/testing/selftests/rseq/rseq-abi.h | 7 +-
tools/testing/selftests/rseq/rseq.c | 39 ++--
tools/testing/selftests/rseq/rseq.h | 8 +-
tools/testing/selftests/rseq/run_legacy_check.sh | 4 +
tools/testing/selftests/rseq/run_param_test.sh | 39 ++++
tools/testing/selftests/rseq/run_timeslice_test.sh | 14 ++
tools/testing/selftests/rseq/slice_test.c | 12 +-
19 files changed, 580 insertions(+), 211 deletions(-)
create mode 100644 tools/testing/selftests/rseq/check_optimized.c
create mode 100644 tools/testing/selftests/rseq/legacy_check.c
create mode 100755 tools/testing/selftests/rseq/run_legacy_check.sh
create mode 100755 tools/testing/selftests/rseq/run_timeslice_test.sh