Star64_linux/kernel/sched
Dietmar Eggemann e026ec9262 cgroup/cpuset: Free DL BW in case can_attach() fails
commit 2ef269ef1a 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>
[ Conflict in kernel/cgroup/cpuset.c due to pulling extra neighboring
  functions that are not applicable on this branch. ]
Signed-off-by: Qais Yousef (Google) <qyousef@layalina.io>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-09-05 01:25:10 +08:00
..
autogroup.c sched/fair: Prevent dead task groups from regaining cfs_rq's 2023-04-19 17:42:09 +08:00
autogroup.h
clock.c sched: Fix various typos 2021-03-22 00:11:52 +01:00
completion.c
core.c cgroup/cpuset: Free DL BW in case can_attach() fails 2023-09-05 01:25:10 +08:00
core_sched.c sched: prctl() core-scheduling interface 2021-05-12 11:43:31 +02:00
cpuacct.c sched/cpuacct: Fix charge percpu cpuusage 2023-04-19 17:46:44 +08:00
cpudeadline.c sched/core: Introduce sched_asym_cpucap_active() 2023-04-19 17:57:12 +08:00
cpudeadline.h
cpufreq.c
cpufreq_schedutil.c sched/uclamp: Fix iowait boost escaping uclamp restriction 2023-04-19 17:46:44 +08:00
cpupri.c sched: Fix various typos 2021-03-22 00:11:52 +01:00
cpupri.h
cputime.c cputime, cpuacct: Include guest time in user time in cpuacct.stat 2023-04-19 17:44:33 +08:00
deadline.c sched/deadline: Create DL BW alloc, free & check overflow interface 2023-09-05 01:25:10 +08:00
debug.c sched: Fix DEBUG && !SCHEDSTATS warn 2023-06-06 18:37:33 +08:00
fair.c sched/fair: Fix inaccurate tally of ttwu_move_affine 2023-06-06 18:37:25 +08:00
features.h sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg 2023-04-19 17:52:06 +08:00
idle.c lockdep: Fix -Wunused-parameter for _THIS_IP_ 2023-04-19 17:53:51 +08:00
isolation.c sched/isolation: Reconcile rcu_nocbs= and nohz_full= 2021-05-13 14:12:47 +02:00
loadavg.c sched: Make multiple runqueue task counters 32-bit 2021-05-12 21:34:17 +02:00
Makefile sched: Trivial core scheduling cookie management 2021-05-12 11:43:31 +02:00
membarrier.c sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask 2023-04-19 17:44:51 +08:00
pelt.c sched: Fix various typos 2021-03-22 00:11:52 +01:00
pelt.h sched/fair: Fix cfs_rq_clock_pelt() for throttled cfs_rq 2023-04-19 17:49:35 +08:00
psi.c sched/psi: Fix use-after-free in ep_remove_wait_queue() 2023-04-19 17:59:27 +08:00
rt.c sched/rt: Fix bad task migration for rt tasks 2023-06-06 18:37:25 +08:00
sched-pelt.h
sched.h sched/deadline: Create DL BW alloc, free & check overflow interface 2023-09-05 01:25:10 +08:00
smp.h
stats.c sched: Fix various typos 2021-03-22 00:11:52 +01:00
stats.h sched: Make struct sched_statistics independent of fair sched class 2023-06-06 18:37:25 +08:00
stop_task.c sched: Make struct sched_statistics independent of fair sched class 2023-06-06 18:37:25 +08:00
swait.c
topology.c sched/topology: Skip updating masks for non-online nodes 2021-08-20 12:32:57 +02:00
wait.c wait: add wake_up_pollfree() 2023-04-19 17:42:57 +08:00
wait_bit.c