From ad4e92984ec2d92b18abede6cfbf8ef7f353d77a Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Fri, 26 Jul 2019 09:41:06 -0600 Subject: [PATCH] engines/libaio: remove remnants of abandoned aio features Before we had io_uring, aio grew support for polled IO and setup through a new system call. As this never made it into Linux and was abandoned in favor of io_uring, kill it off. Signed-off-by: Jens Axboe --- engines/libaio.c | 60 +++--------------------------------------------- 1 file changed, 3 insertions(+), 57 deletions(-) diff --git a/engines/libaio.c b/engines/libaio.c index cc6ca66b..cd5b89f9 100644 --- a/engines/libaio.c +++ b/engines/libaio.c @@ -16,14 +16,6 @@ #include "../optgroup.h" #include "../lib/memalign.h" -#ifndef IOCB_FLAG_HIPRI -#define IOCB_FLAG_HIPRI (1 << 2) -#endif - -#ifndef IOCTX_FLAG_IOPOLL -#define IOCTX_FLAG_IOPOLL (1 << 0) -#endif - static int fio_libaio_commit(struct thread_data *td); struct libaio_data { @@ -65,15 +57,6 @@ static struct fio_option options[] = { .category = FIO_OPT_C_ENGINE, .group = FIO_OPT_G_LIBAIO, }, - { - .name = "hipri", - .lname = "High Priority", - .type = FIO_OPT_STR_SET, - .off1 = offsetof(struct libaio_options, hipri), - .help = "Use polled IO completions", - .category = FIO_OPT_C_ENGINE, - .group = FIO_OPT_G_LIBAIO, - }, { .name = NULL, }, @@ -91,19 +74,12 @@ static inline void ring_inc(struct libaio_data *ld, unsigned int *val, static int fio_libaio_prep(struct thread_data fio_unused *td, struct io_u *io_u) { struct fio_file *f = io_u->file; - struct libaio_options *o = td->eo; - struct iocb *iocb; - - iocb = &io_u->iocb; + struct iocb *iocb = &io_u->iocb; if (io_u->ddir == DDIR_READ) { io_prep_pread(iocb, f->fd, io_u->xfer_buf, io_u->xfer_buflen, io_u->offset); - if (o->hipri) - iocb->u.c.flags |= IOCB_FLAG_HIPRI; } else if (io_u->ddir == DDIR_WRITE) { io_prep_pwrite(iocb, f->fd, io_u->xfer_buf, io_u->xfer_buflen, io_u->offset); - if (o->hipri) - iocb->u.c.flags |= IOCB_FLAG_HIPRI; } else if (ddir_sync(io_u->ddir)) io_prep_fsync(iocb, f->fd); @@ -366,42 +342,12 @@ static void fio_libaio_cleanup(struct thread_data *td) } } -static int fio_libaio_old_queue_init(struct libaio_data *ld, unsigned int depth, - bool hipri) -{ - if (hipri) { - log_err("fio: polled aio not available on your platform\n"); - return 1; - } - - return io_queue_init(depth, &ld->aio_ctx); -} - -static int fio_libaio_queue_init(struct libaio_data *ld, unsigned int depth, - bool hipri) -{ -#ifdef __NR_sys_io_setup2 - int ret, flags = 0; - - if (hipri) - flags |= IOCTX_FLAG_IOPOLL; - - ret = syscall(__NR_sys_io_setup2, depth, flags, NULL, NULL, - &ld->aio_ctx); - if (!ret) - return 0; - /* fall through to old syscall */ -#endif - return fio_libaio_old_queue_init(ld, depth, hipri); -} - static int fio_libaio_post_init(struct thread_data *td) { struct libaio_data *ld = td->io_ops_data; - struct libaio_options *o = td->eo; - int err = 0; + int err; - err = fio_libaio_queue_init(ld, td->o.iodepth, o->hipri); + err = io_queue_init(td->o.iodepth, &ld->aio_ctx); if (err) { td_verror(td, -err, "io_queue_init"); return 1; -- 2.25.1