+++ /dev/null
-From 6ae315d37924435516d697ea7dde0b799a5928e0 Mon Sep 17 00:00:00 2001
-From: Andrea Righi <arighi@nvidia.com>
-Date: Wed, 13 May 2026 13:24:38 +0200
-Subject: sched_ext: Use HK_TYPE_DOMAIN_BOOT to detect isolcpus= domain isolation
-
-From: Andrea Righi <arighi@nvidia.com>
-
-commit 6ae315d37924435516d697ea7dde0b799a5928e0 upstream.
-
-scx_enable() refuses to attach a BPF scheduler when isolcpus=domain is
-in effect by comparing housekeeping_cpumask(HK_TYPE_DOMAIN) against
-cpu_possible_mask.
-
-Since commit 27c3a5967f05 ("sched/isolation: Convert housekeeping
-cpumasks to rcu pointers"), HK_TYPE_DOMAIN's cpumask is RCU protected
-and dereferencing it requires either RCU read lock, the cpu_hotplug
-write lock, or the cpuset lock; scx_enable() holds none of these, so
-booting with isolcpus=domain and attaching any BPF scheduler triggers
-the following lockdep splat:
-
- =============================
- WARNING: suspicious RCU usage
- -----------------------------
- kernel/sched/isolation.c:60 suspicious rcu_dereference_check() usage!
-
- 1 lock held by scx_flash/281:
- #0: ffffffff8379fce0 (update_mutex){+.+.}-{4:4}, at:
- bpf_struct_ops_link_create+0x134/0x1c0
-
- Call Trace:
- dump_stack_lvl+0x6f/0xb0
- lockdep_rcu_suspicious.cold+0x37/0x70
- housekeeping_cpumask+0xcd/0xe0
- scx_enable.isra.0+0x17/0x120
- bpf_scx_reg+0x5e/0x80
- bpf_struct_ops_link_create+0x151/0x1c0
- __sys_bpf+0x1e4b/0x33c0
- __x64_sys_bpf+0x21/0x30
- do_syscall_64+0x117/0xf80
- entry_SYSCALL_64_after_hwframe+0x77/0x7f
-
-In addition, commit 03ff73510169 ("cpuset: Update HK_TYPE_DOMAIN cpumask
-from cpuset") made HK_TYPE_DOMAIN include cpuset isolated partitions as
-well, which means the current check also rejects BPF schedulers when a
-cpuset partition is active. That contradicts the original intent of
-commit 9f391f94a173 ("sched_ext: Disallow loading BPF scheduler if
-isolcpus= domain isolation is in effect"), which explicitly noted that
-cpuset partitions are honored through per-task cpumasks and should not
-be rejected.
-
-Switch to housekeeping_enabled(HK_TYPE_DOMAIN_BOOT), which reads only
-the housekeeping flag bit (no RCU dereference) and reflects exactly the
-boot-time isolcpus= configuration that the error message refers to.
-
-Fixes: 27c3a5967f05 ("sched/isolation: Convert housekeeping cpumasks to rcu pointers")
-Cc: stable@vger.kernel.org # v7.0+
-Signed-off-by: Andrea Righi <arighi@nvidia.com>
-Signed-off-by: Tejun Heo <tj@kernel.org>
-Acked-by: Frederic Weisbecker <frederic@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- kernel/sched/ext.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/kernel/sched/ext.c
-+++ b/kernel/sched/ext.c
-@@ -5521,8 +5521,7 @@ static int scx_ops_enable(struct sched_e
- static DEFINE_MUTEX(helper_mutex);
- struct scx_enable_cmd cmd;
-
-- if (!cpumask_equal(housekeeping_cpumask(HK_TYPE_DOMAIN),
-- cpu_possible_mask)) {
-+ if (housekeeping_enabled(HK_TYPE_DOMAIN_BOOT)) {
- pr_err("sched_ext: Not compatible with \"isolcpus=\" domain isolation\n");
- return -EINVAL;
- }
batman-adv-bla-prevent-use-after-free-when-deleting-claims.patch
batman-adv-bla-only-purge-non-released-claims.patch
batman-adv-bla-put-backbone-reference-on-failed-claim-hash-insert.patch
-sched_ext-use-hk_type_domain_boot-to-detect-isolcpus-domain-isolation.patch
usb-typec-tcpm-reset-internal-port-states-on-soft-reset-ams.patch
usb-dwc3-move-guid-programming-after-phy-initialization.patch
alsa-hda-cs35l56-propagate-asp-tx-source-control-errors.patch
}
void scx_group_set_bandwidth(struct task_group *tg,
-@@ -5125,6 +5137,7 @@ static void sched_ext_ops__cgroup_move(s
+@@ -5126,6 +5138,7 @@ static void sched_ext_ops__cgroup_move(s
static void sched_ext_ops__cgroup_cancel_move(struct task_struct *p, struct cgroup *from, struct cgroup *to) {}
static void sched_ext_ops__cgroup_set_weight(struct cgroup *cgrp, u32 weight) {}
static void sched_ext_ops__cgroup_set_bandwidth(struct cgroup *cgrp, u64 period_us, u64 quota_us, u64 burst_us) {}
#endif
static void sched_ext_ops__cpu_online(s32 cpu) {}
static void sched_ext_ops__cpu_offline(s32 cpu) {}
-@@ -5163,6 +5176,7 @@ static struct sched_ext_ops __bpf_ops_sc
+@@ -5164,6 +5177,7 @@ static struct sched_ext_ops __bpf_ops_sc
.cgroup_cancel_move = sched_ext_ops__cgroup_cancel_move,
.cgroup_set_weight = sched_ext_ops__cgroup_set_weight,
.cgroup_set_bandwidth = sched_ext_ops__cgroup_set_bandwidth,
+++ /dev/null
-From 6ae315d37924435516d697ea7dde0b799a5928e0 Mon Sep 17 00:00:00 2001
-From: Andrea Righi <arighi@nvidia.com>
-Date: Wed, 13 May 2026 13:24:38 +0200
-Subject: sched_ext: Use HK_TYPE_DOMAIN_BOOT to detect isolcpus= domain isolation
-
-From: Andrea Righi <arighi@nvidia.com>
-
-commit 6ae315d37924435516d697ea7dde0b799a5928e0 upstream.
-
-scx_enable() refuses to attach a BPF scheduler when isolcpus=domain is
-in effect by comparing housekeeping_cpumask(HK_TYPE_DOMAIN) against
-cpu_possible_mask.
-
-Since commit 27c3a5967f05 ("sched/isolation: Convert housekeeping
-cpumasks to rcu pointers"), HK_TYPE_DOMAIN's cpumask is RCU protected
-and dereferencing it requires either RCU read lock, the cpu_hotplug
-write lock, or the cpuset lock; scx_enable() holds none of these, so
-booting with isolcpus=domain and attaching any BPF scheduler triggers
-the following lockdep splat:
-
- =============================
- WARNING: suspicious RCU usage
- -----------------------------
- kernel/sched/isolation.c:60 suspicious rcu_dereference_check() usage!
-
- 1 lock held by scx_flash/281:
- #0: ffffffff8379fce0 (update_mutex){+.+.}-{4:4}, at:
- bpf_struct_ops_link_create+0x134/0x1c0
-
- Call Trace:
- dump_stack_lvl+0x6f/0xb0
- lockdep_rcu_suspicious.cold+0x37/0x70
- housekeeping_cpumask+0xcd/0xe0
- scx_enable.isra.0+0x17/0x120
- bpf_scx_reg+0x5e/0x80
- bpf_struct_ops_link_create+0x151/0x1c0
- __sys_bpf+0x1e4b/0x33c0
- __x64_sys_bpf+0x21/0x30
- do_syscall_64+0x117/0xf80
- entry_SYSCALL_64_after_hwframe+0x77/0x7f
-
-In addition, commit 03ff73510169 ("cpuset: Update HK_TYPE_DOMAIN cpumask
-from cpuset") made HK_TYPE_DOMAIN include cpuset isolated partitions as
-well, which means the current check also rejects BPF schedulers when a
-cpuset partition is active. That contradicts the original intent of
-commit 9f391f94a173 ("sched_ext: Disallow loading BPF scheduler if
-isolcpus= domain isolation is in effect"), which explicitly noted that
-cpuset partitions are honored through per-task cpumasks and should not
-be rejected.
-
-Switch to housekeeping_enabled(HK_TYPE_DOMAIN_BOOT), which reads only
-the housekeeping flag bit (no RCU dereference) and reflects exactly the
-boot-time isolcpus= configuration that the error message refers to.
-
-Fixes: 27c3a5967f05 ("sched/isolation: Convert housekeeping cpumasks to rcu pointers")
-Cc: stable@vger.kernel.org # v7.0+
-Signed-off-by: Andrea Righi <arighi@nvidia.com>
-Signed-off-by: Tejun Heo <tj@kernel.org>
-Acked-by: Frederic Weisbecker <frederic@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- kernel/sched/ext.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/kernel/sched/ext.c
-+++ b/kernel/sched/ext.c
-@@ -4906,8 +4906,7 @@ static int scx_enable(struct sched_ext_o
- static DEFINE_MUTEX(helper_mutex);
- struct scx_enable_cmd cmd;
-
-- if (!cpumask_equal(housekeeping_cpumask(HK_TYPE_DOMAIN),
-- cpu_possible_mask)) {
-+ if (housekeeping_enabled(HK_TYPE_DOMAIN_BOOT)) {
- pr_err("sched_ext: Not compatible with \"isolcpus=\" domain isolation\n");
- return -EINVAL;
- }
batman-adv-bla-prevent-use-after-free-when-deleting-claims.patch
batman-adv-bla-only-purge-non-released-claims.patch
batman-adv-bla-put-backbone-reference-on-failed-claim-hash-insert.patch
-sched_ext-use-hk_type_domain_boot-to-detect-isolcpus-domain-isolation.patch
io_uring-zcrx-use-guards-for-locking.patch
io_uring-zcrx-warn-on-freelist-violations.patch
loongarch-kvm-compile-switch.s-directly-into-the-kernel.patch