[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZvsCeqjNGgqglWaD@slm.duckdns.org>
Date: Mon, 30 Sep 2024 09:56:42 -1000
From: Tejun Heo <tj@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org, David Vernet <void@...ifault.com>,
sched-ext@...a.com
Subject: [GIT PULL] sched_ext: A second set of fixes for v6.12-rc1
The following changes since commit 68e5c7d4cefb66de3953a874e670ec8f1ce86a24:
Merge tag 'kbuild-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild (2024-09-24 13:02:06 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git/ tags/sched_ext-for-6.12-rc1-fixes-1
for you to fetch changes up to 95b873693a0841e02b812e693296a884362fdd51:
sched_ext: Remove redundant p->nr_cpus_allowed checker (2024-09-27 10:23:45 -1000)
----------------------------------------------------------------
sched_ext: A second set of fixes for v6.12-rc1
- When sched_ext is in bypass mode (e.g. while disabling the BPF scheduler),
it was using one DSQ to implement global FIFO scheduling as all it has to
do is guaranteeing reasonable forward progress. On multi-socket machines,
this can lead to live-lock conditions under certain workloads. Fixed by
splitting the queue used for FIFO scheduling per NUMA node. This required
several preparation patches.
- Hotplug tests on powerpc could reliably trigger deadlock while enabling a
BPF scheduler. This was caused by cpu_hotplug_lock nesting inside
scx_fork_rwsem and then CPU hotplug path trying to fork a new thread while
holding cpu_hotplug_lock. Fixed by restructuring locking in enable and
disable paths so that the two locks are not coupled. This required several
preparation patches which also fixed a couple other issues in the enable
path.
- A build fix for !CONFIG_SMP.
- Userspace tooling sync and updates.
----------------------------------------------------------------
Tejun Heo (16):
sched_ext: Build fix for !CONFIG_SMP
sched_ext: Add __COMPAT helpers for features added during v6.12 devel cycle
tools/sched_ext: Receive misc updates from SCX repo
scx_flatcg: Use a user DSQ for fallback instead of SCX_DSQ_GLOBAL
sched_ext: Allow only user DSQs for scx_bpf_consume(), scx_bpf_dsq_nr_queued() and bpf_iter_scx_dsq_new()
sched_ext: Relocate find_user_dsq()
sched_ext: Split the global DSQ per NUMA node
sched_ext: Use shorter slice while bypassing
sched_ext: Relocate check_hotplug_seq() call in scx_ops_enable()
sched_ext: Remove SCX_OPS_PREPPING
sched_ext: Initialize in bypass mode
sched_ext: Fix SCX_TASK_INIT -> SCX_TASK_READY transitions in scx_ops_enable()
sched_ext: Enable scx_ops_init_task() separately
sched_ext: Add scx_cgroup_enabled to gate cgroup operations and fix scx_tg_online()
sched_ext: Decouple locks in scx_ops_disable_workfn()
sched_ext: Decouple locks in scx_ops_enable()
Zhang Qiao (1):
sched_ext: Remove redundant p->nr_cpus_allowed checker
kernel/sched/ext.c | 320 ++++++++++++++-------------
tools/sched_ext/include/scx/common.bpf.h | 15 ++
tools/sched_ext/include/scx/compat.bpf.h | 19 ++
tools/sched_ext/include/scx/user_exit_info.h | 4 +
tools/sched_ext/scx_flatcg.bpf.c | 32 ++-
tools/sched_ext/scx_qmap.bpf.c | 12 +-
6 files changed, 236 insertions(+), 166 deletions(-)
--
tejun
Powered by blists - more mailing lists