There are a couple of issues and corner cases which need further
considerations:
- rt & dl: Realtime and deadline scheduling require some additional
attention.
I think we need to address atleast rt, there would be some non percpu kworker threads which need to move out of parked cpus.
- ext: Probably affected as well. Needs some conceptional
thoughts first.
- raciness: Right now, there are no synchronization efforts. It needs
to be considered whether those might be necessary or if
it is alright that the parked-state of a CPU might change
during load-balancing.
Patches apply to tip:sched/core
The s390 patch serves as a simplified implementation example.
Gave it a try on powerpc with the debugfs file. it works for sched_normal tasks.
Tobias Huschle (3):
sched/fair: introduce new scheduler group type group_parked
sched/fair: adapt scheduler group weight and capacity for parked CPUs
s390/topology: Add initial implementation for selection of parked CPUs
arch/s390/include/asm/smp.h | 2 +
arch/s390/kernel/smp.c | 5 ++
include/linux/sched/topology.h | 19 ++++++
kernel/sched/core.c | 13 ++++-
kernel/sched/fair.c | 104 ++++++++++++++++++++++++++++-----
kernel/sched/syscalls.c | 3 +
6 files changed, 130 insertions(+), 16 deletions(-)