#include "helpers.h"
#include "options.h"
#include "profile.h"
-#include "time.h"
+#include "fio_time.h"
#include "gettime.h"
#include "lib/getopt.h"
#include "lib/rand.h"
TD_F_SCRAMBLE_BUFFERS = 16,
TD_F_VER_NONE = 32,
TD_F_PROFILE_OPS = 64,
+ TD_F_COMPRESS = 128,
+ TD_F_NOIO = 256,
+ TD_F_COMPRESS_LOG = 512,
};
enum {
struct io_log *bw_log;
struct io_log *iops_log;
+ struct tp_data *tp_data;
+
uint64_t stat_io_bytes[DDIR_RWDIR_CNT];
struct timeval bw_sample_time;
#define __td_verror(td, err, msg, func) \
do { \
- int ____e = (err); \
+ unsigned int ____e = (err); \
if ((td)->error) \
break; \
(td)->error = ____e; \
extern char *num2str(unsigned long, int, int, int, int);
extern int ioengine_load(struct thread_data *);
extern int parse_dryrun(void);
+extern int fio_running_or_pending_io_threads(void);
+extern int fio_set_fd_nonblocking(int, const char *);
extern uintptr_t page_mask;
extern uintptr_t page_size;
TD_PRE_READING,
TD_VERIFYING,
TD_FSYNCING,
+ TD_FINISHING,
TD_EXITED,
TD_REAPED,
};
return min(td->o.min_bs[DDIR_TRIM], min_bs);
}
-static inline int is_power_of_2(unsigned int val)
+static inline int is_power_of_2(unsigned long val)
{
return (val != 0 && ((val & (val - 1)) == 0));
}
extern const char *fio_get_arch_string(int);
extern const char *fio_get_os_string(int);
+#ifdef FIO_INTERNAL
#define ARRAY_SIZE(x) (sizeof((x)) / (sizeof((x)[0])))
+#endif
enum {
FIO_OUTPUT_TERSE = 0,