[PATCH 0/4] Allow CPU0 to be nohz full

From: Nicholas Piggin
Date: Thu Apr 04 2019 - 08:07:17 EST


I've been looking at ways to fix suspend breakage with CPU0 as a
nohz CPU. I started looking at various things like allowing CPU0
to take over do_timer again temporarily or allowing nohz full
to be stopped at runtime (that is quite a significant change for
little real benefit). The problem then was having the housekeeping
CPU go offline.

So I decided to try just allowing the freeze to occur on non-zero
CPU. This seems to be a lot simpler to get working, but I guess
some archs won't be able to deal with this? Would it be okay to
make it opt-in per arch?

Thanks,
Nick

Nicholas Piggin (4):
sched/core: allow the remote scheduler tick to be started on CPU0
kernel/cpu: Allow non-zero CPU to be primary for suspend / kexec
freeze
kernel/sched/isolation: require a present CPU in housekeeping mask
nohz_full: Allow the boot CPU to be full nohz

include/linux/cpu.h | 2 +-
kernel/cpu.c | 10 +++++++-
kernel/sched/core.c | 2 +-
kernel/sched/isolation.c | 18 ++++++++++----
kernel/time/tick-common.c | 50 +++++++++++++++++++++++++++++++++++----
kernel/time/tick-sched.c | 27 +++++++++++----------
6 files changed, 84 insertions(+), 25 deletions(-)

--
2.20.1