lkml.org 
[lkml]   [2018]   [May]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: LKMM litmus test for Roman Penyaev's rcu-rr
    On Tue, May 29, 2018 at 3:49 PM Alan Stern <stern@rowland.harvard.edu>
    wrote:

    > Putting this into herd would be extremely difficult, if not impossible,
    > because it involves analyzing code that was not executed.

    Does it?

    Can't we simplify the whole sequence as basically

    A
    if (!B)
    D

    for that "not B" case, and just think about that. IOW, let's ignore the
    whole "not executed" code.

    If B depends on A like you state, then that already implies that the write
    in D cannot come before the read of A.

    You fundamentally cannot do a conditional write before the read that the
    write condition depends on. So *any* write after a conditional is dependent
    on the read.

    So the existence of C - whether it has a barrier or not - is entirely
    immaterial at run-time.

    Now, the *compiler* can use the whole existence of that memory barrier in C
    to determine whether it can re-order the write to D or not, of course, but
    that's a separate issue, and then the whole "code that isn't executed" is
    not the issue any more. The compiler obviously sees all code, whether
    executing or not.

    Or am I being stupid and missing something entirely? That's possible.

    Linus

    \
     
     \ /
      Last update: 2018-05-29 23:17    [W:5.132 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site