Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c5bfece2 authored by Frederic Weisbecker's avatar Frederic Weisbecker
Browse files

nohz: Switch from "extended nohz" to "full nohz" based naming



"Extended nohz" was used as a naming base for the full dynticks
API and Kconfig symbols. It reflects the fact the system tries
to stop the tick in more places than just idle.

But that "extended" name is a bit opaque and vague. Rename it to
"full" makes it clearer what the system tries to do under this
config: try to shutdown the tick anytime it can. The various
constraints that prevent that to happen shouldn't be considered
as fundamental properties of this feature but rather technical
issues that may be solved in the future.

Reported-by: default avatarIngo Molnar <mingo@kernel.org>
Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Geoff Levand <geoff@infradead.org>
Cc: Gilad Ben Yossef <gilad@benyossef.com>
Cc: Hakan Akkan <hakanakkan@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Kevin Hilman <khilman@linaro.org>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
parent 0644ca5c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1913,8 +1913,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
			Valid arguments: on, off
			Default: on

	nohz_extended=  [KNL,BOOT]
			In kernels built with CONFIG_NO_HZ_EXTENDED=y, set
	nohz_full=	[KNL,BOOT]
			In kernels built with CONFIG_NO_HZ_FULL=y, set
			the specified list of CPUs whose tick will be stopped
			whenever possible. You need to keep at least one online
			CPU outside the range to maintain the timekeeping.
+3 −3
Original line number Diff line number Diff line
@@ -157,10 +157,10 @@ static inline u64 get_cpu_idle_time_us(int cpu, u64 *unused) { return -1; }
static inline u64 get_cpu_iowait_time_us(int cpu, u64 *unused) { return -1; }
# endif /* !CONFIG_NO_HZ_COMMON */

#ifdef CONFIG_NO_HZ_EXTENDED
extern int tick_nohz_extended_cpu(int cpu);
#ifdef CONFIG_NO_HZ_FULL
extern int tick_nohz_full_cpu(int cpu);
#else
static inline int tick_nohz_extended_cpu(int cpu) { return 0; }
static inline int tick_nohz_full_cpu(int cpu) { return 0; }
#endif


+3 −3
Original line number Diff line number Diff line
@@ -617,9 +617,9 @@ static void wake_up_idle_cpu(int cpu)
		smp_send_reschedule(cpu);
}

static bool wake_up_extended_nohz_cpu(int cpu)
static bool wake_up_full_nohz_cpu(int cpu)
{
	if (tick_nohz_extended_cpu(cpu)) {
	if (tick_nohz_full_cpu(cpu)) {
		if (cpu != smp_processor_id() ||
		    tick_nohz_tick_stopped())
			smp_send_reschedule(cpu);
@@ -631,7 +631,7 @@ static bool wake_up_extended_nohz_cpu(int cpu)

void wake_up_nohz_cpu(int cpu)
{
	if (!wake_up_extended_nohz_cpu(cpu))
	if (!wake_up_full_nohz_cpu(cpu))
		wake_up_idle_cpu(cpu);
}

+2 −2
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ config NO_HZ_IDLE

	  Most of the time you want to say Y here.

config NO_HZ_EXTENDED
config NO_HZ_FULL
	bool "Full dynticks system (tickless single task)"
	# NO_HZ_COMMON dependency
	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
@@ -115,7 +115,7 @@ config NO_HZ_EXTENDED
	 task on the CPU. Chances for running tickless are maximized when
	 the task mostly runs in userspace and has few kernel activity.

	 You need to fill up the nohz_extended boot parameter with the
	 You need to fill up the nohz_full boot parameter with the
	 desired range of dynticks CPUs.

	 This is implemented at the expense of some overhead in user <-> kernel
+1 −1
Original line number Diff line number Diff line
@@ -573,7 +573,7 @@ void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
		bc->event_handler = tick_handle_oneshot_broadcast;

		/* Take the do_timer update */
		if (!tick_nohz_extended_cpu(cpu))
		if (!tick_nohz_full_cpu(cpu))
			tick_do_timer_cpu = cpu;

		/*
Loading