On Thu, Dec 19, 2013 at 07:13:09PM -0800, Linus Torvalds wrote: > I think we might have to order the two reads with an smp_rmb - making > sure that we check the lock state first - but I think it should be > otherwise pretty solid.
> Yeah, I said "spin_contended()" myself initially, but it needs to be > "spin_is_locked()". It's hopefully unlikely to ever actually be > contended (which in ticket lock terms is "head is _more_ than one away > from the tail"). Right, which would give us something like: LOCK m is_locked m list_{add,del} RMB UNLOCK m list_empty Where the rmb matches the release/unlock. This guarantees that when we see the unlock we must also see the list modification. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/