lkml.org 
[lkml]   [2006]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch] spinlocks: remove 'volatile'
    Linus Torvalds wrote:
    > On Thu, 6 Jul 2006, Mark Lord wrote:
    >
    > >
    > > I'm still browsing a copy here, but so far have only really found this:
    > >
    > > 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.
    >
    > So the definition of "volatile" literally made sense three or four
    > decades
    > ago. It's not sensible any more.
    >

    It could be argued that gcc's implementation of volatile is wrong, and
    that gcc should add the appropriate serializing instructions before and
    after volatile accesses.

    Of course, that would make volatile even more suboptimal, but at least
    correct.

    --
    Do not meddle in the internals of kernels, for they are subtle and quick to panic.

    -
    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-08 10:45    [W:0.030 / U:3.332 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site