Add possibility to make sequential IO "holed"
For sequential IO, it is now possible to add a number of bytes to
be skipped for every block read or written. Using:
bs=8k
rw=read:8k
will first read 0k->8k, then 16k->24k, and so on. This skips 8k
for every 'bs' sized block read. Similar for writes, doing
bs=4k
rw=write:4k
will write 0k->4k, then 8k->12k, etc. End result being that every
other block is written, in a sequential fashion.
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
diff --git a/options.c b/options.c
index 3d8a720..6a87e98 100644
--- a/options.c
+++ b/options.c
@@ -203,11 +203,26 @@
char *nr = get_opt_postfix(str);
td->o.ddir_seq_nr = 1;
- if (nr) {
+ td->o.ddir_seq_add = 0;
+
+ if (!nr)
+ return 0;
+
+ if (td_random(td))
td->o.ddir_seq_nr = atoi(nr);
- free(nr);
+ else {
+ long long val;
+
+ if (str_to_decimal(nr, &val, 1, td)) {
+ log_err("fio: rw postfix parsing failed\n");
+ free(nr);
+ return 1;
+ }
+
+ td->o.ddir_seq_add = val;
}
+ free(nr);
return 0;
}