X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Frbd.c;h=b319315fc73e1e10d43a177651187666e9e8e731;hp=c85645aeac3ec921e6b599071e951d45b10ceb7c;hb=c1f9846dca7df2bfd37f0279092a5887913bf342;hpb=9bbefaa2056e8551805bbf8915adbc81cedd68e8 diff --git a/engines/rbd.c b/engines/rbd.c index c85645ae..b319315f 100644 --- a/engines/rbd.c +++ b/engines/rbd.c @@ -9,12 +9,16 @@ #include "../fio.h" #include "../optgroup.h" +#ifdef CONFIG_RBD_BLKIN +#include +#endif struct fio_rbd_iou { struct io_u *io_u; rbd_completion_t completion; int io_seen; int io_complete; + struct blkin_trace_info info; }; struct rbd_data { @@ -391,16 +395,28 @@ static int fio_rbd_queue(struct thread_data *td, struct io_u *io_u) } if (io_u->ddir == DDIR_WRITE) { +#ifdef CONFIG_RBD_BLKIN + blkin_init_trace_info(&fri->info); + r = rbd_aio_write_traced(rbd->image, io_u->offset, io_u->xfer_buflen, + io_u->xfer_buf, fri->completion, &fri->info); +#else r = rbd_aio_write(rbd->image, io_u->offset, io_u->xfer_buflen, io_u->xfer_buf, fri->completion); +#endif if (r < 0) { log_err("rbd_aio_write failed.\n"); goto failed_comp; } } else if (io_u->ddir == DDIR_READ) { +#ifdef CONFIG_RBD_BLKIN + blkin_init_trace_info(&fri->info); + r = rbd_aio_read_traced(rbd->image, io_u->offset, io_u->xfer_buflen, + io_u->xfer_buf, fri->completion, &fri->info); +#else r = rbd_aio_read(rbd->image, io_u->offset, io_u->xfer_buflen, io_u->xfer_buf, fri->completion); +#endif if (r < 0) { log_err("rbd_aio_read failed.\n");