From: Peter Zijlstra <peterz@infradead.org>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: mingo@redhat.com, juri.lelli@redhat.com,
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,
qyousef@layalina.io
Subject: Re: [PATCH 6/6 v3] sched/eevdf: Speedup short slice task scheduling
Date: Thu, 25 Jun 2026 10:33:55 +0200 [thread overview]
Message-ID: <20260625083355.GQ42921@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <20260624151229.1710703-7-vincent.guittot@linaro.org>
On Wed, Jun 24, 2026 at 05:12:29PM +0200, Vincent Guittot wrote:
> When a task with a shorter slice is enqueued, we protect the running
> task which has a longer slice until it becomes ineligible instead of a
> full slice in order to speedup the switch to other tasks until the task
> with the shortest slice is scheduled. This helps to the task to not wait
> too many full slices before running.
>
> Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
> Tested-by: K Prateek Nayak <kprateek.nayak@amd.com>
> ---
> kernel/sched/fair.c | 52 +++++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 50 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index f972987618e7..7c541f27a1ed 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -813,6 +813,48 @@ u64 avg_vruntime(struct cfs_rq *cfs_rq)
> return cfs_rq->zero_vruntime;
> }
>
> +/*
> + * Compute the vruntime until which the entity remains eligible when it runs
> + * or is about to run on the CPU. We use this value to set vprot to the min
> + * value until which other entities would not be picked anyway.
> + * \Sum (v_i - v0)*w_i
> + * V = ------------------- + v0
> + * \Sum w_i
> + *
> + * We want V' for (v_se - v0) == 0. Previous entity has already been enqueued
> + * in the rb tree and next is already dequeued so
> + *
> + * cfs_rq->sum_w_vruntime
> + * V' = ------------------------- + v0
> + * cfs_rq->sum_weight + w_se
> +
> + */
> +static u64 eligible_vruntime(struct cfs_rq *cfs_rq, struct sched_entity *se)
> +{
> + struct sched_entity *curr = cfs_rq->curr;
> + long weight = cfs_rq->sum_weight;
> + s64 delta = 0;
'curr' goes unused in this function, did you want:
if (curr && !curr->on_rq)
curr = NULL;
> +
> + if (weight) {
> + s64 runtime = cfs_rq->sum_w_vruntime;
if (curr) {
unsigned long w = avg_vruntime_weight(cfs_rq, curr->load.weight);
runtime += entity_key(cfs_rq, curr) * w;
weight += w;
}
?
> +
> + weight += avg_vruntime_weight(cfs_rq, se->load.weight);
> +
> + /* sign flips effective floor / ceiling */
> + if (runtime < 0)
> + runtime -= (weight - 1);
> +
> + delta = div64_long(runtime, weight);
> + } else {
> + /*
> + * When there is but one element, it is the average.
> + */
> + delta = 0;
> + }
> +
> + return cfs_rq->zero_vruntime + delta + 1;
> +}
next prev parent reply other threads:[~2026-06-25 8:34 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-24 15:12 [PATCH 0/6 v3] sched/eevdf: Improve scheduling latency of short slice task Vincent Guittot
2026-06-24 15:12 ` [PATCH 1/6 v3] sched/fair: Set next buddy for preempt short Vincent Guittot
2026-06-25 6:24 ` K Prateek Nayak
2026-06-25 12:40 ` Vincent Guittot
2026-06-25 12:43 ` Peter Zijlstra
2026-06-26 6:54 ` Peter Zijlstra
2026-06-26 7:02 ` Vincent Guittot
2026-06-26 8:08 ` Peter Zijlstra
2026-06-26 8:55 ` Vincent Guittot
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 2/6 v3] sched/eevdf: Take into account current's lag when updating slice protection Vincent Guittot
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 3/6 v3] sched/eevdf: Update slice protection even when resched is already set Vincent Guittot
2026-06-26 7:21 ` Peter Zijlstra
2026-06-26 7:46 ` Peter Zijlstra
2026-06-30 9:03 ` [tip: sched/core] sched/core: Fix inter-class wakeup_preempt() tip-bot2 for Peter Zijlstra
2026-06-30 9:03 ` [tip: sched/core] sched/eevdf: Update slice protection even when resched is already set tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 4/6 v3] sched/eevdf: Cancel slice protection if short slice task is eligible Vincent Guittot
2026-06-25 6:00 ` K Prateek Nayak
2026-06-25 12:40 ` Vincent Guittot
2026-06-26 5:51 ` Shubhang Kaushik
2026-06-26 7:39 ` Vincent Guittot
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 5/6 v3] sched/eevdf: Always update slice protection Vincent Guittot
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2026-06-24 15:12 ` [PATCH 6/6 v3] sched/eevdf: Speedup short slice task scheduling Vincent Guittot
2026-06-25 7:37 ` K Prateek Nayak
2026-06-25 8:37 ` Peter Zijlstra
2026-06-25 10:09 ` Peter Zijlstra
2026-06-25 12:57 ` Vincent Guittot
2026-06-25 12:59 ` Vincent Guittot
2026-06-25 22:28 ` Peter Zijlstra
2026-06-26 3:57 ` K Prateek Nayak
2026-06-26 6:41 ` Peter Zijlstra
2026-06-26 7:05 ` Vincent Guittot
2026-06-26 7:18 ` Peter Zijlstra
2026-06-26 7:54 ` Peter Zijlstra
2026-06-26 8:55 ` Vincent Guittot
2026-06-26 13:55 ` Vincent Guittot
2026-06-29 14:25 ` Vincent Guittot
2026-06-25 14:55 ` Vincent Guittot
2026-06-25 12:51 ` Vincent Guittot
2026-06-25 8:33 ` Peter Zijlstra [this message]
2026-06-30 9:03 ` [tip: sched/core] " tip-bot2 for Vincent Guittot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260625083355.GQ42921@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=qyousef@layalina.io \
--cc=rostedt@goodmis.org \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.