Messages in this thread Patch in this message | | | Date | Wed, 27 Jul 2016 10:31:31 -0500 (CDT) | From | Christoph Lameter <> | Subject | Re: clocksource_watchdog causing scheduling of timers every second (was [v13] support "task_isolation" mode) |
| |
Ok here is a possible patch that explicitly checks for housekeeping cpus:
Subject: clocksource: Do not schedule watchdog on isolated or NOHZ cpus
watchdog checks can only run on housekeeping capable cpus. Otherwise we will be generating noise that we would like to avoid on the isolated processors.
Signed-off-by: Christoph Lameter <cl@linux.com>
Index: linux/kernel/time/clocksource.c =================================================================== --- linux.orig/kernel/time/clocksource.c 2016-07-27 08:41:17.109862517 -0500 +++ linux/kernel/time/clocksource.c 2016-07-27 10:28:31.172447732 -0500 @@ -269,9 +269,12 @@ static void clocksource_watchdog(unsigne * Cycle through CPUs to check if the CPUs stay synchronized * to each other. */ - next_cpu = cpumask_next(raw_smp_processor_id(), cpu_online_mask); - if (next_cpu >= nr_cpu_ids) - next_cpu = cpumask_first(cpu_online_mask); + do { + next_cpu = cpumask_next(raw_smp_processor_id(), cpu_online_mask); + if (next_cpu >= nr_cpu_ids) + next_cpu = cpumask_first(cpu_online_mask); + } while (!is_housekeeping_cpu(next_cpu)); + watchdog_timer.expires += WATCHDOG_INTERVAL; add_timer_on(&watchdog_timer, next_cpu); out:
| |