Re: [PATCH v3 4/4] futex: Avoid taking hb lock if nothing to wakeup

From: Peter Zijlstra
Date: Fri Dec 20 2013 - 03:54:56 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/