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

Reply via email to