[PATCH v6 0/2] sched/deadline: Fix and optimize sched_dl_global_validate()

From: Peng Liu
Date: Thu Oct 08 2020 - 11:47:45 EST


When change global rt bandwidth, we check to make sure that new
settings could accommodate the allocated dl bandwidth.

Under SMP, the dl_bw is on a per root domain basis, currently we check
and update the new settings one cpu by one cpu, but not in the unit of
root domain, which is either overdoing or error.

patch 1 removed the superfluous checking and updating
patch 2 fixed the error validation

For details, please see the corresponding patch.

----------------
v6 <-- v5:
- no functional changes, just revert visit_gen back to u64;

v5 <-- v4:
- no functional changes, just split the v4 single patch to two to
obey the "one patch do only one thing" rule;
- turn root_domain::visit_gen from u64 to u32;
both suggested by Juri.
- refine changelog;

v4 <-- v3:
- refine changelog;
- eliminate the ugly #ifdef guys with Peter's method;

v3 <-- v2:
- fix build error for !CONFIG_SMP, reported by kernel test robot;

v2 <-- v1:
- replace cpumask_weight(cpu_rq(cpu)->rd->span) with dl_bw_cpus(cpu),
suggested by Juri;

Peng Liu (2):
sched/deadline: Optimize sched_dl_global_validate()
sched/deadline: Fix sched_dl_global_validate()

kernel/sched/deadline.c | 44 +++++++++++++++++++++++++++--------
kernel/sched/sched.h | 51 ++++++++++++++++++++++-------------------
kernel/sched/topology.c | 1 +
3 files changed, 63 insertions(+), 33 deletions(-)

--
2.20.1