)]}'
{
  "commit": "02baaa67d9afc2e56c6e1ac6a1fb1f1dd2be366f",
  "tree": "13ae2fec8be92b2f774cfb3fd725c027740be3ac",
  "parents": [
    "8449d3252c2603a51ffc7c36cb5bd94874378b7d",
    "1dd6c84f1c544e552848a8968599220bd464e338"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Dec 03 13:25:39 2025 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Dec 03 13:25:39 2025 -0800"
  },
  "message": "Merge tag \u0027sched_ext-for-6.19\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext\n\nPull sched_ext updates from Tejun Heo:\n\n - Improve recovery from misbehaving BPF schedulers.\n\n   When a scheduler puts many tasks with varying affinity restrictions\n   on a shared DSQ, CPUs scanning through tasks they cannot run can\n   overwhelm the system, causing lockups.\n\n   Bypass mode now uses per-CPU DSQs with a load balancer to avoid this,\n   and hooks into the hardlockup detector to attempt recovery.\n\n   Add scx_cpu0 example scheduler to demonstrate this scenario.\n\n - Add lockless peek operation for DSQs to reduce lock contention for\n   schedulers that need to query queue state during load balancing.\n\n - Allow scx_bpf_reenqueue_local() to be called from anywhere in\n   preparation for deprecating cpu_acquire/release() callbacks in favor\n   of generic BPF hooks.\n\n - Prepare for hierarchical scheduler support: add\n   scx_bpf_task_set_slice() and scx_bpf_task_set_dsq_vtime() kfuncs,\n   make scx_bpf_dsq_insert*() return bool, and wrap kfunc args in\n   structs for future aux__prog parameter.\n\n - Implement cgroup_set_idle() callback to notify BPF schedulers when a\n   cgroup\u0027s idle state changes.\n\n - Fix migration tasks being incorrectly downgraded from\n   stop_sched_class to rt_sched_class across sched_ext enable/disable.\n   Applied late as the fix is low risk and the bug subtle but needs\n   stable backporting.\n\n - Various fixes and cleanups including cgroup exit ordering,\n   SCX_KICK_WAIT reliability, and backward compatibility improvements.\n\n* tag \u0027sched_ext-for-6.19\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext: (44 commits)\n  sched_ext: Fix incorrect sched_class settings for per-cpu migration tasks\n  sched_ext: tools: Removing duplicate targets during non-cross compilation\n  sched_ext: Use kvfree_rcu() to release per-cpu ksyncs object\n  sched_ext: Pass locked CPU parameter to scx_hardlockup() and add docs\n  sched_ext: Update comments replacing breather with aborting mechanism\n  sched_ext: Implement load balancer for bypass mode\n  sched_ext: Factor out abbreviated dispatch dequeue into dispatch_dequeue_locked()\n  sched_ext: Factor out scx_dsq_list_node cursor initialization into INIT_DSQ_LIST_CURSOR\n  sched_ext: Add scx_cpu0 example scheduler\n  sched_ext: Hook up hardlockup detector\n  sched_ext: Make handle_lockup() propagate scx_verror() result\n  sched_ext: Refactor lockup handlers into handle_lockup()\n  sched_ext: Make scx_exit() and scx_vexit() return bool\n  sched_ext: Exit dispatch and move operations immediately when aborting\n  sched_ext: Simplify breather mechanism with scx_aborting flag\n  sched_ext: Use per-CPU DSQs instead of per-node global DSQs in bypass mode\n  sched_ext: Refactor do_enqueue_task() local and global DSQ paths\n  sched_ext: Use shorter slice in bypass mode\n  sched_ext: Mark racy bitfields to prevent adding fields that can\u0027t tolerate races\n  sched_ext: Minor cleanups to scx_task_iter\n  ...\n",
  "tree_diff": []
}
