queue_io_piece(td, ipo);
}
-static void handle_trace_notify(struct thread_data *td, struct blk_io_trace *t)
+static void handle_trace_notify( struct blk_io_trace *t)
{
switch (t->action) {
case BLK_TN_PROCESS:
return;
if (t->action & BLK_TC_ACT(BLK_TC_NOTIFY))
- handle_trace_notify(td, t);
+ handle_trace_notify(t);
else
handle_trace_fs(td, t, ttime, ios, bs);
}
}
#define BLOCKS_PER_MAP (8 * sizeof(long))
-#define TO_MAP_BLOCK(td, f, b) (b)
-#define RAND_MAP_IDX(td, f, b) (TO_MAP_BLOCK(td, f, b) / BLOCKS_PER_MAP)
-#define RAND_MAP_BIT(td, f, b) (TO_MAP_BLOCK(td, f, b) & (BLOCKS_PER_MAP - 1))
+#define TO_MAP_BLOCK(f, b) (b)
+#define RAND_MAP_IDX(f, b) (TO_MAP_BLOCK(f, b) / BLOCKS_PER_MAP)
+#define RAND_MAP_BIT(f, b) (TO_MAP_BLOCK(f, b) & (BLOCKS_PER_MAP - 1))
#define MAX_JOBS (1024)
* The ->file_map[] contains a map of blocks we have or have not done io
* to yet. Used to make sure we cover the entire range in a fair fashion.
*/
-static int random_map_free(struct thread_data *td, struct fio_file *f,
- const unsigned long long block)
+static int random_map_free(struct fio_file *f, const unsigned long long block)
{
- unsigned int idx = RAND_MAP_IDX(td, f, block);
- unsigned int bit = RAND_MAP_BIT(td, f, block);
+ unsigned int idx = RAND_MAP_IDX(f, block);
+ unsigned int bit = RAND_MAP_BIT(f, block);
dprint(FD_RANDOM, "free: b=%llu, idx=%u, bit=%u\n", block, idx, bit);
* If we have a mixed random workload, we may
* encounter blocks we already did IO to.
*/
- if ((td->o.ddir_nr == 1) && !random_map_free(td, f, block))
+ if ((td->o.ddir_nr == 1) && !random_map_free(f, block))
break;
- idx = RAND_MAP_IDX(td, f, block);
- bit = RAND_MAP_BIT(td, f, block);
+ idx = RAND_MAP_IDX(f, block);
+ bit = RAND_MAP_BIT(f, block);
fio_assert(td, idx < f->num_maps);
/*
* calculate map offset and check if it's free
*/
- if (random_map_free(td, f, *b))
+ if (random_map_free(f, *b))
return 0;
dprint(FD_RANDOM, "get_next_rand_offset: offset %llu busy\n",
return 0;
}
-/*
- * Read version 1 iolog data.
- */
-static int read_iolog(struct thread_data *td, FILE *f)
-{
- log_err("fio: iolog version 1 is no longer supported\n");
- return 1;
-}
-
/*
* open iolog, check version, and call appropriate parser
*/
if (!strncmp(iolog_ver2, buffer, strlen(iolog_ver2)))
ret = read_iolog2(td, f);
else {
- /*
- * seek back to the beginning
- */
- if (fseek(f, 0, SEEK_SET) < 0) {
- td_verror(td, errno, "iolog read");
- log_err("fio: unable to read iolog\n");
- return 1;
- }
-
- ret = read_iolog(td, f);
+ log_err("fio: iolog version 1 is no longer supported\n");
+ ret = 1;
}
fclose(f);