* Gautham R Shenoy <[EMAIL PROTECTED]> wrote: > > say we've got 100 CPUs, so we've got 100 watchdog tasks running - > > one for each CPU. Checking for hung tasks is a global operation not > > a per-CPU operation (we iterate over the global tasklist), hence > > only one CPU should really be calling this function. That > > online-cpus logic achieves this by picking a single CPU. Perhaps it > > would be better to keep a hung_task_checker_cpu variable that is > > driven from a CPU-hotplug-down notifier? That way if a CPU is > > brought down we can update hung_task_checker_cpu to another, > > still-online CPU. (this would also be faster, because event-driven) > > Do you mean something like this?
yeah, thanks - queued it up. one question: > +static int check_cpu = -1; > case CPU_ONLINE: > case CPU_ONLINE_FROZEN: > + check_cpu = any_online_cpu(cpu_online_map); > wake_up_process(per_cpu(watchdog_task, hotcpu)); > break; do we bring the boot CPU online too - i.e. will check_cpu be properly initialized on UP too? Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/