OSDN Git Service

nohz_full: Allow the boot CPU to be nohz_full
authorNicholas Piggin <npiggin@gmail.com>
Thu, 11 Apr 2019 03:34:48 +0000 (13:34 +1000)
committerIngo Molnar <mingo@kernel.org>
Fri, 3 May 2019 17:42:58 +0000 (19:42 +0200)
commit08ae95f4fd3b38b257f5dc7e6507e071c27ba0d5
tree9686097f1c9d4de58a0aac815acc25ea20b02c00
parent9219565aa89033a9cfdae788c1940473a1253d6c
nohz_full: Allow the boot CPU to be nohz_full

Allow the boot CPU/CPU0 to be nohz_full. Have the boot CPU take the
do_timer duty during boot until a housekeeping CPU can take over.

This is supported when CONFIG_PM_SLEEP_SMP is not configured, or when
it is configured and the arch allows suspend on non-zero CPUs.

nohz_full has been trialed at a large supercomputer site and found to
significantly reduce jitter. In order to deploy it in production, they
need CPU0 to be nohz_full because their job control system requires
the application CPUs to start from 0, and the housekeeping CPUs are
placed higher. An equivalent job scheduling that uses CPU0 for
housekeeping could be achieved by modifying their system, but it is
preferable if nohz_full can support their environment without
modification.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linuxppc-dev@lists.ozlabs.org
Link: https://lkml.kernel.org/r/20190411033448.20842-6-npiggin@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/time/tick-common.c
kernel/time/tick-sched.c