)]}'
{
  "commit": "11260c335ec6071af5543aef73000b28f041c124",
  "tree": "72eda88ab241d491ec3b6ec52f31b5f55a4324eb",
  "parents": [
    "40d8c81577db09b71ee5402ba336b642d32d6a82",
    "fab183d632628381b466a41479489541ac0e29a0"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Aug 20 11:01:37 2026 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Aug 20 11:01:37 2026 -0700"
  },
  "message": "Merge tag \u0027sched_ext-for-7.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext\n\nPull sched_ext updates from Tejun Heo:\n \"Most of this cycle completes the enqueue-path support for hierarchical\n  sub-scheduling, which makes sub-scheduler support feature complete: a\n  root BPF scheduler can now hand a cgroup subtree over to a nested\n  sub-scheduler together with revocable CPU grants, and the\n  sub-scheduler owns all scheduling decisions for its tasks on those\n  CPUs.\n\n  Development volume was high and a number of changes plugging holes in\n  the new support landed late in the cycle. Also included are core\n  scheduling fixes that were completed too late for the v7.2 release and\n  are routed through this pull request.\n\n  Sub-scheduler CPU delegation:\n\n   - Parent schedulers now grant and revoke per-CPU capabilities\n     (enqueueing, preemption, CPU frequency control) on their children,\n     enforced on every path a scheduler can reach a CPU through.\n     Previously only dispatching could be delegated; this lets\n     sub-schedulers fully schedule their CPUs.\n\n   - Rescue execution: a task whose scheduler doesn\u0027t have access to the\n     CPUs the task needs to run on starved until the watchdog ejected\n     the whole scheduler. The kernel now runs such tasks directly on a\n     small bandwidth budget, turning a scheduler-killing failure into\n     bounded degradation.\n\n   - Cgroup integration: tasks migrating across a sub-scheduler boundary\n     weren\u0027t re-homed to the new owner, causing wrong-scheduler\n     scheduling and a use-after-free. Sub-schedulers now take over their\n     cgroup subtree and receive its cgroup callbacks.\n\n   - Arena objects now cross the kernel/BPF boundary as typed pointer\n     arguments, translated transparently by the BPF tree\u0027s new arena\n     argument support, replacing untyped arguments with manual\n     translation.\n\n   - scx_qmap now demonstrates full hierarchical sub-scheduling.\n\n  Other fixes and updates:\n\n   - Robustness improvements: the abort path is now NMI-safe, fixing\n     deadlocks when errors are raised from NMI context and making\n     hardlockup recovery direct. Reenqueue loops that could monopolize a\n     CPU ahead of the watchdog now eject the offending scheduler, and\n     stalls are blamed on the scheduler actually responsible.\n\n   - Hardening: BPF-writable arena memory is validated before kernel\n     use, and task slice and vtime writes got explicit synchronization\n     rules, closing corruption vectors open to buggy or malicious\n     schedulers.\n\n   - Core scheduling: sched_ext dispatching can drop the rq lock inside\n     the core-wide pick, which let interleaving selections corrupt each\n     other\u0027s state and hard-hang the machine. The selection now restarts\n     when the lock was released. The task ordering callback was also\n     invoked with its arguments swapped, and the default ordering is\n     updated to work across sub-scheduler boundaries. The fixes are\n     marked for stable.\n\n   - Other fixes headed for stable: a task init leak on fork failure\n     during enable, tooling compat macros that silently failed to detect\n     newer kernels, and a crash on reenqueueing against a destroyed\n     dispatch queue.\n\n   - Tooling: scx_pair moves off deprecated callbacks, and the\n     deprecated scx_bpf_cpu_rq() kfunc is removed\"\n\n* tag \u0027sched_ext-for-7.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext: (144 commits)\n  sched_ext: Drop the dead SCX_DEQ_CORE_SCHED_EXEC test in dequeue_task_scx()\n  sched_ext: Make core-sched task ordering hierarchy-aware\n  sched_ext: Use runnable_at for the default core-sched task ordering\n  sched_ext: Fix inverted ops.core_sched_before() invocation\n  sched_ext: Move the config-off sub-cap kfunc stubs into sub.c\n  sched_ext: Rename balance-era identifiers to dispatch terms\n  sched_ext: Drop the stale keep_prev fixup in dispatch_pick()\n  sched_ext: Keep kick_sync waiting on the rq\u0027s own CPU\n  sched_ext: Make SCHED_CLASS_EXT select GENERIC_ALLOCATOR\n  sched_ext/scx_flatcg: Fix cvtime true-up on slice expiry\n  sched_ext: Don\u0027t BUG_ON a destroyed DSQ in process_deferred_reenq_users\n  sched_ext: Fix scx_bpf_dsq_move_to_local___v2 compat detection\n  sched_ext: Make scx_bpf_events() read the calling scheduler\u0027s counters\n  sched_ext: Drop unlocked scx_rq_clock_invalidate() from scx_root_disable()\n  selftests/sched_ext: Fix flaky ddsp failure tests on busy systems\n  selftests/sched_ext: Make numa idle validation race-free\n  sched_ext: Fix scx_bpf_dsq_reenq___compat kfunc extern prototype\n  sched_ext/scx_flatcg: expire cached hweights on weight changes\n  sched_ext: Fix exit_task leak on fork failure during enable\n  sched_ext: fix stale references in doc comments\n  ...\n",
  "tree_diff": []
}
