[lkml]   [2006]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] WorkStruct: Implement generic UP cmpxchg() where an
    > Even if ARM is able to handle any arbitrary C code between the
    > "load locked" and store conditional API, other architectures can not
    > by definition.

    Maybe so, but I think you and Linus are missing the middle ground.

    While I agree that LL/SC can't be part of the kernel API for people to
    get arbitrarily clever with in the device driver du jour, they are *very*
    nice abstractions for shrinking the arch-specific code size.

    The semantics are widely enough shared that it's quite possible in
    practice to write a good set of atomic primitives in terms of LL/SC
    and then let most architectures define LL/SC and simply #include the
    generic atomic op implementations.

    If there's a restriction that would pessimize the generic implementation,
    that function can be implemented specially for that arch.

    Then implementing things like backoff on contention can involve writing
    a whole lot less duplicated code.

    Just like you can write a set of helpers for, say, CPUs with physically
    addressed caches, even though the "real" API has to be able to handle the
    virtually addressed ones, you can write a nice set of helpers for machines
    with sane LL/SC.
    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: 2006-12-11 03:33    [W:0.018 / U:74.036 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site