From nobody Mon Dec 1 22:02:03 2025 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (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 CBDA630AAA6 for ; Mon, 1 Dec 2025 12:42:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764592936; cv=none; b=b78eKdRrfF5UMKhRiQ1Z88ccYSuVGehuGPhDcrVdqb5cHyByGUrGSw6B13IBw+4xpn8CES0pOxLj1V7Oq15fIq7w7FxYSi76Wh69SvzMZ0IHBQPQP+zNRYyrRNwdpuvjLYdVivuzBVWZaMZSKYVD7Eye+A/1FP1q6Bd9LloUxWU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764592936; c=relaxed/simple; bh=VUhS8rm+rja3StXdNa9mR6SKz5XBV85CgB2D1j/ju7Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NXbS30R79l2gDS2h44GijK+3GXNL4rglv1SIQe3/bK58yyds7nq/wAVTNpM2DaU8dPqhj72G8vR44ZVlkrhTer5Dmxc3uD7UmpSntuN5TdwRJyIT7Z3UchPAaKEmdz/31njWfSGJjR8Q5kRVgm2lZk+7iESoVCwpy7pW7aIaYJs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RhGOxGiL; arc=none smtp.client-ip=209.85.208.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RhGOxGiL" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-64149f78c0dso6267343a12.3 for ; Mon, 01 Dec 2025 04:42:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764592933; x=1765197733; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=f/jmZMFqfo9o66d41r23lJRa7nTeBjZM9UfI4eBF/48=; b=RhGOxGiLhXFdK4PBkEW2k73fWxetRtIKIcAkkV42OgC2msSwC9cX+5IsL7WLFTRmnT qlpYbuYkKMLyG+ntaQmZsbLECf5Y/bhv2bdn9Sq+BwHhVtZJgc3FLpY/1Q4NYK1Td/so D0TT6d1dKhf5SfZ6zZtXFM/EGMAziyesoMo38cUU+MKkIRUMQAX1To2r8ps2O4jj+POo 07Xz8sVRxy9lEahzaAQXZ1tpZ3XfmwmSV9Ee4bvhr3VobajPZVkabZR9Xc/aqZYixFtY EYqd60o/s80ue64IEN3kzPMiTnuahB4z8LqWVOwbZx8ZsYJ+bvK6HXTTRnN0w3WN04pH RbnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764592933; x=1765197733; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=f/jmZMFqfo9o66d41r23lJRa7nTeBjZM9UfI4eBF/48=; b=WLUzI5spAS/rSFFwu22s3mgiueHEwe6Qnn0JemCb4ThZNEkoKvN5VwyFOnRQbnBstZ 58xPVM4z2p18B4AA0TIfW+6Q5ZVu7kaapQwyq2Byf+qvF5h0kSnb5N85uIVBjA11uPkX i/cD6yRLJkzChPWNCaIu6vOVnJ0Nxv8AHhYVFpxez2DQwzSk0figIu6wofGr2P8/jPYt BY1Q1oZfsDT6TxWr6nzpmU7xNPoe07QoBK99Soyr5lnummSTr8klT6iYA+oZTpgXf61Y 5DgIOhXX0bvEpuhbATz9/fVfuPRlltxIYjhsTKArAK7cWOHxQgZudiclXirF7d28vo0i l/eg== X-Gm-Message-State: AOJu0YwV9Nn+TdjD2VvuM1PqgGYy9G7MNTNTRhXmQXLNQo8Mz1tqaGP7 CX/xWoDSLVQpjJZTSVEGscoC3loLzmiFXJW7WZkUQhA4IgR81LCkgzim X-Gm-Gg: ASbGncu0iQ1X1wVOd5iTEgdHMHaGvPR3UwhCnVh1H1nObWUxCtos4xKEepyM+zZA3Jo dPh5Rk2BAdrV0igpDC59WvgJE+nIkrcobJhedNoagYpRJP23EGuM0MTtE2hV04vaK3UkNICXiGy uoWQoZN8+BE07qmbpvJG66RY+iKGikzWTUY/JDktV0oVvbMXkmfiAfMxwjAo+TFTiPWmhXR+0BK Ukc9/iEH59TdnHcY52AdiHHkmi2Cve8VP6LBBh6dmUUlwhTo163bTrKX+li9M9AecxKxu2B9T38 twxPiTdTCKzxiywmfF64Vpl9RJjzmtBsuSxS8IGyOd65eXjxaj3tGGody48F02jlZ2WYGBtNe3t Ndn2AmnB5ERB6wlbCkXexgU55ojcppSGUYGbKfdoycQsPKFNSpxllrjUF9SCAwszjvyedoKb98S r6hBCn+vRt X-Google-Smtp-Source: AGHT+IG1jSgRDCuqUjxGZ7n7RiNdge5AVicNN3jNxZBeY5iEsyKJHGlJ4W6A4TwJcoerBVxD770tLA== X-Received: by 2002:a17:907:3f0a:b0:b73:780d:2bcf with SMTP id a640c23a62f3a-b76715ab995mr4431341566b.16.1764592932879; Mon, 01 Dec 2025 04:42:12 -0800 (PST) Received: from victus-lab ([193.205.81.5]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b76f59e8612sm1173738266b.52.2025.12.01.04.42.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Dec 2025 04:42:12 -0800 (PST) From: Yuri Andriaccio To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider Cc: linux-kernel@vger.kernel.org, Luca Abeni , Yuri Andriaccio Subject: [RFC PATCH v4 06/28] sched/rt: Remove rq field in struct rt_rq Date: Mon, 1 Dec 2025 13:41:39 +0100 Message-ID: <20251201124205.11169-7-yurand2000@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251201124205.11169-1-yurand2000@gmail.com> References: <20251201124205.11169-1-yurand2000@gmail.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 Content-Type: text/plain; charset="utf-8" The rq field now is just caching the pointer to the global runqueue of the given rt_rq, so it is unnecessary as the global runqueue can be retrieved in other ways. Signed-off-by: Yuri Andriaccio --- kernel/sched/rt.c | 7 ++----- kernel/sched/sched.h | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 74038b27f8..21f4e94235 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -100,10 +100,7 @@ void init_tg_rt_entry(struct task_group *tg, struct rt= _rq *rt_rq, struct sched_rt_entity *rt_se, int cpu, struct sched_rt_entity *parent) { - struct rq *rq =3D cpu_rq(cpu); - rt_rq->highest_prio.curr =3D MAX_RT_PRIO-1; - rt_rq->rq =3D rq; rt_rq->tg =3D tg; =20 tg->rt_rq[cpu] =3D rt_rq; @@ -183,7 +180,7 @@ static void pull_rt_task(struct rq *); =20 static inline void rt_queue_push_tasks(struct rt_rq *rt_rq) { - struct rq *rq =3D container_of(rt_rq, struct rq, rt); + struct rq *rq =3D served_rq_of_rt_rq(rt_rq); =20 if (!has_pushable_tasks(rt_rq)) return; @@ -193,7 +190,7 @@ static inline void rt_queue_push_tasks(struct rt_rq *rt= _rq) =20 static inline void rt_queue_pull_task(struct rt_rq *rt_rq) { - struct rq *rq =3D container_of(rt_rq, struct rq, rt); + struct rq *rq =3D served_rq_of_rt_rq(rt_rq); =20 queue_balance_callback(rq, &per_cpu(rt_pull_head, rq->cpu), pull_rt_task); } diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 5c48d6a5e6..1896c4e247 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -3074,11 +3074,16 @@ static inline struct task_struct *rt_task_of(struct= sched_rt_entity *rt_se) return container_of(rt_se, struct task_struct, rt); } =20 +static inline struct rq *served_rq_of_rt_rq(struct rt_rq *rt_rq) +{ + WARN_ON(!rt_group_sched_enabled() && rt_rq->tg !=3D &root_task_group); + return container_of(rt_rq, struct rq, rt); +} + static inline struct rq *rq_of_rt_rq(struct rt_rq *rt_rq) { /* Cannot fold with non-CONFIG_RT_GROUP_SCHED version, layout */ - WARN_ON(!rt_group_sched_enabled() && rt_rq->tg !=3D &root_task_group); - return rt_rq->rq; + return cpu_rq(served_rq_of_rt_rq(rt_rq)->cpu); } =20 static inline struct rt_rq *rt_rq_of_se(struct sched_rt_entity *rt_se) @@ -3089,10 +3094,7 @@ static inline struct rt_rq *rt_rq_of_se(struct sched= _rt_entity *rt_se) =20 static inline struct rq *rq_of_rt_se(struct sched_rt_entity *rt_se) { - struct rt_rq *rt_rq =3D rt_se->rt_rq; - - WARN_ON(!rt_group_sched_enabled() && rt_rq->tg !=3D &root_task_group); - return rt_rq->rq; + return rq_of_rt_rq(rt_se->rt_rq); } #else static inline struct task_struct *rt_task_of(struct sched_rt_entity *rt_se) @@ -3100,6 +3102,11 @@ static inline struct task_struct *rt_task_of(struct = sched_rt_entity *rt_se) return container_of(rt_se, struct task_struct, rt); } =20 +static inline struct rq *served_rq_of_rt_rq(struct rt_rq *rt_rq) +{ + return container_of(rt_rq, struct rq, rt); +} + static inline struct rq *rq_of_rt_rq(struct rt_rq *rt_rq) { return container_of(rt_rq, struct rq, rt); --=20 2.51.0