From 8c5fa7552ff7e2ed0e50e22c0e132f1d43be6359 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Sun, 13 Jan 2019 10:56:39 -0700 Subject: [PATCH] t/io_uring: add option for register_files Signed-off-by: Jens Axboe --- t/io_uring.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/t/io_uring.c b/t/io_uring.c index 706a1bef..b9712622 100644 --- a/t/io_uring.c +++ b/t/io_uring.c @@ -90,6 +90,7 @@ static volatile int finish; static int polled = 1; /* use IO polling */ static int fixedbufs = 1; /* use fixed user buffers */ +static int register_files = 1; /* use fixed files */ static int buffered = 0; /* use buffered IO, not O_DIRECT */ static int sq_thread_poll = 0; /* use kernel submission/poller thread */ static int sq_thread_cpu = -1; /* pin above thread to this CPU */ @@ -178,7 +179,13 @@ static void init_io(struct submitter *s, unsigned index) lrand48_r(&s->rand, &r); offset = (r % (f->max_blocks - 1)) * BS; - sqe->flags = IOSQE_FIXED_FILE; + if (register_files) { + sqe->flags = IOSQE_FIXED_FILE; + sqe->fd = f->fixed_fd; + } else { + sqe->flags = 0; + sqe->fd = f->real_fd; + } if (fixedbufs) { sqe->opcode = IORING_OP_READ_FIXED; sqe->addr = s->iovecs[index].iov_base; @@ -191,7 +198,6 @@ static void init_io(struct submitter *s, unsigned index) sqe->buf_index = 0; } sqe->ioprio = 0; - sqe->fd = f->fixed_fd; sqe->off = offset; sqe->user_data = (unsigned long) f; } @@ -424,10 +430,12 @@ static int setup_ring(struct submitter *s) } } - ret = io_uring_register_files(s); - if (ret < 0) { - perror("io_uring_register_files"); - return 1; + if (register_files) { + ret = io_uring_register_files(s); + if (ret < 0) { + perror("io_uring_register_files"); + return 1; + } } ptr = mmap(0, p.sq_off.array + p.sq_entries * sizeof(__u32), -- 2.25.1