Messages in this thread | | | Date | Mon, 01 Jun 2009 10:22:47 +0800 | From | Lai Jiangshan <> | Subject | Re: [PATCH 1/2] cpuhotplug: use rw_semaphore for cpu_hotplug |
| |
Lai Jiangshan wrote: > > down_read()/up_read() can be nested within down_read()/up_read(), > so get_online_cpus() is recursive. > > And thanks to cpu_hotplug.active_writer, get_online_cpus()/put_online_cpus() > are allowd to be nested in cpu_hotplug_begin()/cpu_hotplug_done(). > So cpu_hotplug_begin() DO NOT blocks readers who are in CPU notifiers. >
Lai Jiangshan wrote: > > The current code drops mutex when get_online_cpus() succeeds, BUT it > increases the counter as what down_read() does. I think the current > code has the same deadlocks which the down_read()-implement has. > > Since the current code use mutex + counter to implement a "down_read()", > why not use the down_read() directly? > And down_read() can be checked by lockdep. >
Ouch, the kernel rw_semaphore is not Read-preference. All what I said is garbage. I did miss this, sorry for bothered you all.
Lai
| |