Re: [BUG] long freezes on thinkpad t60

From: Nick Piggin
Date: Wed Jun 27 2007 - 01:23:41 EST


Linus Torvalds wrote:

On Tue, 26 Jun 2007, Nick Piggin wrote:

Hmm, not that I have a strong opinion one way or the other, but I
don't know that they would encourage bad code. They are not going to
reduce latency under a locked section, but will improve determinism
in the contended case.


xadd really generally *is* slower than an add. One is often microcoded, the other is not.

Oh. I found xadd to be not hugely slower on my P4, but it was a little
bit.


But the real problem is that your "unlock" sequence is now about two orders of magnitude slower than it used to be. So it used to be that a spinlocked sequence only had a single synchronization point, now it has two. *That* is really bad, and I guarantee that it makes your spinlocks effectively twice as slow for the non-contended parts.

I don't know why my unlock sequence should be that much slower? Unlocked
mov vs unlocked add? Definitely in dumb micro-benchmark testing it wasn't
twice as slow (IIRC).


But your xadd thing might be worth looking at, just to see how expensive it is. As an _alternative_ to spinlocks, it's certainly viable.

(Side note: why make it a word? Word operations are slower on many x86 implementations, because they add yet another prefix. You only need a byte)

No real reason I guess. I'll change it.

--
SUSE Labs, Novell Inc.
-
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/