lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 1 Dec 2006 09:55:02 +0100 From: Ingo Molnar <mingo@...e.hu> To: Gautham R Shenoy <ego@...ibm.com> Cc: Andrew Morton <akpm@...l.org>, linux-kernel@...r.kernel.org, torvalds@...l.org, davej@...hat.com, dipankar@...ibm.com, vatsa@...ibm.com Subject: Re: CPUFREQ-CPUHOTPLUG: Possible circular locking dependency * Gautham R Shenoy <ego@...ibm.com> wrote: > Consider a case where we have three locks A, B and C. > We have very clear locking rule inside the kernel that lock A *should* > be acquired before acquiring either lock B or lock C. > > At runtime lockdep detects the two dependency chains, > A --> B --> C > > and > > A --> C --> B. > > Does lockdep issue a circular dependency warning for this ? > It's quite clear from the locking rule that we cannot have a > circular deadlock, since A acts as a mutex for B->C / C->B callpath. > > Just curious :-) [ Well, I might encounter such a scenario in an attempt > to make cpufreq cpu-hotplug safe! ] yes, lockdep will warn about this. Will you /ever/ have a B->C or C->B dependency without A being taken first? if not then my suggestion would be to just lump 'B' and 'C' into a single lock - or to get rid of them altogether. There's little reason to keep them separate. /If/ you want to keep them separate (because they protect different data structures) then it's the cleanest design to have an ordering between them. The taking of 'A' might go away anytime - such a construct is really, really fragile and is only asking for trouble. Ingo - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists