lkml.org 
[lkml]   [2007]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 0/24] make atomic_read() behave consistently across all architectures
    On Thu, Aug 16, 2007 at 02:11:43PM +1000, Paul Mackerras wrote:
    >
    > The uses of atomic_read where one might want it to allow caching of
    > the result seem to me to fall into 3 categories:
    >
    > 1. Places that are buggy because of a race arising from the way it's
    > used.
    >
    > 2. Places where there is a race but it doesn't matter because we're
    > doing some clever trick.
    >
    > 3. Places where there is some locking in place that eliminates any
    > potential race.

    Agreed.

    > In case 1, adding volatile won't solve the race, of course, but it's
    > hard to argue that we shouldn't do something because it will slow down
    > buggy code. Case 2 is hopefully pretty rare and accompanied by large
    > comment blocks, and in those cases caching the result of atomic_read
    > explicitly in a local variable would probably make the code clearer.
    > And in case 3 there is no reason to use atomic_t at all; we might as
    > well just use an int.

    Since adding volatile doesn't help any of the 3 cases, and
    takes away optimisations from both 2 and 3, I wonder what
    is the point of the addition after all?

    Cheers,
    --
    Visit Openswan at http://www.openswan.org/
    Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
    Home Page: http://gondor.apana.org.au/~herbert/
    PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
    -
    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-08-16 07:57    [W:0.023 / U:29.172 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site