From nobody Mon Jun 8 19:49:41 2026 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.3]) (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 A75D73B9DBC for ; Wed, 27 May 2026 07:23:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.3 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779866598; cv=none; b=mw36B0woj5k0sTuULaoX/bTCvfbOiEG12AFEyu7drbkpc5haLRY59uUvmxlL/YouAA9hHyH2vhyu7UXgDi7IJKdOGGx7zT2b53Dd0UmI/qSTTkW8vK4VpT/OG72qeDBJ/2Y1DVObeCaMVYqa3R8/ZTq0fZRXIZE37NV6iISAEfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779866598; c=relaxed/simple; bh=t5Ac78t7mSQvbWp0JxX48Bv9D7y+nMhtxGgrCdYaj+o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jJNxWquE7R3Ua3x2aC/L8EeeB6iXEZxCyKPnKfuoc9+rJNvvXJ0E81304NHT8cdJB408MrdOj/nOAQWkCbyjfyvV1UjxHRRv2ZRfo4yOgSH3TIfF2PGLGL9uN/xaZGM1fy77uCmRUhgYEWY6M1XfUs+uN7/97ht4CXGZPwF2ofc= 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=BpifBEHS; arc=none smtp.client-ip=220.197.31.3 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="BpifBEHS" 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=Df ELc67Cnn1+speWaYUdtEqOITj+urL0qZ0tBba5o5M=; b=BpifBEHSQ16A3cqjz9 njSUYUQBN5pxoCAhrEoU7N6E4IvYh2Qi95qOoPGNosSlbMDzyrQMsfyWFMLtXitU DhA8ZcBBT+CTRwcm1VSCx2h+WrDzFNUZGGwq1thmu14d4PeUSWT5JKlpOe4FNUM4 M2np5QGOxe7ch3b86Lepn3ZfM= Received: from vbox.. (unknown []) by gzga-smtp-mtada-g1-1 (Coremail) with SMTP id _____wB3XG99mxZqwnebDg--.54623S2; Wed, 27 May 2026 15:21:34 +0800 (CST) From: Li kunyu To: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com Cc: linux-kernel@vger.kernel.org, Li kunyu Subject: [PATCH v2] kernel/sched/fair: Fix the issue of virtual runtime conversion error Date: Wed, 27 May 2026 15:21:13 +0800 Message-ID: <20260527072113.359604-1-likunyu10@163.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260526071537.17460-1-likunyu10@163.com> References: <20260526071537.17460-1-likunyu10@163.com> 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: _____wB3XG99mxZqwnebDg--.54623S2 X-Coremail-Antispam: 1Uf129KBjvdXoWruw4UGFyxur1kJw1fZw45trb_yoWDArc_C3 WUJFW7G3W0kF4vkr17C3yfXry5Gay0gF1fuwn8KFWxt3Z8trsxGr98GF93Jrn3Xr1xJFZ8 GrsxZF1qvwnrWjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7sRNvtCUUUUUU== X-CM-SenderInfo: poln30d1xriqqrwthudrp/xtbDAB4mymoWm34dvAAA3K Content-Type: text/plain; charset="utf-8" The logic of the function here should be to convert the virtual runtime into actual time by combining it with the weight of the scheduling entity. However, it cannot be converted by simply converting actual time into virtual running time. A reverse conversion is required to obtain the correct time. Signed-off-by: Li kunyu --- v2: Use the div64_ul function to perform division operation kernel/sched/fair.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 69361c63353a..53f3373c1735 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7033,7 +7033,9 @@ static void hrtick_start_fair(struct rq *rq, struct t= ask_struct *p) resched_curr(rq); return; } - delta =3D (se->load.weight * vdelta) / NICE_0_LOAD; + + if (unlikely(se->load.weight !=3D NICE_0_LOAD)) + delta =3D div64_ul(NICE_0_LOAD * vdelta, se->load.weight); =20 /* * Correct for instantaneous load of other classes. --=20 2.47.3