[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    [from the cache]
    ©2003-2014 Jasper Spaans. hosted at Digital Ocean