* Gautham R Shenoy <ego@xxxxxxxxxx> 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 _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm