From nobody Mon Jun 8 21:47:54 2026 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E03963AA1A1 for ; Tue, 26 May 2026 13:52:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779803544; cv=none; b=EjvLHZzxRn0haTT6Z/q/+y8842WZeJ0KhC0iKPaSK0/K/icSXEEZcSvwbS0XibxfFgg48ZrtsvnA/CzePS/c42tW6LQt/brpjxC37MCvnb4bBDvOahd0XTXX2XssqkK8vz9+8kcy3S+fU5ULAF0qMI9V7hRNTWaIDKbrYvok3aw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779803544; c=relaxed/simple; bh=p4RLZLouPGRG5b0oIjf5J/oIFDX8Z4mLOIqvC7/mHZQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GNXjVrslXwMw4xAG8a/UHtHKps2LeJW4C0FV1O+EsSQTz2Pj3qysdaoQ+3iDLd/xjuOrsdiTbLuUHW3l8V5/vpuQnUGC2Qje2RIQVDJofgFTy3a0qye7bCbPym0k/+5p6cvaEtocpNKbHKjH9wX3CcVtfM5/aIDf2EKtTrv88xE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UZK2nYv1; arc=none smtp.client-ip=209.85.216.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UZK2nYv1" Received: by mail-pj1-f52.google.com with SMTP id 98e67ed59e1d1-365d8e43759so5355736a91.0 for ; Tue, 26 May 2026 06:52:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779803542; x=1780408342; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Kpg4lcDOtpiAI4ebPZufD85Jwn4evGuwEOuK2PnqavE=; b=UZK2nYv1c8iTlKC/J3HgPGuKH8oPzDR3mqdxp02k9AgxDeGhsQ1hndYk2B2t8zvrSn AsJGVH24wCxstvtVoWlrxYYHzNQ6yQsszIhCsClQJnzZerq9sr9MiHrvOvBlvfItyb6/ r7p4KmpnHDNdLzKeFl69Vkkecf7HcOXw2MtJ4uJ5pTWrexpD5Rbz1+eXvAyziOlsdhhw mh9ZpfsIt9NOGEOcgCZ0nfS0RP5zsy/Pp173NWwNCQNRsx6cMgvIFkUVdbjJlVU04yq9 7KISSi6eDtPMuM3z1oOfyLo+w6nrndhjvIQ7Y2ieYAQ0F3nPV/Pp9y1vunIIqFdrTYT2 NA5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779803542; x=1780408342; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Kpg4lcDOtpiAI4ebPZufD85Jwn4evGuwEOuK2PnqavE=; b=bmZY/LmC0laWzkBoZm7Z0nhc6M4ZONBBSr/bXIlpa6tTNCZeKkKUpikm3xL5mjCySS Q2glywGL9l7Pnu/YNNGSKM/g2IB6D2fmUGSq9PHL6TY3pAbHPYea/5mNbTtYuFuDWeVT yS6mc/SyFWC/g/N1uXMjrAurXI8AQi6pyVNnhYWekVHMCEY1opCMcfYjF6DBwBbe2Lua YWB1wjhLf8s/8fvuaSxTU8jUqCgWI/1quhLO+LGqUhwc+OTeLLCFSZYCJuy9TIeXVxxv 2pw0RnBjStn10XXfEFZ+mlOq8ztvqEsZMJqzOT1RC7LWOcn/Cf4xuEvcc/BPpUxfdUxg 42ZA== X-Forwarded-Encrypted: i=1; AFNElJ8HySrYcZsCM0/slrwYk/B5vlUjQQQgkGdyE/Q/ENRceDVzov9R5bfuiYMtG3Y4SHE91J0lO3JTmZsvO1Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yx5bGoi2UZAekH1lopokOZLarI8qtPcnpGJM3Nn5clMicA7ziSj 7w5NDmI+gxwkFy4DjRMQBlNNJgtjmW3K3ciZfn8Rdc3STjKjclXwHPHp X-Gm-Gg: Acq92OFXa6oK0JnLI/dyFRBKmrB3+0BnaQV64HiSfnh+ocqaEus3a8bv/IFePbQ8ob0 Cy1HFh1U/in43+Zto3dVQEFL6YLG0QQiiq++NiH0yQ/464Zh5B4kjBdq2nFpqRkF8wqx1kWAoXt bEEdX3MaV7Upy3P0KTD2CFFhnihTXLUBE0d2e6Yk2vlnuj2Kzioet3ZfmD3Bim6z6ta6DTr7XyF Y/wE2tB7mzuCF1HV8662UzfdTHEEIXgsitpzTD0mDxrQ1KCrVC6D12lUB4IBdYwpDZgIAdFWYGC Gx5+DbtSohgu+kiJCKox9y4MeIk36s79H2LyI77W6y4t8Ru+5j5l/QJB8/XTlJ3zIyBCWPnMBEj 1JdkxEA9BPukk0kDNjwUj+bD2Q8lEqlGBmGY+3kCgjVHeL99FJBcxJhNUTeq7HqpPJo32oh4MD9 3iYMgtfGA6uBDlKKynwjfybeQd/EdzKtWa51H6vayQZbY8Qyg31N5/XQdPYQ== X-Received: by 2002:a17:90b:1d44:b0:369:7944:d723 with SMTP id 98e67ed59e1d1-36a6bb5a6bfmr13510687a91.4.1779803542162; Tue, 26 May 2026 06:52:22 -0700 (PDT) Received: from DESKTOP-QGNVECK.localdomain ([139.159.170.72]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a721c7cf9sm12826858a91.10.2026.05.26.06.52.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 May 2026 06:52:21 -0700 (PDT) From: Zicheng Qu To: tj@kernel.org, void@manifault.com, arighi@nvidia.com, changwoo@igalia.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.co, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, haoluo@google.com, joshdon@google.com, brho@google.com, sched-ext@lists.linux.dev, linux-kernel@vger.kernel.org Cc: tanghui20@huawei.com, zhangqiao22@huawei.com, quzicheng@huawei.com, quzicheng315@gmail.com Subject: [PATCH] sched_ext: Rebuild fair weight when disabling BPF scheduler Date: Tue, 26 May 2026 21:52:11 +0800 Message-ID: <20260526135211.1892261-1-quzicheng315@gmail.com> X-Mailer: git-send-email 2.43.0 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 Content-Type: text/plain; charset="utf-8" From: Zicheng Qu When a BPF scheduler is disabled, scx_root_disable() switches tasks from ext_sched_class back to fair_sched_class directly. This does not go through __setscheduler_params(), so p->se.load is not rebuilt for tasks returning to fair. For example, after enabling a sched_ext BPF scheduler and creating CPU-bound tasks with different nice values, disabling the BPF scheduler can leave them running under fair with stale p->se.load. They may then split CPU time according to the stale weight instead of their current nice weights. Rebuild the fair load weight when scx_root_disable() switches a task from ext_sched_class to fair_sched_class. Use set_load_weight(p, false) so CFS gets a native load_weight derived from the task's current policy/static_prio before the task is enqueued on fair. Fixes: f0e1a0643a59 ("sched_ext: Implement BPF extensible scheduler class") Signed-off-by: Zicheng Qu Reviewed-by: Andrea Righi --- kernel/sched/ext.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 65631e577ee9..e5b8509ce7ee 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -5967,6 +5967,10 @@ static void scx_root_disable(struct scx_sched *sch) =20 scoped_guard (sched_change, p, queue_flags) { p->sched_class =3D new_class; + + if (old_class =3D=3D &ext_sched_class && + new_class =3D=3D &fair_sched_class) + set_load_weight(p, false); } =20 scx_disable_and_exit_task(scx_task_sched(p), p); --=20 2.43.0