summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2019-07-01 14:42:32 -0700
committerJens Axboe <axboe@kernel.dk>2019-07-02 07:33:52 -0600
commitecefd7958eb32602df07f12e9808598b2c2de84b (patch)
tree789bcf30a838d99b02237568dae0b215cc13f944 /man
parentbbb30995a0b4c9e3489aa5d66d1807425734b791 (diff)
Fix the use of memory barriers
Introduce the smp_load_acquire() and smp_store_release() macros. Fix synchronization in io_uring_cq_advance() and __io_uring_get_cqe(). Remove a superfluous local variable, if-test and write barrier from __io_uring_submit(). Remove a superfluous barrier from test/io_uring_enter.c. Cc: Stefan Hajnoczi <stefanha@redhat.com> Cc: Roman Penyaev <rpenyaev@suse.de> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'man')
-rw-r--r--man/io_uring_setup.26
1 files changed, 5 insertions, 1 deletions
diff --git a/man/io_uring_setup.2 b/man/io_uring_setup.2
index ebaee2d..9ab0143 100644
--- a/man/io_uring_setup.2
+++ b/man/io_uring_setup.2
@@ -97,7 +97,11 @@ call with the following code sequence:
.in +4n
.EX
-read_barrier();
+/*
+ * Ensure that the wakeup flag is read after the tail pointer has been
+ * written.
+ */
+smp_mb();
if (*sq_ring->flags & IORING_SQ_NEED_WAKEUP)
io_uring_enter(fd, 0, 0, IORING_ENTER_SQ_WAKEUP);
.EE