diff options
author | Davidlohr Bueso <dave@stgolabs.net> | 2015-06-30 14:58:39 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-30 19:44:58 -0700 |
commit | ff35e5ef86fea1fa84eb7fdc939d0b1e3f1222bf (patch) | |
tree | dcbd89deb61c178925663ce5ad0457f232715a23 /ipc/sem.c | |
parent | c5c8975b2eb4eb7604e8ce4f762987f56d2a96a2 (diff) | |
download | linux-ff35e5ef86fea1fa84eb7fdc939d0b1e3f1222bf.tar.gz linux-ff35e5ef86fea1fa84eb7fdc939d0b1e3f1222bf.tar.bz2 linux-ff35e5ef86fea1fa84eb7fdc939d0b1e3f1222bf.zip |
ipc,msg: provide barrier pairings for lockless receive
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: Davidlohr Bueso <dbueso@suse.de>
Cc: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc/sem.c')
0 files changed, 0 insertions, 0 deletions