[PATCH 0/2] Fix DEADLINE bandwidth accounting in root domain changes and hotplug
From: Juri Lelli
Date: Wed Nov 13 2024 - 08:06:46 EST
Hello!
This patch series addresses two issues affecting DEADLINE bandwidth
accounting during non-destructive changes to root domains and hotplug
operations. The series is based on top of Waiman's "cgroup/cpuset:
Remove redundant rebuild_sched_domains_locked() calls" series [1] which
is now merged into cgroups/for-6.13 (this series is based on top of
that, commit c4c9cebe2fb9). The discussion that eventually led to these
two series can be found at [2].
Patch 01/02 deals with non-destructive root domain changes. Currently,
such operations do not correctly account for dl_server contributions, as
they are only considered on destructive changes (where runqueues are
reattached to new domains). This patch ensures that dl_servers’
bandwidth contributions are properly re-added to root domains that
remain unchanged, preventing accounting discrepancies.
Patch 02/02 deals with hotplug. For CPU hotplug events, DEADLINE
bandwidth needs verification to ensure adequate bandwidth remains after
a CPU goes offline. The current implementation overlooks this check,
potentially leading to overflow conditions. This patch modifies
dl_bw_manage() to correctly detect and handle overflow situations,
special casing dl_servers' bandwidth contibution.
Please go forth and test/review.
Series also available at
git@xxxxxxxxxx:jlelli/linux.git upstream/dl-server-apply
Best,
Juri
[1] https://lore.kernel.org/lkml/20241110025023.664487-1-longman@xxxxxxxxxx/
[2] https://lore.kernel.org/lkml/20241029225116.3998487-1-joel@xxxxxxxxxxxxxxxxx/
Juri Lelli (2):
sched/deadline: Restore dl_server bandwidth on non-destructive root
domain changes
sched/deadline: Correctly account for allocated bandwidth during
hotplug
include/linux/sched/deadline.h | 2 +-
kernel/cgroup/cpuset.c | 2 +-
kernel/sched/core.c | 2 +-
kernel/sched/deadline.c | 51 ++++++++++++++++++++++++----------
kernel/sched/sched.h | 2 +-
kernel/sched/topology.c | 10 ++++---
6 files changed, 47 insertions(+), 22 deletions(-)
--
2.47.0