Messages in this thread | | | Date | Fri, 11 Jul 2008 16:19:54 -0700 | From | Max Krasnyansky <> | Subject | Re: current linux-2.6.git: cpusets completely broken |
| |
Dmitry Adamushko wrote: > Does the patch below help? > > (non-white-space-damaged version is attached) > > diff --git a/kernel/cpuset.c b/kernel/cpuset.c > index 9fceb97..ae61dc9 100644 > --- a/kernel/cpuset.c > +++ b/kernel/cpuset.c > @@ -1912,11 +1912,21 @@ static void common_cpu_mem_hotplug_unplug(void) > static int cpuset_handle_cpuhp(struct notifier_block *unused_nb, > unsigned long phase, void *unused_cpu) > { > - if (phase == CPU_DYING || phase == CPU_DYING_FROZEN) > + swicth (phase) { > + case CPU_UP_CANCELED: > + case CPU_UP_CANCELED_FROZEN: > + case CPU_DOWN_FAILED: > + case CPU_DOWN_FAILED_FROZEN: > + case CPU_ONLINE: > + case CPU_ONLINE_FROZEN: > + case CPU_DEAD: > + case CPU_DEAD_FROZEN: > + common_cpu_mem_hotplug_unplug(); > + break; > + default: > return NOTIFY_DONE;
I was always wondering why we're running that logic for every hotplug event. For example, do we care for UP_CANCELED* and DOWN_FAILED* ? Presumably nothing should've changed, no ? btw I'm just going by the name of the event. So UP_CANCELED to me sounds like CPU never got to the ONLINE stage and cpuset should not really care.
Max
| |