On Tue, Mar 5, 2013 at 7:54 AM, Lai Jiangshan <laijs@xxxxxxxxxxxxxx> wrote: > On 03/03/13 01:06, Oleg Nesterov wrote: >> On 03/02, Michel Lespinasse wrote: >>> >>> 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. -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html