From 679d8352e50eba3d8f492b09bbe72abb26a0401a Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 15 Jan 2019 21:43:52 -0700 Subject: [PATCH] t/io_uring: use fio provided memory barriers Signed-off-by: Jens Axboe --- t/io_uring.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) 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; } -- 2.25.1