From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) (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 8304F3783AF for ; Tue, 12 May 2026 02:56:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.202 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778554607; cv=none; b=YAtLxZof+bbWdJrgOlX7nkECgI4C54iyLdYZUAx7MG0Z2JhMWQoZcFLJWk1vumuXyKlACbjARXXM/qsO0Hb20/EtmPgjDRZrFJ/n1XFJ/ljyrylqtsul5JkKPoNaSEyfMKAcuYPKMIdoKwWdo5NqpENBT4/mE68Nye256/jIbzg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778554607; c=relaxed/simple; bh=afHe15jfWQe/JzRjLipsfPtgqLRC2mAHjpBSv5UN41w=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=E12j/639E1lxJ8JBcjUnXn4dpc8gnnPbCqe/8+Vl3Gc9DAndxBJasFAheWwLKAEXfY+HCltiiuukDVi4THUYPYURbF6ICY1uN3Hn5bDMU2us3YFsJTHql65OgXpj7halYHxQncqxPfF8VdRolKS9OUMb3mL3WeZfZhFEvpxs8n0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--jstultz.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=HlUlOSRe; arc=none smtp.client-ip=209.85.210.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--jstultz.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="HlUlOSRe" Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-82f74bcfb86so5112694b3a.0 for ; Mon, 11 May 2026 19:56:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1778554606; x=1779159406; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=nZj3agavyvVHIacLbskesgjSZzR516cxelZ1II2eIQI=; b=HlUlOSRexCku+jpz80IVsZdtctV38NmqljntlB7vMVrY1li37wM1Y3q5wRQ7eXqbDp FIdK183H3UNu1+0M/LlSXoh5fAhrgyHIKtX/odwgJI/RlIh5pn+nwBqZLmBvozfaLp3r 6GV84gXpzz/ytDWvIwPUropNmd1E4YHfvpDvfHzhk/vbFERsD6PhreBGa7Hr4Brz+5Ih 0nilfb9/JIvwegjJgjfLL44HMV6PbKLOHbfMqjG0Hh9jVHNzO4uVRMAHNQ3zrWzuKuig NAYDRfhdv60QxPRcM2mv4z3BjrFQkVxC33BOifDPAC3bx+p0x+h/TdOVzo2UkWV8+JWR Z3aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778554606; x=1779159406; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nZj3agavyvVHIacLbskesgjSZzR516cxelZ1II2eIQI=; b=ExgonUmTONm3YXdwtZcYQzsNwr2GT+StnQtWjWFU+uR9XfQz11YEBfCCxTN27xn6OJ s7BP7qijSfuIuThIdixIEF8UUY3UP5Q7s1jl21bMfxS+0q2R0xN5FMb6gedKELyteUk+ irJCqW4HlqvpcYVprS9RW8v0EfFTCeFnxz08MVNHb8DiTkgfeM3gQ6HM8EuMHJZg36rS 8oNU6DUd582r5oNedYcAVEb4ZVIPFbTlonWgMw4fBIcFKjX2WU5j2hJIMeWbitXUj1h9 KSodImiwsSADulV5SwO6X6IohzdMjmzwyX2m1ZG7eIoWl/kELdjTXXOb2J6vMRhgzcBk nN6A== X-Gm-Message-State: AOJu0Yyl7IuHc/olCGlx1tBN26g3qhBph6Y4NShtGIQdqOrMNz47rU31 mZ6tvnh3lSW3QAQ79J/uZ5dTEYWevTMFLt3N3ONXaEiu7fs1YNGzPq7p7A8tqYT6bPqbqJFkw6s V1HvsMeSdOHjHlCf6MyPxuM+sirzJXIBBpi2prqG7FD9bmI9dVtQD7bSeHChqoJYLd/6i9aWYhr 7fEz9GZNVplqIwDuAOw7lr90Tp35NiiGoE4EsbUP12SwVMoZlt X-Received: from pfblr27.prod.google.com ([2002:a05:6a00:739b:b0:82f:7220:86e7]) (user=jstultz job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:2d06:b0:835:388c:9764 with SMTP id d2e1a72fcca58-83e3b7b4579mr12193187b3a.37.1778554605417; Mon, 11 May 2026 19:56:45 -0700 (PDT) Date: Tue, 12 May 2026 02:56:12 +0000 In-Reply-To: <20260512025635.2840817-1-jstultz@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260512025635.2840817-1-jstultz@google.com> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog Message-ID: <20260512025635.2840817-3-jstultz@google.com> Subject: [PATCH v29 2/9] sched: deadline: Add some helper variables to cleanup deadline logic From: John Stultz To: LKML Cc: John Stultz , Peter Zijlstra , Joel Fernandes , Qais Yousef , Ingo Molnar , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Valentin Schneider , Steven Rostedt , Ben Segall , Zimuzo Ezeozue , Will Deacon , Waiman Long , Boqun Feng , "Paul E. McKenney" , Metin Kaya , Xuewen Yan , K Prateek Nayak , Thomas Gleixner , Daniel Lezcano , Suleiman Souhlal , kuyo chang , hupu , kernel-team@android.com Content-Type: text/plain; charset="UTF-8" As part of an improvement to handling pushable deadline tasks, Peter suggested this cleanup[1], to use helper values for dl_entity and dl_rq in the enqueue_task_dl() and put_prev_task_dl() functions. There should be no functional change from this patch. To make sure this cleanup change doesn't obscure later logic changes, I've split it into its own patch. [1]: https://lore.kernel.org/lkml/20260304095123.GP606826@noisy.programming.kicks-ass.net/ Suggested-by: Peter Zijlstra Signed-off-by: John Stultz --- v29: * Replace a missed p->dl usage with dl_se Cc: Joel Fernandes Cc: Qais Yousef Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Juri Lelli Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Valentin Schneider Cc: Steven Rostedt Cc: Ben Segall Cc: Zimuzo Ezeozue Cc: Will Deacon Cc: Waiman Long Cc: Boqun Feng Cc: "Paul E. McKenney" Cc: Metin Kaya Cc: Xuewen Yan Cc: K Prateek Nayak Cc: Thomas Gleixner Cc: Daniel Lezcano Cc: Suleiman Souhlal Cc: kuyo chang Cc: hupu Cc: kernel-team@android.com --- kernel/sched/deadline.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index f07a888314450..4aec446cd900c 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2292,7 +2292,10 @@ static void dequeue_dl_entity(struct sched_dl_entity *dl_se, int flags) static void enqueue_task_dl(struct rq *rq, struct task_struct *p, int flags) { - if (is_dl_boosted(&p->dl)) { + struct sched_dl_entity *dl_se = &p->dl; + struct dl_rq *dl_rq = &rq->dl; + + if (is_dl_boosted(dl_se)) { /* * Because of delays in the detection of the overrun of a * thread's runtime, it might be the case that a thread @@ -2305,14 +2308,14 @@ static void enqueue_task_dl(struct rq *rq, struct task_struct *p, int flags) * * In this case, the boost overrides the throttle. */ - if (p->dl.dl_throttled) { + if (dl_se->dl_throttled) { /* * The replenish timer needs to be canceled. No * problem if it fires concurrently: boosted threads * are ignored in dl_task_timer(). */ - cancel_replenish_timer(&p->dl); - p->dl.dl_throttled = 0; + cancel_replenish_timer(dl_se); + dl_se->dl_throttled = 0; } } else if (!dl_prio(p->normal_prio)) { /* @@ -2324,7 +2327,7 @@ static void enqueue_task_dl(struct rq *rq, struct task_struct *p, int flags) * being boosted again with no means to replenish the runtime and clear * the throttle. */ - p->dl.dl_throttled = 0; + dl_se->dl_throttled = 0; if (!(flags & ENQUEUE_REPLENISH)) printk_deferred_once("sched: DL de-boosted task PID %d: REPLENISH flag missing\n", task_pid_nr(p)); @@ -2333,20 +2336,20 @@ static void enqueue_task_dl(struct rq *rq, struct task_struct *p, int flags) } check_schedstat_required(); - update_stats_wait_start_dl(dl_rq_of_se(&p->dl), &p->dl); + update_stats_wait_start_dl(dl_rq, dl_se); if (p->on_rq == TASK_ON_RQ_MIGRATING) flags |= ENQUEUE_MIGRATING; - enqueue_dl_entity(&p->dl, flags); + enqueue_dl_entity(dl_se, flags); - if (dl_server(&p->dl)) + if (dl_server(dl_se)) return; if (task_is_blocked(p)) return; - if (!task_current(rq, p) && !p->dl.dl_throttled && p->nr_cpus_allowed > 1) + if (!task_current(rq, p) && !dl_se->dl_throttled && p->nr_cpus_allowed > 1) enqueue_pushable_dl_task(rq, p); } @@ -2643,7 +2646,7 @@ static void put_prev_task_dl(struct rq *rq, struct task_struct *p, struct task_s struct sched_dl_entity *dl_se = &p->dl; struct dl_rq *dl_rq = &rq->dl; - if (on_dl_rq(&p->dl)) + if (on_dl_rq(dl_se)) update_stats_wait_start_dl(dl_rq, dl_se); update_curr_dl(rq); @@ -2653,7 +2656,7 @@ static void put_prev_task_dl(struct rq *rq, struct task_struct *p, struct task_s if (task_is_blocked(p)) return; - if (on_dl_rq(&p->dl) && p->nr_cpus_allowed > 1) + if (on_dl_rq(dl_se) && p->nr_cpus_allowed > 1) enqueue_pushable_dl_task(rq, p); } -- 2.54.0.563.g4f69b47b94-goog