On Tue, Mar 5, 2013 at 7:54 AM, Lai Jiangshan [off-list ref] wrote:
On 03/03/13 01:06, Oleg Nesterov wrote:
quoted
On 03/02, Michel Lespinasse wrote:
quoted
My version would be slower if it needs to take the
slow path in a reentrant way, but I'm not sure it matters either :)
I'd say, this doesn't matter at all, simply because this can only happen
if we race with the active writer.
It can also happen when interrupted. (still very rarely)
arch_spin_trylock()
------->interrupted,
__this_cpu_read() returns 0.
arch_spin_trylock() fails
slowpath, any nested will be slowpath too.
...
..._read_unlock()
<-------interrupt
__this_cpu_inc()
....
Yes (and I think this is actually the most likely way for it to happen).
We do need this to work correctly, but I don't expect we need it to be fast.
(could be wrong, this is only my intuition)
--
Michel "Walken" Lespinasse
A program is never fully debugged until the last user dies.