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

From: Ingo Molnar
Date: Wed Sep 01 2010 - 01:31:29 EST



* Don Zickus <dzickus@xxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/