mirror-linux/Documentation
Linus Torvalds 5bdb4078e1 sched_ext: Changes for v7.1
- Cgroup sub-scheduler groundwork. Multiple BPF schedulers can be
   attached to cgroups and the dispatch path is made hierarchical. This
   involves substantial restructuring of the core dispatch, bypass,
   watchdog, and dump paths to be per-scheduler, along with new
   infrastructure for scheduler ownership enforcement, lifecycle
   management, and cgroup subtree iteration. The enqueue path is not yet
   updated and will follow in a later cycle.
 
 - scx_bpf_dsq_reenq() generalized to support any DSQ including remote
   local DSQs and user DSQs. Built on top of this, SCX_ENQ_IMMED
   guarantees that tasks dispatched to local DSQs either run immediately
   or get reenqueued back through ops.enqueue(), giving schedulers tighter
   control over queueing latency. Also useful for opportunistic CPU
   sharing across sub-schedulers.
 
 - ops.dequeue() was only invoked when the core knew a task was in BPF
   data structures, missing scheduling property change events and skipping
   callbacks for non-local DSQ dispatches from ops.select_cpu(). Fixed to
   guarantee exactly one ops.dequeue() call when a task leaves BPF
   scheduler custody.
 
 - Kfunc access validation moved from runtime to BPF verifier time,
   removing runtime mask enforcement.
 
 - Idle SMT sibling prioritization in the idle CPU selection path.
 
 - Documentation, selftest, and tooling updates. Misc bug fixes and
   cleanups.
 
 - Merges from tip/sched-core, cgroup/for-7.1, and for-7.0-fixes to
   resolve dependencies and conflicts for the above changes.
 -----BEGIN PGP SIGNATURE-----
 
 iIQEABYKACwWIQTfIjM1kS57o3GsC/uxYfJx3gVYGQUCad0uaA4cdGpAa2VybmVs
 Lm9yZwAKCRCxYfJx3gVYGbktAQD2HrKdydyEfefz/n4mNpIXh/DFYX49NgKYcgUh
 sKy4ngD/Sy7nAZS2zwM+36PN6jBV7+cfuoaiKPgCstPFeGsvPwU=
 =fsgj
 -----END PGP SIGNATURE-----

Merge tag 'sched_ext-for-7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext

Pull sched_ext updates from Tejun Heo:

 - cgroup sub-scheduler groundwork

   Multiple BPF schedulers can be attached to cgroups and the dispatch
   path is made hierarchical. This involves substantial restructuring of
   the core dispatch, bypass, watchdog, and dump paths to be
   per-scheduler, along with new infrastructure for scheduler ownership
   enforcement, lifecycle management, and cgroup subtree iteration

   The enqueue path is not yet updated and will follow in a later cycle

 - scx_bpf_dsq_reenq() generalized to support any DSQ including remote
   local DSQs and user DSQs

   Built on top of this, SCX_ENQ_IMMED guarantees that tasks dispatched
   to local DSQs either run immediately or get reenqueued back through
   ops.enqueue(), giving schedulers tighter control over queueing
   latency

   Also useful for opportunistic CPU sharing across sub-schedulers

 - ops.dequeue() was only invoked when the core knew a task was in BPF
   data structures, missing scheduling property change events and
   skipping callbacks for non-local DSQ dispatches from ops.select_cpu()

   Fixed to guarantee exactly one ops.dequeue() call when a task leaves
   BPF scheduler custody

 - Kfunc access validation moved from runtime to BPF verifier time,
   removing runtime mask enforcement

 - Idle SMT sibling prioritization in the idle CPU selection path

 - Documentation, selftest, and tooling updates. Misc bug fixes and
   cleanups

* tag 'sched_ext-for-7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext: (134 commits)
  tools/sched_ext: Add explicit cast from void* in RESIZE_ARRAY()
  sched_ext: Make string params of __ENUM_set() const
  tools/sched_ext: Kick home CPU for stranded tasks in scx_qmap
  sched_ext: Drop spurious warning on kick during scheduler disable
  sched_ext: Warn on task-based SCX op recursion
  sched_ext: Rename scx_kf_allowed_on_arg_tasks() to scx_kf_arg_task_ok()
  sched_ext: Remove runtime kfunc mask enforcement
  sched_ext: Add verifier-time kfunc context filter
  sched_ext: Drop redundant rq-locked check from scx_bpf_task_cgroup()
  sched_ext: Decouple kfunc unlocked-context check from kf_mask
  sched_ext: Fix ops.cgroup_move() invocation kf_mask and rq tracking
  sched_ext: Track @p's rq lock across set_cpus_allowed_scx -> ops.set_cpumask
  sched_ext: Add select_cpu kfuncs to scx_kfunc_ids_unlocked
  sched_ext: Drop TRACING access to select_cpu kfuncs
  selftests/sched_ext: Fix wrong DSQ ID in peek_dsq error message
  sched_ext: Documentation: improve accuracy of task lifecycle pseudo-code
  selftests/sched_ext: Improve runner error reporting for invalid arguments
  sched_ext: Documentation: Fix scx_bpf_move_to_local kfunc name
  sched_ext: Documentation: Add ops.dequeue() to task lifecycle
  tools/sched_ext: Fix off-by-one in scx_sdt payload zeroing
  ...
2026-04-15 10:54:24 -07:00
..
ABI drm for v7.1-rc1 2026-04-15 08:45:00 -07:00
PCI PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM 2026-04-06 16:55:16 +02:00
RCU rcu-tasks: Document that RCU Tasks Trace grace periods now imply RCU grace periods 2026-03-30 15:48:14 -04:00
accel
accounting
admin-guide workqueue: Changes for v7.1 2026-04-15 10:32:08 -07:00
arch arm64 updates for 7.1: 2026-04-14 16:48:56 -07:00
block Documentation: ublk: address review comments for SHMEM_ZC docs 2026-04-09 19:10:44 -06:00
bpf docs/bpf: add missing fsession attach type to docs 2026-04-12 12:42:38 -07:00
cdrom
core-api workqueue: Changes for v7.1 2026-04-15 10:32:08 -07:00
cpu-freq
crypto
dev-tools A busier cycle than I had expected for docs, including: 2026-04-14 08:47:08 -07:00
devicetree sound updates for 7.1-rc1 2026-04-15 09:20:49 -07:00
doc-guide docs: kernel-doc.rst: document private: scope propagation 2026-03-22 15:02:29 -06:00
driver-api workqueue: Changes for v7.1 2026-04-15 10:32:08 -07:00
edac
fault-injection
fb
features
filesystems drm for v7.1-rc1 2026-04-15 08:45:00 -07:00
firmware-guide
firmware_class
fpga
gpu DRM Rust changes for v7.1-rc1 2026-04-01 07:32:05 +10:00
hid Docs: hid: intel-ish-hid: make long URL usable 2026-04-09 08:40:41 -06:00
hwmon hwmon: (adm1177) fix sysfs ABI violation and current unit conversion 2026-03-25 06:50:13 -07:00
i2c
iio
images
infiniband
input
isdn
kbuild Modules changes for v7.1-rc1 2026-04-14 17:16:38 -07:00
kernel-hacking
leds
litmus-tests
livepatch
locking
maintainer
mhi
misc-devices
mm Documentation/mm/hwpoison.rst: fix typos and grammar. 2026-03-17 08:35:27 -06:00
netlabel
netlink drm for v7.1-rc1 2026-04-15 08:45:00 -07:00
networking netfilter pull request nf-next-26-04-10 2026-04-12 09:39:21 -07:00
nvdimm
nvme
pcmcia
peci
power
process [GIT PULL for v7.1] media updates 2026-04-15 08:32:10 -07:00
rust docs: rust: general-information: use real example 2026-04-07 10:00:25 +02:00
scheduler sched_ext: Changes for v7.1 2026-04-15 10:54:24 -07:00
scsi
security landlock: Control pathname UNIX domain socket resolution by path 2026-04-07 18:51:06 +02:00
sound
sphinx
sphinx-includes
sphinx-static docs: allow long links to wrap per character to prevent page overflow 2026-03-25 13:22:02 -06:00
spi
staging
sunrpc/xdr
target
tee
timers
tools Documentation/rtla: Convert links to RST format 2026-04-09 08:23:12 -06:00
trace tracing: Documentation: Update histogram-design.rst for fn() handling 2026-04-09 08:46:39 -06:00
translations docs/zh_CN: update rust/index.rst translation 2026-04-10 20:09:45 +08:00
usb
userspace-api [GIT PULL for v7.1] media updates 2026-04-15 08:32:10 -07:00
virt Documentation: kvm: fix formatting of the quirks table 2026-03-11 19:16:52 +01:00
w1
watchdog
wmi
.gitignore
.renames.txt
Changes
CodingStyle
Kconfig
Makefile
SubmittingPatches
atomic_bitops.txt
atomic_t.txt
conf.py docs: use logo.svg as favicon 2026-03-22 15:27:43 -06:00
docutils.conf
index.rst
memory-barriers.txt
subsystem-apis.rst