Messages in this thread | | | Date | Fri, 7 Dec 2012 21:59:35 +0100 | From | Oleg Nesterov <> | Subject | Re: [RFC PATCH v2 01/10] CPU hotplug: Provide APIs for "light" atomic readers to prevent CPU offline |
| |
On 12/08, Srivatsa S. Bhat wrote: > > On 12/08/2012 01:26 AM, Oleg Nesterov wrote: > > Not sure I undestand... I simply meant that, say, > > get_online_cpus_atomic() under task->pi_lock can obviously deadlock > > with take_cpu_down() which can want the same task->pi_lock after > > disable_atomic_reader(). > > Right, I mistook your point for something else (i.e., ability for > the writer to do get_online_cpus_atomic() safely, which I fixed in > v3). > > So, your point above is very valid. And yes, we can't do much > about it, we'll just have to teach lockdep to catch such usages.
Afaics, this is simple. Just add the "fake" lockdep_map as, say, lglock does. Except, you need rwlock_acquire_read(map, 0, 1, IP) because this lock is recursive.
But. There is another email from you about the possible deadlock. I'll write the reply in a minute...
Oleg.
| |