Re: [PATCH 1/3] [lockup detector] sync touch_*_watchdog back to old semantics

Ingo Molnar
2010-09-01T05:31:08Z

* Don Zickus <dzickus@redhat.com> wrote:

> void touch_nmi_watchdog(void)
> {
> - __get_cpu_var(watchdog_nmi_touch) = true;
> + if (watchdog_enabled) {
> + unsigned cpu;
> +
> + for_each_present_cpu(cpu) {
> + if (per_cpu(watchdog_nmi_touch, cpu) != true)
> + per_cpu(watchdog_nmi_touch, cpu) = true;
> + }

Hm, this is going to be a scalability nightmare with lots of CPUs. Not
only do we have a nr_cpus loop, but we touch per-cpu areas of _other_
CPUs - a big scalability nono.

Why do we need to do this? We never needed to touch other CPU's NMI
lockup accounting data areas - why has this changed? The changelog does
not explain this.

Thanks,

Ingo