#include "debug.h"
#include "file.h"
#include "io_ddir.h"
-#include "ioengine.h"
+#include "ioengines.h"
#include "iolog.h"
#include "helpers.h"
#include "options.h"
#include "server.h"
#include "stat.h"
#include "flow.h"
+#include "io_u.h"
#include "io_u_queue.h"
#include "workqueue.h"
#include "steadystate.h"
TD_F_VER_NONE = 1U << 5,
TD_F_PROFILE_OPS = 1U << 6,
TD_F_COMPRESS = 1U << 7,
- TD_F_NOIO = 1U << 8,
+ TD_F_RESERVED = 1U << 8, /* not used */
TD_F_COMPRESS_LOG = 1U << 9,
TD_F_VSTATE_SAVED = 1U << 10,
TD_F_NEED_LOCK = 1U << 11,
FIO_DEDUPE_OFF,
FIO_RAND_POISSON_OFF,
FIO_RAND_ZONE_OFF,
+ FIO_RAND_POISSON2_OFF,
+ FIO_RAND_POISSON3_OFF,
FIO_RAND_NR_OFFS,
};
* Per-thread/process specific data. Only used for the network client
* for now.
*/
-struct sk_out;
void sk_out_assign(struct sk_out *);
void sk_out_drop(void);
* to any of the available IO engines.
*/
struct ioengine_ops *io_ops;
+ int io_ops_init;
/*
* IO engine private data and dlhandle.
unsigned long rate_blocks[DDIR_RWDIR_CNT];
unsigned long long rate_io_issue_bytes[DDIR_RWDIR_CNT];
struct timeval lastrate[DDIR_RWDIR_CNT];
- int64_t last_usec;
- struct frand_state poisson_state;
+ int64_t last_usec[DDIR_RWDIR_CNT];
+ struct frand_state poisson_state[DDIR_RWDIR_CNT];
/*
* Enforced rate submission/completion workqueue
{
if (td->last_was_sync)
return 0;
- if (td_write(td) || td_rw(td) || td->o.override_sync)
+ if (td_write(td) || td->o.override_sync)
return 1;
return 0;