Messages in this thread | | | Date | Thu, 30 Nov 2006 12:53:27 +0100 | From | Ingo Molnar <> | Subject | Re: CPUFREQ-CPUHOTPLUG: Possible circular locking dependency |
| |
* Gautham R Shenoy <ego@in.ibm.com> wrote:
> This is what is currently being done by cpufreq:
ok!
> a) get_some_cpu_hotplug_protection() [use either some global mechanism > or a persubsystem mutex]
this bit is wrong i think. Any reason why it's not a per-CPU (but otherwise global) array of mutexes that controls CPU hotplug - as per my previous mail?
that would flatten the whole locking. Only one kind of lock taken, recursive and scalable.
Then the mechanism that changes CPU frequency should take all these hotplug locks on all (online) CPUs, and then first stop all processing on all CPUs, and then do the frequency change, atomically. This is with interrupts disabled everywhere /first/, and /without any additional locking/. That would prevent any sort of interaction from other CPUs - they'd all be sitting still with interrupts disabled.
Ingo - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |