]> git.baikalelectronics.ru Git - kernel.git/commit
cgroup/cpuset: Free DL BW in case can_attach() fails
authorDietmar Eggemann <dietmar.eggemann@arm.com>
Sun, 20 Aug 2023 15:24:17 +0000 (16:24 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Aug 2023 14:11:11 +0000 (16:11 +0200)
commitd3ff67076bed6b09be43faec7339cc51dfba451d
treef03a43bc460e12491a8c175707dc28db5aba83f5
parentf0135131bb0e5b02313898da809822f4edca7e4f
cgroup/cpuset: Free DL BW in case can_attach() fails

commit 2ef269ef1ac006acf974793d975539244d77b28f upstream.

cpuset_can_attach() can fail. Postpone DL BW allocation until all tasks
have been checked. DL BW is not allocated per-task but as a sum over
all DL tasks migrating.

If multiple controllers are attached to the cgroup next to the cpuset
controller a non-cpuset can_attach() can fail. In this case free DL BW
in cpuset_cancel_attach().

Finally, update cpuset DL task count (nr_deadline_tasks) only in
cpuset_attach().

Suggested-by: Waiman Long <longman@redhat.com>
Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
Reviewed-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Qais Yousef (Google) <qyousef@layalina.io>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/sched.h
kernel/cgroup/cpuset.c
kernel/sched/core.c