* Gautham R Shenoy <ego@xxxxxxxxxx> wrote: > > i'm wondering, what's the proper CPU-hotplug safe sequence here > > then? I'm picking a CPU number from cpu_online_map, and that CPU > > could go away while i'm still using it, right? What's saving us > > here? > > In this particular case, we are trying to see if any task on a > particular cpu has not been scheduled for a really long time. If we do > this check on a cpu which has gone offline, then a) If the tasks have > not been migrated on to another cpu yet, we will still perform that > check and yell if something has been holding any task for a > sufficiently long time. b) If the tasks have been migrated off, then > we have nothing to check. 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) Ingo _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm