lkml.org 
[lkml]   [2006]   [Jul]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch] spinlocks: remove 'volatile'
    From
    Date
    On Thu, 2006-07-06 at 13:33 -0600, Chris Friesen wrote:
    > Linus Torvalds wrote:
    >
    > > On Thu, 6 Jul 2006, Mark Lord wrote:
    >
    > >> A volatile declaration may be used to describe an object corresponding
    > >> to a memory-mapped input/output port or an object accessed by an
    > >> aysnchronously interrupting function. Actions on objects so declared
    > >> shall not be "optimized out" by an implementation or reordered except
    > >> as permitted by the rules for evaluating expressions.
    > >
    > >
    > > Note that the "reordered" is totally pointless.
    > >
    > > The _hardware_ will re-order accesses. Which is the whole point.
    > > "volatile" is basically never sufficient in itself.
    >
    > The "reordered" thing really only matters on SMP machines, no? In which
    > case (for userspace) the locking mechanisms (mutexes, etc.) should do
    > The Right Thing to ensure visibility between cpus.
    >
    > The C standard requires the use of volatile for signal handlers and setjmp.
    >
    > For userspace at least the whole discussion of "barriers" is sort of
    > moot--there are no memory barriers defined in the C language, which
    > makes it kind of hard to write portable code that uses them.

    You're falling into RBJ's trap. I did not say *MEMORY BARRIER*. While
    for some uses of "volatile" that is the right substitute, for others it
    is *optimization barrier* which matters.


    -
    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: 2006-07-06 21:41    [W:0.035 / U:0.344 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site