From 1034fc2f41aaf32f782a9362178f9a236ac5a50a Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Tue, 26 Mar 2013 15:04:50 +0100 Subject: [PATCH] nohz: Print final full dynticks CPUs range on boot Given that we apply a few restrictions on the full dynticks CPUs range (keep an online timekeeper oustide the range, then in the future have the range be an RCU nocb CPUs subset), let's print the final resulting range of full dynticks CPUs to the user so that he knows what's really going to run. Signed-off-by: Frederic Weisbecker Cc: Andrew Morton Cc: Chris Metcalf Cc: Christoph Lameter Cc: Geoff Levand Cc: Gilad Ben Yossef Cc: Hakan Akkan Cc: Ingo Molnar Cc: Kevin Hilman Cc: Li Zhong Cc: Namhyung Kim Cc: Paul E. McKenney Cc: Paul Gortmaker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner --- kernel/time/tick-sched.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index ccfc2086cd4b..e057d338daa4 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -186,6 +186,13 @@ static int __cpuinit tick_nohz_cpu_down_callback(struct notifier_block *nfb, return NOTIFY_OK; } +/* + * Worst case string length in chunks of CPU range seems 2 steps + * separations: 0,2,4,6,... + * This is NR_CPUS + sizeof('\0') + */ +static char __initdata nohz_ext_buf[NR_CPUS + 1]; + static int __init init_tick_nohz_extended(void) { cpumask_var_t online_nohz; @@ -225,6 +232,9 @@ static int __init init_tick_nohz_extended(void) put_online_cpus(); free_cpumask_var(online_nohz); + cpulist_scnprintf(nohz_ext_buf, sizeof(nohz_ext_buf), nohz_extended_mask); + pr_info("NO_HZ: Full dynticks CPUs: %s.\n", nohz_ext_buf); + return 0; } core_initcall(init_tick_nohz_extended); -- 2.39.5