sched/deadline: Make dl_cpuset_cpumask_can_shrink() capacity-aware
authorDietmar Eggemann <dietmar.eggemann@arm.com>
Fri, 29 Jul 2022 11:13:04 +0000 (13:13 +0200)
committerIngo Molnar <mingo@kernel.org>
Tue, 2 Aug 2022 10:32:45 +0000 (12:32 +0200)
commit6092478bcbf4021d3c52144bd456378de043fe58
tree6904a97e65ba40022e0933bafa88a295cc52f5a6
parent740cf8a760b73e8375bfb4bedcbe9746183350f9
sched/deadline: Make dl_cpuset_cpumask_can_shrink() capacity-aware

dl_cpuset_cpumask_can_shrink() is used to validate whether there is
still enough CPU capacity for DL tasks in the reduced cpuset.

Currently it still operates on `# remaining CPUs in the cpuset` (1).
Change this to use the already capacity-aware DL admission control
__dl_overflow() for the `cpumask can shrink` test.

  dl_b->bw = sched_rt_period << BW_SHIFT / sched_rt_period

  dl_b->bw * (1) >= currently allocated bandwidth in root_domain (rd)

  Replace (1) w/ `\Sum CPU capacity in rd >> SCHED_CAPACITY_SHIFT`

Adapt __dl_bw_capacity() to take a cpumask instead of a CPU number
argument so that `rd->span` and `cpumask of the reduced cpuset` can
be used here.

Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20220729111305.1275158-3-dietmar.eggemann@arm.com
kernel/sched/deadline.c