Re: [PATCH 1/2] cpuhotplug: use rw_semaphore for cpu_hotplug

Lai Jiangshan
2009-06-01T02:26:21Z

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