Messages in this thread | | | Date | Fri, 8 Aug 2008 23:31:05 +0200 | From | "Dmitry Adamushko" <> | Subject | Re: Regression in 2.6.27-rc1 for set_cpus_allowed_ptr |
| |
2008/8/8 Rafael J. Wysocki <rjw@sisk.pl>: > [Adding CCs] > > On Friday, 8 of August 2008, Langsdorf, Mark wrote: >> One of my co-workers noticed that the powernow-k8 >> driver no longer restarts when a CPU core is >> hot-disabled and then hot-enabled on AMD quad-core >> systems. >> >> The following comands work fine on 2.6.26 and fail >> on 2.6.27-rc1: >> >> echo 0 > /sys/devices/system/cpu/cpu3/online >> echo 1 > /sys/devices/system/cpu/cpu3/online >> find /sys -name cpufreq >> >> For 2.6.26, the find will return a cpufreq >> directory for each processor. In 2.6.27-rc1, >> the cpu3 directory is missing. >> >> After digging through the code, the following >> logic is failing when the core is hot-enabled >> at runtime. The code works during the boot >> sequence. >> >> cpumask_t = current->cpus_allowed; >> set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)); >> if (smp_processor_id() != cpu) >> return -ENODEV; >>
if it gets called from any of the cpu-hotplug handlers, it won't work now (x86-microcode is another victim).
Please give a try to the following patch: http://lkml.org/lkml/2008/7/30/171
does it help?
(the explanation is also available in this thread).
well, provided we may guarantee that load-balancing has been initialized (it's ok in our case) by the moment CPU_ONLINE gets called, this approach is not that bad perhaps... (and it looks like there is plenty of code that relies on set_cpus_allowed_ptr() being workable in cpu-hotplug-handlers).
Although, I personally don't like that much this particular use-case of set_cpus_allowed_ptr() (I posted patches for x86-microcode). btw., last time I briefly looked at various places, there seemed to be a few where
old_mask = p->cpus_allowed; set_cpus_allowed_ptr(p, target_cpu); // do something set_cpus_allowed_ptr(p, old_mask);
is used just wrongly. e.g. it may race with sched_setaffinity() and negate its effect.
>> -Mark Langdsorf >> Operating System Research Center >> AMD
-- Best regards, Dmitry Adamushko
| |