![]() | |||||||||||||
Messages in this thread |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2007-06-27 05:25 [from the cache] ©2003-2008 | |||||||||||||