projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'wip-traceinfo' of https://github.com/vears91/fio
[fio.git]
/
engines
/
rbd.c
diff --git
a/engines/rbd.c
b/engines/rbd.c
index c85645aeac3ec921e6b599071e951d45b10ceb7c..b319315fc73e1e10d43a177651187666e9e8e731 100644
(file)
--- a/
engines/rbd.c
+++ b/
engines/rbd.c
@@
-9,12
+9,16
@@
#include "../fio.h"
#include "../optgroup.h"
#include "../fio.h"
#include "../optgroup.h"
+#ifdef CONFIG_RBD_BLKIN
+#include <zipkin_c.h>
+#endif
struct fio_rbd_iou {
struct io_u *io_u;
rbd_completion_t completion;
int io_seen;
int io_complete;
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 {
};
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) {
}
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);
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) {
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);
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");
if (r < 0) {
log_err("rbd_aio_read failed.\n");