Re: clocksource_watchdog causing scheduling of timers every second (was [v13] support "task_isolation" mode)

From: Chris Metcalf
Date: Thu Jul 28 2016 - 04:11:50 EST


On 7/27/2016 9:55 AM, Christoph Lameter wrote:
The critical piece of code is this:

/*
* 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);
watchdog_timer.expires += WATCHDOG_INTERVAL;
add_timer_on(&watchdog_timer, next_cpu);


Should we just cycle through the cpus that are not isolated? Otherwise we
need to have some means to check the clocksources for accuracy remotely
(probably impossible for TSC etc).

That sounds like the right idea - use the housekeeping cpu mask instead of the
cpu online mask. Should be a straightforward patch; do you want to do that
and test it in your configuration, and I'll include it in the next spin of the
patch series?

Thanks for your testing!

--
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com