lkml.org 
[lkml]   [2012]   [Feb]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: Memory corruption due to word sharing
    From
    Date
    On Wed, 2012-02-01 at 16:19 +0100, Jan Kara wrote:
    > I've raised the issue with our GCC guys and they said to me that: "C does
    > not provide such guarantee, nor can you reliably lock different
    > structure fields with different locks if they share naturally aligned
    > word-size memory regions. The C++11 memory model would guarantee this,
    > but that's not implemented nor do you build the kernel with a C++11
    > compiler."

    Indeed, it's memory models that specify which kind of behavior is
    allowed, and you need them for both the hardware and the programming
    language. C++11 and C11 have memory models, in contrast to previous
    versions of these standards.
    GCC 4.7 implements this memory model (C++11's and C11's models are very
    similar), even though there might be some rough edges in this
    implementation (bit fields, for example...).
    http://gcc.gnu.org/wiki/Atomic/GCCMM

    > So it seems what C/GCC promises does not quite match with what kernel
    > expects. I'm not really an expert in this area so I wanted to report it
    > here so that more knowledgeable people can decide how to solve the issue...

    There needs to be agreement about the memory model. The only time I
    spoke to a kernel person about memory models, I got the reply that the
    kernel would use its own model.

    What do the kernel folks think about the C11 memory model? If you can
    spot any issues in there, the GCC community would certainly like to
    know.


    Torvald



    \
     
     \ /
      Last update: 2012-02-01 18:11    [W:0.020 / U:1.016 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site