All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gabriele Monaco <gmonaco@redhat.com>
To: Juri Lelli <juri.lelli@redhat.com>,
	Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	linux-kernel@vger.kernel.org
Cc: jstultz@google.com, arighi@nvidia.com, soolaugust@gmail.com,
	suzhidao@xiaomi.com, Gabriele Monaco <gmonaco@redhat.com>
Subject: [PATCH] sched/deadline: Use revised wakeup rule only for running dl_server
Date: Fri, 22 May 2026 14:58:33 +0200	[thread overview]
Message-ID: <20260522125833.264145-1-gmonaco@redhat.com> (raw)

Commit 14a857056466 ("sched/deadline: Use revised wakeup rule for
dl_server") applies the revised wakeup rule to any server, as a result
servers that are not running (dl_defer_running == 0) and start with a
deadline overflow get enqueued and can boost tasks as if they were
running, invalidating the defer rule and the documented state model.

Apply the revised wakeup rule only for deferrable servers that are
marked as running.

Fixes: 14a857056466 ("sched/deadline: Use revised wakeup rule for dl_server")
Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
---

Tested with ksched_football on a 16 CPUs machine: no regression (1s for
check in and game over in 10s).

Apparently the rt_stall sched_ext selftest does fail with tasks not
always getting above 4% (almost always above 3%). But that seems to be
the case also before this change on that machine.

---
 kernel/sched/deadline.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index 7db4c87df83b..e5a7701a8af7 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -1017,7 +1017,8 @@ static void update_dl_entity(struct sched_dl_entity *dl_se)
 	if (dl_time_before(dl_se->deadline, rq_clock(rq)) ||
 	    dl_entity_overflow(dl_se, rq_clock(rq))) {
 
-		if (unlikely((!dl_is_implicit(dl_se) || dl_se->dl_defer) &&
+		if (unlikely((!dl_is_implicit(dl_se) ||
+			      (dl_se->dl_defer && dl_se->dl_defer_running)) &&
 			     !dl_time_before(dl_se->deadline, rq_clock(rq)) &&
 			     !is_dl_boosted(dl_se))) {
 			update_dl_revised_wakeup(dl_se, rq);

base-commit: 8bc67e4db64aa72732c474b44ea8622062c903f0
-- 
2.54.0


             reply	other threads:[~2026-05-22 12:59 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-22 12:58 Gabriele Monaco [this message]
2026-05-22 20:58 ` [PATCH] sched/deadline: Use revised wakeup rule only for running dl_server Andrea Righi
2026-05-25  6:19 ` Juri Lelli
2026-07-29 13:27 ` Gabriele Monaco
2026-07-29 13:29   ` Gabriele Monaco
2026-07-29 14:52   ` Peter Zijlstra
2026-07-29 14:54     ` Gabriele Monaco
2026-07-29 19:18 ` John Stultz
2026-07-30 11:03 ` [tip: sched/urgent] " tip-bot2 for Gabriele Monaco

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=20260522125833.264145-1-gmonaco@redhat.com \
    --to=gmonaco@redhat.com \
    --cc=arighi@nvidia.com \
    --cc=jstultz@google.com \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=soolaugust@gmail.com \
    --cc=suzhidao@xiaomi.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.