Make experimental_verify=1 handle all cases properly
- Don't track written bytes, just replay the workload by resetting
all the random generators. This should work for any mixture of IO.
- Handle trims for verify.
- Ensure that rwmix is replayed properly for verify.
- Fixup logging for replay.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/ioengine.h b/ioengine.h
index 6809501..d5a0dc9 100644
--- a/ioengine.h
+++ b/ioengine.h
@@ -8,7 +8,7 @@
#include <guasi.h>
#endif
-#define FIO_IOOPS_VERSION 14
+#define FIO_IOOPS_VERSION 15
enum {
IO_U_F_FREE = 1 << 0,
@@ -57,6 +57,12 @@
enum fio_ddir ddir;
/*
+ * For replay workloads, we may want to account as a different
+ * IO type than what is being submitted.
+ */
+ enum fio_ddir acct_ddir;
+
+ /*
* Allocated/set buffer and length
*/
unsigned long buflen;
@@ -210,4 +216,12 @@
#define dprint_io_u(io_u, p)
#endif
+static inline enum fio_ddir acct_ddir(struct io_u *io_u)
+{
+ if (io_u->acct_ddir != -1)
+ return io_u->acct_ddir;
+
+ return io_u->ddir;
+}
+
#endif