[RFC PATCH 0/2] sched/cpuset: Fix DL BW accounting in case can_attach() fails

From: Dietmar Eggemann
Date: Wed Mar 22 2023 - 10:00:16 EST


I followed Longman's idea to add a `deadline task transfer count` into
cpuset and only update the `dl task count` in cpuset_attach().

Moreover, I switched from per-task DL BW request to a per-cpuset one.
This way we don't have to free per-task in case xxx_can_attach() fails.

The DL BW freeing is handled in cpuset_cancel_attach() for the case
`multiple controllers and one of the non-cpuset can_attach() fails`.

Only lightly tested on cgroup v1 with exclusive cpusets so far.

Dietmar Eggemann (2):
sched/deadline: Create DL BW alloc, free & check overflow interface
cgroup/cpuset: Free DL BW in case can_attach() fails

include/linux/sched.h | 4 ++-
kernel/cgroup/cpuset.c | 55 +++++++++++++++++++++++++++++++++++++----
kernel/sched/core.c | 19 +++-----------
kernel/sched/deadline.c | 53 +++++++++++++++++++++++++++++----------
kernel/sched/sched.h | 2 +-
5 files changed, 97 insertions(+), 36 deletions(-)

--
2.25.1