On Sat, 17 Dec 2005, Linus Torvalds wrote: > Of the other architectures you list, only ARM is really important. And no, > arm doesn't do swap. It does LL/SC (except they call it "ldrex/strex", > which I assume stands for "load/store with reservation and X just because > X is cool. Yeah, we're cool" (*)).
Well, if you really want to be honest, you have to consider that the ldrex/strex instructions are available only on ARM architecture level 6 and above, or in other words with only about 1% of all ARM deployments out there. The other 99% of actual ARM processors in the field only have the atomic swap (swp) instruction which is insufficient for implementing a counting semaphore (we therefore have to disable interrupts, do the semaphore update and enable interrupts again which is much slower than a swp-based mutex). Nicolas
