From nobody Sat Jul 25 20:06:03 2026 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E5412DB7BD for ; Tue, 14 Jul 2026 09:15:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.2 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784020522; cv=none; b=u+6H+NhdyBR7p19prLYXnebpNGY/M2imZvAvXQVnH9SNRNVBdU20oPz6CNetnQLdWCphw++FtKcMx5rzd4mi2X7y4On0OyiHx8odMu6q7jVgAQYjZ5uHJFHDx/JfbCDiHV+XnUmEWK2mA6f3rTLgNaADu+Ov79G3BtDSErQDivU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784020522; c=relaxed/simple; bh=l3jif91frCaVnnw5NgNNCjDd19RV70A3ZrHzMzFGx58=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=ilMOR4iHMicUjTrn65GvPQfEvqiPczw5PHJ1TEX+6R/HbFzVH91ImR6hWfwB9AoRjsCfuEhLwNUMtXpzftNkwmCSv+PKv8xnjHi4QJUYYtt4f7DP3Ay50jnPXDekrvbkoQ4EIvcq3aUeQ1oX9oGJUr4bAVs8GujiMR4ZsxmzLW8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=js6YYBIp; arc=none smtp.client-ip=220.197.31.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="js6YYBIp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=Z5 IV56Hgt+dKh/0Gtc1F4qaSNUeBt/mcsabLrt4Gpqc=; b=js6YYBIpD52mri5Q0l y7vu2Q+t8RsuoMEB4UpL1277yrfNG+MjmXqz0tp1X3JqJGVnzQutHqfsclrIidxp d2xUm80IJ3tY/rQ4yHCCCv5zXGmNZZxDA64dbeTI7Lxoq7CxaQUEesDirWSrMppI JP+Lx3kpjNpaXE70mAyfDUXyM= Received: from localhost.localdomain (unknown []) by gzsmtp3 (Coremail) with SMTP id PigvCgAn+rm+_VVq2UWzHg--.1872S2; Tue, 14 Jul 2026 17:13:36 +0800 (CST) From: Wanwu Li To: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tj@kernel.org Cc: dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, linux-kernel@vger.kernel.org, Wanwu Li Subject: [PATCH] sched/core: Fix stale se.load when modifying nice value under sched_ext Date: Tue, 14 Jul 2026 17:13:27 +0800 Message-Id: <20260714091327.3-1-liwanwu9113@163.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: PigvCgAn+rm+_VVq2UWzHg--.1872S2 X-Coremail-Antispam: 1Uf129KBjvJXoWxJr1Utr47Zr48tw4UGr17Wrg_yoW8WFy5pF 95ZFWfKr47ta4Fqa1xZr48CrW5G3say3W3WryS9F4rtr15t3WFyF1rK3ZrGr4jqr10y34S qF1qy345GFZrZrJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07j8fHUUUUUU= X-CM-SenderInfo: polzt01zxziiqt6rljoofrz/xtbC9wCfKGpV-cBkWwAA39 Content-Type: text/plain; charset="utf-8" From: Wanwu Li When a task's nice value is modified while running under sched_ext scheduling class, set_load_weight() calls reweight_task() which only updates static_prio but leaves p->se.load unchanged because sched_ext does not use it. After switching back to CFS, the stale se.load leads to incorrect load weight calculation. Fix this by explicitly refreshing p->se.load for sched_ext tasks after calling reweight_task(). Fixes: d32960528702 ("sched/fair: set_load_weight() must also call reweight= _task() for SCHED_IDLE tasks") Signed-off-by: Wanwu Li --- kernel/sched/core.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 96226707c2f6..ebeadec41eb6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1538,10 +1538,21 @@ void set_load_weight(struct task_struct *p, bool up= date_load) * SCHED_OTHER tasks have to update their load when changing their * weight */ - if (update_load && p->sched_class->reweight_task) + if (update_load && p->sched_class->reweight_task) { p->sched_class->reweight_task(task_rq(p), p, &lw); - else + + /* + * If modify nice while task runs under ext class, only + * static_prio updates, p->se.load stays stale and mismatches + * the new nice value. After switching back to CFS, outdated + * load leads to incorrect weight. Synchronously refresh + * se.load to keep priority state consistent. + */ + if (task_on_scx(p)) + p->se.load =3D lw; + } else { p->se.load =3D lw; + } } =20 #ifdef CONFIG_UCLAMP_TASK --=20 2.25.1