diff options
author | Bart Van Assche <bvanassche@acm.org> | 2019-07-01 14:42:32 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-07-02 07:33:52 -0600 |
commit | ecefd7958eb32602df07f12e9808598b2c2de84b (patch) | |
tree | 789bcf30a838d99b02237568dae0b215cc13f944 /man | |
parent | bbb30995a0b4c9e3489aa5d66d1807425734b791 (diff) | |
download | liburing-ecefd7958eb32602df07f12e9808598b2c2de84b.tar.gz liburing-ecefd7958eb32602df07f12e9808598b2c2de84b.tar.bz2 |
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.2 | 6 |
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 |