Skip to contentSkip to conversation

Recent changes (master)

PATCH Jens Axboe 1 participant 1 message Jan 16, 2019

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

The following changes since commit 93d1811ce6a510d36d61381840283d1ae9933b37:

t/io_uring: pick next file if we're over the limti (2019-01-15 05:57:54 -0700)

are available in the Git repository at:

git://git.kernel.dk/fio.git master

for you to fetch changes up to 2b9415ddc260726c3ea9ae3436826f9181811143:

engines/io_uring: ensure sqe stores are ordered SQ ring tail update (2019-01-15 22:06:05 -0700)

----------------------------------------------------------------
Jens Axboe (7):
t/io_uring: print file depths
t/io_uring: wait if we're at queue limit
t/io_uring: terminate buf[] file depth string t/io_uring: fixes
x86-64: correct read/write barriers
t/io_uring: use fio provided memory barriers engines/io_uring: ensure sqe stores are ordered SQ ring tail update

 arch/arch-x86_64.h |  4 ++--
 engines/io_uring.c |  2 ++
 t/io_uring.c       | 51 ++++++++++++++++++++++++++++++++++++---------------
 3 files changed, 40 insertions(+), 17 deletions(-)

---

Diff of recent changes:

arch/arch-x86_64.h +2 -2
index 665c6b04..0cd21b8f 100644
@@ -27,8 +27,8 @@ static inline void do_cpuid(unsigned int *eax, unsigned int *ebx,
 #define	FIO_HUGE_PAGE		2097152
 
 #define nop		__asm__ __volatile__("rep;nop": : :"memory")
-#define read_barrier()	__asm__ __volatile__("lfence":::"memory")
-#define write_barrier()	__asm__ __volatile__("sfence":::"memory")
+#define read_barrier()	__asm__ __volatile__("":::"memory")
+#define write_barrier()	__asm__ __volatile__("":::"memory")
 
 static inline unsigned long arch_ffz(unsigned long bitmask)
 {
engines/io_uring.c +2 -0
index 56af8d71..8c5d9deb 100644
@@ -289,6 +289,8 @@ static enum fio_q_status fio_ioring_queue(struct thread_data *td,
 	if (next_tail == *ring->head)
 		return FIO_Q_BUSY;
 
+	/* ensure sqe stores are ordered with tail update */
+	write_barrier();
 	ring->array[tail & ld->sq_ring_mask] = io_u->index;
 	*ring->tail = next_tail;
 	write_barrier();
t/io_uring.c +36 -15

136 lines not on this page · raw message