[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a29f9f4f-d86a-47ce-840e-6ed2cd6f14b7@amd.com>
Date: Fri, 19 Sep 2025 21:04:02 +0530
From: K Prateek Nayak <kprateek.nayak@....com>
To: Peter Zijlstra <peterz@...radead.org>, <tglx@...utronix.de>
CC: <arnd@...db.de>, <anna-maria@...utronix.de>, <frederic@...nel.org>,
<luto@...nel.org>, <mingo@...hat.com>, <juri.lelli@...hat.com>,
<vincent.guittot@...aro.org>, <dietmar.eggemann@....com>,
<rostedt@...dmis.org>, <bsegall@...gle.com>, <mgorman@...e.de>,
<vschneid@...hat.com>, <linux-kernel@...r.kernel.org>,
<oliver.sang@...el.com>
Subject: Re: [PATCH 3/8] sched/eevdf: Fix HRTICK duration
Hello Peter,
On 9/18/2025 1:22 PM, Peter Zijlstra wrote:
> + /*
> + * Compute time until virtual deadline
> + */
> + vdelta = se->deadline - se->vruntime;
> + if ((s64)vdelta < 0) {
> + if (task_current_donor(rq, p))
> + resched_curr(rq);
Why the task_current_donor() check? If the scheduling context has run
out of gas, shouldn't we reschedule curr even if we were proxied?
> + return;
> + }
> + delta = (se->load.weight * vdelta) / NICE_0_LOAD;
> +
> + /*
> + * Correct for instantaneous load of other classes.
> + */
> + util += cpu_util_dl(rq);
> + util += cpu_util_rt(rq);
> + util += cpu_util_irq(rq);
> + if (util && util < 1024) {
> + scale *= 1024;
> + scale /= (1024 - util);
> }
Could it be possible that we arrive here from the dl_server's pick and
end up inflating the HRTICK duration despite having an uninterrupted
period for fair tasks ahead?
> +
> + hrtick_start(rq, (scale * delta) / 1024);
> }
>
> /*
--
Thanks and Regards,
Prateek
Powered by blists - more mailing lists