[lkml]   [2006]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [patch] spinlocks: remove 'volatile'
    On Sat, 2006-07-08 at 05:45 -0400, Joe Korty wrote:
    > On Fri, Jul 07, 2006 at 11:54:10PM -0400, Albert Cahalan wrote:
    > > That's all theoretical though. Today, gcc's volatile does
    > > not follow the C standard on modern hardware. Bummer.
    > > It'd be low-performance anyway though.
    > But gcc would follow the standard if it emitted a 'lock'
    > insn on every volatile reference. It should at least
    > have an option to do that.

    Wrong. The only thing which is guaranteed by "volatile" according to the
    standard is that the compiler does not optimize and cache seemingly
    static values, which is just sufficient for the usual C for dummies

    while(stop == 0);

    volatile works fine on trivial microcontrollers and for the basic C
    course lesson, but there is no way for the compiler to decide which of
    the 'lock' mechanisms should be used in complex situations.

    In low level system programming there is no fscking way for the compiler
    to figure out if this is in context of a peripheral bus, cross CPU
    memory or whatever. All those things have hardware dependend semantics
    and the only way to get them straight is to enforce the correct handling
    with handcrafted assembler code.


    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-07-08 12:23    [W:0.020 / U:54.812 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site