lkml.org 
[lkml]   [2008]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] clarify usage expectations for cnt32_to_63()
    On Sat, 8 Nov 2008, Nicolas Pitre wrote:

    > On Sat, 8 Nov 2008, Mathieu Desnoyers wrote:
    >
    > > I *think* that smp_rmb() would be enough, supposing the access to memory
    > > is done in program order wrt local interrupts in UP. This is basically
    > > Steven's question, which has not received any clear answer yet. I'd like
    > > to know what others think about it.
    >
    > In the mean time a pure rmb() is the safest thing to do now. Once we
    > can convince ourselves that out-of-order reads are always rolled back
    > upon the arrival of an interrupt then this could be relaxed.

    After thinking about it some more, then a smp_rmb() must be correct.

    On UP, that would be completely insane if an exception didn't resume
    the whole sequence since the CPU cannot presume anything when returning
    from it.

    If the instruction flows says:

    READ A
    READ B

    And speculative execution makes for B to be read before A, and you get
    an interrupt after B was read but before A was read, then the program
    counter may only point at READ A upon returning from the exception and B
    will be read again. Doing otherwise would require the CPU to remember
    any reordering that it might have performed upon every exceptions which
    is completely insane.

    So smp_rmb() it shall be.


    Nicolas


    \
     
     \ /
      Last update: 2008-11-09 06:09    [W:0.033 / U:62.116 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site