From: Juri Lelli <juri.lelli@redhat.com>
To: linux-kernel@vger.kernel.org, cgroups@vger.kernel.org
Cc: "Ingo Molnar" <mingo@redhat.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"Juri Lelli" <juri.lelli@redhat.com>,
"Vincent Guittot" <vincent.guittot@linaro.org>,
"Dietmar Eggemann" <dietmar.eggemann@arm.com>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Ben Segall" <bsegall@google.com>, "Mel Gorman" <mgorman@suse.de>,
"Valentin Schneider" <vschneid@redhat.com>,
"Waiman Long" <longman@redhat.com>, "Tejun Heo" <tj@kernel.org>,
"Johannes Weiner" <hannes@cmpxchg.org>,
"Michal Koutný" <mkoutny@suse.com>,
"Qais Yousef" <qyousef@layalina.io>,
"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
"Swapnil Sapkal" <swapnil.sapkal@amd.com>,
"Shrikanth Hegde" <sshegde@linux.ibm.com>,
"Phil Auld" <pauld@redhat.com>,
luca.abeni@santannapisa.it, tommaso.cucinotta@santannapisa.it,
"Jon Hunter" <jonathanh@nvidia.com>
Subject: [PATCH 0/5] Fix SCHED_DEADLINE bandwidth accounting during suspend
Date: Tue, 4 Mar 2025 08:40:40 +0000 [thread overview]
Message-ID: <20250304084045.62554-1-juri.lelli@redhat.com> (raw)
Hello!
Jon reported [1] a suspend regression on a Tegra board configured to
boot with isolcpus and bisected it to commit 53916d5fd3c0
("sched/deadline: Check bandwidth overflow earlier for hotplug").
Root cause analysis pointed out that we are currently failing to
correctly clear and restore bandwidth accounting on root domains after
changes that initiate from partition_sched_domains(), as it is the case
for suspend operations on that board.
The way we currently make sure that accounting properly follows root
domain changes is quite convoluted and was indeed missing some corner
cases. So, instead of adding yet more fragile operations, I thought we
could simplify things by always clearing and rebuilding bandwidth
information on all domains after an update is complete. Also, we should
be ignoring DEADLINE special tasks when doing so (e.g. sugov), since we
ignore them already for runtime enforcement and admission control
anyway.
The following implements the approach by:
- 01/05: filter out DEADLINE special tasks
- 02/05: preparatory wrappers to be able to grab sched_domains_mutex on
UP
- 03/05: generalize unique visiting of root domains so that we can
re-use the mechanism elsewhere
- 04/05: the bulk of the approach, clean and rebuild after changes
- 05/05: clean up a now redundant call
Please test and review. The set is also available at
git@github.com:jlelli/linux.git upstream/deadline/domains-suspend
Waiman, could you please double check this doesn't break the cpuset
kselftest? It returns PASS on my end, but you never know.
Best,
Juri
1 - https://lore.kernel.org/lkml/ba51a43f-796d-4b79-808a-b8185905638a@nvidia.com/
Juri Lelli (5):
sched/deadline: Ignore special tasks when rebuilding domains
sched/topology: Wrappers for sched_domains_mutex
sched/deadline: Generalize unique visiting of root domains
sched/deadline: Rebuild root domain accounting after every update
sched/topology: Remove redundant dl_clear_root_domain call
include/linux/sched.h | 2 ++
include/linux/sched/deadline.h | 7 +++++++
include/linux/sched/topology.h | 2 ++
kernel/cgroup/cpuset.c | 20 ++++++++++---------
kernel/sched/core.c | 4 ++--
kernel/sched/deadline.c | 36 ++++++++++++++++++++--------------
kernel/sched/debug.c | 8 ++++----
kernel/sched/rt.c | 2 ++
kernel/sched/sched.h | 2 +-
kernel/sched/topology.c | 33 +++++++++++++++----------------
10 files changed, 68 insertions(+), 48 deletions(-)
base-commit: d082ecbc71e9e0bf49883ee4afd435a77a5101b6
--
2.48.1
next reply other threads:[~2025-03-04 8:41 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-04 8:40 Juri Lelli [this message]
2025-03-04 8:40 ` [PATCH 1/5] sched/deadline: Ignore special tasks when rebuilding domains Juri Lelli
2025-03-04 8:40 ` [PATCH 2/5] sched/topology: Wrappers for sched_domains_mutex Juri Lelli
2025-03-04 15:05 ` Waiman Long
2025-03-04 15:57 ` Juri Lelli
2025-03-04 16:01 ` Waiman Long
2025-03-05 10:52 ` Juri Lelli
2025-03-07 9:32 ` Juri Lelli
2025-03-07 14:49 ` Waiman Long
2025-03-04 8:40 ` [PATCH 3/5] sched/deadline: Generalize unique visiting of root domains Juri Lelli
2025-03-04 8:40 ` [PATCH 4/5] sched/deadline: Rebuild root domain accounting after every update Juri Lelli
2025-03-04 15:17 ` Waiman Long
2025-03-04 15:33 ` Waiman Long
2025-03-05 11:43 ` Juri Lelli
2025-03-05 11:20 ` Juri Lelli
2025-03-04 8:40 ` [PATCH 5/5] sched/topology: Remove redundant dl_clear_root_domain call Juri Lelli
2025-03-04 15:32 ` [PATCH 0/5] Fix SCHED_DEADLINE bandwidth accounting during suspend Jon Hunter
2025-03-04 15:53 ` Juri Lelli
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=20250304084045.62554-1-juri.lelli@redhat.com \
--to=juri.lelli@redhat.com \
--cc=bigeasy@linutronix.de \
--cc=bsegall@google.com \
--cc=cgroups@vger.kernel.org \
--cc=dietmar.eggemann@arm.com \
--cc=hannes@cmpxchg.org \
--cc=jonathanh@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=luca.abeni@santannapisa.it \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=mkoutny@suse.com \
--cc=pauld@redhat.com \
--cc=peterz@infradead.org \
--cc=qyousef@layalina.io \
--cc=rostedt@goodmis.org \
--cc=sshegde@linux.ibm.com \
--cc=swapnil.sapkal@amd.com \
--cc=tj@kernel.org \
--cc=tommaso.cucinotta@santannapisa.it \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox