[lkml]   [2005]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 1/12]: MUTEX: Implement mutexes

On Sat, 17 Dec 2005, Nicolas Pitre wrote:
> 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).

Ehh.. Have you seen any SMP arm machines with the old ones?

Yes, there are some shared-memory things out there. I thought they were
basically never used in SMP configs, but just with two independent CPU's
that just happened to share (at least part of) memory.

In fact, I thought it was more common that you had one ARM core, and then
a specialized comm chip or something?

As far as I can tell from the Linux arm assembly (which I admittedly don't
read very well at all), the non-ARMv6 semaphore code just disables
interrupts and does the semaphore without any atomic instructions at all.
Which is fine for UP (in fact, I'm not even convinced you need to disable
interrupts, since any interrupts - even if they do a "trylock+up" - should
always leave the counter in the same state it was before).

So afaik, Linux simply doesn't support pre-ARMv6 in SMP configurations,
and never has (and I'd assume never will).

Or am I missing something?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2009-11-18 23:46    [W:0.073 / U:1.136 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site