From: Jens Axboe Date: Wed, 16 Jan 2019 04:43:52 +0000 (-0700) Subject: t/io_uring: use fio provided memory barriers X-Git-Tag: fio-3.13~15 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=679d8352e50eba3d8f492b09bbe72abb26a0401a;p=fio.git t/io_uring: use fio provided memory barriers Signed-off-by: Jens Axboe --- diff --git a/t/io_uring.c b/t/io_uring.c index 0545a1dd..ef5d52d1 100644 --- a/t/io_uring.c +++ b/t/io_uring.c @@ -24,8 +24,6 @@ #include "../lib/types.h" #include "../os/linux/io_uring.h" -#define barrier() __asm__ __volatile__("": : :"memory") - #define min(a, b) ((a < b) ? (a) : (b)) struct io_sq_ring { @@ -211,7 +209,7 @@ static int prep_more_ios(struct submitter *s, int max_ios) next_tail = tail = *ring->tail; do { next_tail++; - barrier(); + read_barrier(); if (next_tail == *ring->head) break; @@ -224,9 +222,9 @@ static int prep_more_ios(struct submitter *s, int max_ios) if (*ring->tail != tail) { /* order tail store with writes to sqes above */ - barrier(); + write_barrier(); *ring->tail = tail; - barrier(); + write_barrier(); } return prepped; } @@ -263,7 +261,7 @@ static int reap_events(struct submitter *s) do { struct file *f; - barrier(); + read_barrier(); if (head == *ring->tail) break; cqe = &ring->cqes[head & cq_ring_mask]; @@ -285,7 +283,7 @@ static int reap_events(struct submitter *s) s->inflight -= reaped; *ring->head = head; - barrier(); + write_barrier(); return reaped; }