The following changes since commit 5b8f19b7afe0cabc002c453a1a4abd7a494880bb: Fix 'min' latency times being 0 with ramp_time (2018-12-14 14:36:52 -0700) are available in the Git repository at: git://git.kernel.dk/fio.git master for you to fetch changes up to d63a472d4b213533236ae9aab9cf9e0ec2854c31: engines/aio-ring: initialization error handling (2018-12-19 12:55:10 -0700) ---------------------------------------------------------------- Jens Axboe (2): engines/aio-ring: cleanup read/write prep engines/aio-ring: initialization error handling engines/aioring.c | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) --- Diff of recent changes: diff --git a/engines/aioring.c b/engines/aioring.c index 925b8862..59551f9c 100644 --- a/engines/aioring.c +++ b/engines/aioring.c @@ -197,26 +197,20 @@ static int fio_aioring_prep(struct thread_data *td, struct io_u *io_u) iocb = &ld->iocbs[io_u->index]; - if (io_u->ddir == DDIR_READ) { - if (o->fixedbufs) { - iocb->aio_fildes = f->fd; + if (io_u->ddir == DDIR_READ || io_u->ddir == DDIR_WRITE) { + if (io_u->ddir == DDIR_READ) iocb->aio_lio_opcode = IO_CMD_PREAD; - iocb->u.c.offset = io_u->offset; - } else { - 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) { - if (o->fixedbufs) { - iocb->aio_fildes = f->fd; + else iocb->aio_lio_opcode = IO_CMD_PWRITE; - iocb->u.c.offset = io_u->offset; - } else { - 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; - } + iocb->aio_reqprio = 0; + iocb->aio_fildes = f->fd; + iocb->u.c.buf = io_u->xfer_buf; + iocb->u.c.nbytes = io_u->xfer_buflen; + iocb->u.c.offset = io_u->offset; + if (o->hipri) + iocb->u.c.flags |= IOCB_FLAG_HIPRI; + else + iocb->u.c.flags = 0; } else if (ddir_sync(io_u->ddir)) io_prep_fsync(iocb, f->fd); @@ -521,13 +515,15 @@ static int fio_aioring_post_init(struct thread_data *td) } err = fio_aioring_queue_init(td); + + /* Adjust depth back again */ + td->o.iodepth--; + if (err) { - td_verror(td, -err, "io_queue_init"); + td_verror(td, errno, "io_queue_init"); return 1; } - /* Adjust depth back again */ - td->o.iodepth--; return 0; }