• Davidlohr Bueso's avatar
    ipc,msg: provide barrier pairings for lockless receive · ff35e5ef
    Davidlohr Bueso authored
    We currently use a full barrier on the sender side to to avoid receiver
    tasks disappearing on us while still performing on the sender side wakeup.
     We lack however, the proper CPU-CPU interactions pairing on the receiver
    side which busy-waits for the message.  Similarly, we do not need a full
    smp_mb, and can relax the semantics for the writer and reader sides of the
    message.  This is safe as we are only ordering loads and stores to r_msg.
    And in both smp_wmb and smp_rmb, there are no stores after the calls
    _anyway_.
    
    This obviously applies for pipelined_send and expunge_all, for EIRDM when
    destroying a queue.
    Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ff35e5ef
msg.c 24.1 KB