Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation

From: Linus Torvalds
Date: Sat Dec 17 2005 - 02:40:29 EST




On Fri, 16 Dec 2005, David S. Miller wrote:
>
> If there is some test guarding the CAS, yes.
>
> But if there isn't, for things like atomic increment and
> decrement, where the CAS is unconditional, you'll always
> eat the two bus transactions without the prefetch for write.

Side note: there may be hardware cache protocol _scheduling_ reasons why
some particular hw platform might prefer to go through the "Shared" state
in their cache protocol.

For example, you might have hardware that otherwise ends up being very
unfair, where the two-stage lock aquire might actually allow another node
to come in at all. Fairness and balance often comes at a cost, both in hw
and in sw.

Arguably such hardware sounds pretty broken, but the point is that these
things can certainly depend on the platform around the CPU as well as on
what the CPU itself does.

I'm not saying that that is necessarily what Jesse was arguing about, but
lock contention behaviour can be "interesting".

Linus
-
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/