From bd80bf494f4514462616272589d4aa8ae0180ed5 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 27 Nov 2025 15:20:27 +0100 Subject: [PATCH] 6.17-stable patches added patches: sched_ext-fix-flag-check-for-deferred-callbacks.patch sched_ext-fix-scx_kick_pseqs-corruption-on-concurrent-scheduler-loads.patch --- ...ix-flag-check-for-deferred-callbacks.patch | 33 +++++++++++++ ...uption-on-concurrent-scheduler-loads.patch | 48 +++++++++++++++++++ queue-6.17/series | 2 + 3 files changed, 83 insertions(+) create mode 100644 queue-6.17/sched_ext-fix-flag-check-for-deferred-callbacks.patch create mode 100644 queue-6.17/sched_ext-fix-scx_kick_pseqs-corruption-on-concurrent-scheduler-loads.patch diff --git a/queue-6.17/sched_ext-fix-flag-check-for-deferred-callbacks.patch b/queue-6.17/sched_ext-fix-flag-check-for-deferred-callbacks.patch new file mode 100644 index 0000000000..64101f1acf --- /dev/null +++ b/queue-6.17/sched_ext-fix-flag-check-for-deferred-callbacks.patch @@ -0,0 +1,33 @@ +From a3c4a0a42e61aad1056a3d33fd603c1ae66d4288 Mon Sep 17 00:00:00 2001 +From: Emil Tsalapatis +Date: Thu, 16 Oct 2025 11:11:26 -0700 +Subject: sched_ext: fix flag check for deferred callbacks + +From: Emil Tsalapatis + +commit a3c4a0a42e61aad1056a3d33fd603c1ae66d4288 upstream. + +When scheduling the deferred balance callbacks, check SCX_RQ_BAL_CB_PENDING +instead of SCX_RQ_BAL_PENDING. This way schedule_deferred() properly tests +whether there is already a pending request for queue_balance_callback() to +be invoked at the end of .balance(). + +Fixes: a8ad873113d3 ("sched_ext: defer queue_balance_callback() until after ops.dispatch") +Signed-off-by: Emil Tsalapatis +Signed-off-by: Tejun Heo +Signed-off-by: Greg Kroah-Hartman +--- + kernel/sched/ext.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/sched/ext.c ++++ b/kernel/sched/ext.c +@@ -821,7 +821,7 @@ static void schedule_deferred(struct rq + return; + + /* Don't do anything if there already is a deferred operation. */ +- if (rq->scx.flags & SCX_RQ_BAL_PENDING) ++ if (rq->scx.flags & SCX_RQ_BAL_CB_PENDING) + return; + + /* diff --git a/queue-6.17/sched_ext-fix-scx_kick_pseqs-corruption-on-concurrent-scheduler-loads.patch b/queue-6.17/sched_ext-fix-scx_kick_pseqs-corruption-on-concurrent-scheduler-loads.patch new file mode 100644 index 0000000000..3e13f011f0 --- /dev/null +++ b/queue-6.17/sched_ext-fix-scx_kick_pseqs-corruption-on-concurrent-scheduler-loads.patch @@ -0,0 +1,48 @@ +From 05e63305c85c88141500f0a2fb02afcfba9396e1 Mon Sep 17 00:00:00 2001 +From: Andrea Righi +Date: Mon, 13 Oct 2025 22:36:34 +0200 +Subject: sched_ext: Fix scx_kick_pseqs corruption on concurrent scheduler loads + +From: Andrea Righi + +commit 05e63305c85c88141500f0a2fb02afcfba9396e1 upstream. + +If we load a BPF scheduler while another scheduler is already running, +alloc_kick_pseqs() would be called again, overwriting the previously +allocated arrays. + +Fix by moving the alloc_kick_pseqs() call after the scx_enable_state() +check, ensuring that the arrays are only allocated when a scheduler can +actually be loaded. + +Fixes: 14c1da3895a11 ("sched_ext: Allocate scx_kick_cpus_pnt_seqs lazily using kvzalloc()") +Signed-off-by: Andrea Righi +Signed-off-by: Tejun Heo +Signed-off-by: Greg Kroah-Hartman +--- + kernel/sched/ext.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/kernel/sched/ext.c ++++ b/kernel/sched/ext.c +@@ -4632,15 +4632,15 @@ static int scx_enable(struct sched_ext_o + + mutex_lock(&scx_enable_mutex); + +- ret = alloc_kick_pseqs(); +- if (ret) +- goto err_unlock; +- + if (scx_enable_state() != SCX_DISABLED) { + ret = -EBUSY; +- goto err_free_pseqs; ++ goto err_unlock; + } + ++ ret = alloc_kick_pseqs(); ++ if (ret) ++ goto err_unlock; ++ + sch = scx_alloc_and_add_sched(ops); + if (IS_ERR(sch)) { + ret = PTR_ERR(sch); diff --git a/queue-6.17/series b/queue-6.17/series index 35c6b93dec..12b0073a1b 100644 --- a/queue-6.17/series +++ b/queue-6.17/series @@ -171,3 +171,5 @@ drm-amd-display-prevent-gating-dtbclk-before-it-is-properly-latched.patch tty-vt-fix-up-incorrect-backport-to-stable-releases.patch revert-drm-i915-dp-reject-hbr3-when-sink-doesn-t-support-tps4.patch drm-i915-dp-add-device-specific-quirk-to-limit-edp-rate-to-hbr2.patch +sched_ext-fix-scx_kick_pseqs-corruption-on-concurrent-scheduler-loads.patch +sched_ext-fix-flag-check-for-deferred-callbacks.patch -- 2.47.3