X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=b3fe9e1b387e12efa371cb2ead2f5ac52c439914;hb=129fb2d422557e493020a8eac00867749af284b4;hp=0d5a0efb5882cbcef8fd11739667686ea6363a8c;hpb=9599aaf191d6847010215e6ce0226994760b9f44;p=fio.git diff --git a/fio.h b/fio.h index 0d5a0efb..b3fe9e1b 100644 --- a/fio.h +++ b/fio.h @@ -65,19 +65,20 @@ enum { }; enum { - TD_F_VER_BACKLOG = 1, - TD_F_TRIM_BACKLOG = 2, - TD_F_READ_IOLOG = 4, - TD_F_REFILL_BUFFERS = 8, - 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, - TD_F_VSTATE_SAVED = 1024, - TD_F_NEED_LOCK = 2048, - TD_F_CHILD = 4096, + TD_F_VER_BACKLOG = 1U << 0, + TD_F_TRIM_BACKLOG = 1U << 1, + TD_F_READ_IOLOG = 1U << 2, + TD_F_REFILL_BUFFERS = 1U << 3, + TD_F_SCRAMBLE_BUFFERS = 1U << 4, + TD_F_VER_NONE = 1U << 5, + TD_F_PROFILE_OPS = 1U << 6, + TD_F_COMPRESS = 1U << 7, + TD_F_NOIO = 1U << 8, + TD_F_COMPRESS_LOG = 1U << 9, + TD_F_VSTATE_SAVED = 1U << 10, + TD_F_NEED_LOCK = 1U << 11, + TD_F_CHILD = 1U << 12, + TD_F_NO_PROGRESS = 1U << 13, }; enum { @@ -237,9 +238,10 @@ struct thread_data { * Rate state */ uint64_t rate_bps[DDIR_RWDIR_CNT]; - long rate_pending_usleep[DDIR_RWDIR_CNT]; + unsigned long rate_next_io_time[DDIR_RWDIR_CNT]; unsigned long rate_bytes[DDIR_RWDIR_CNT]; unsigned long rate_blocks[DDIR_RWDIR_CNT]; + unsigned long rate_io_issue_bytes[DDIR_RWDIR_CNT]; struct timeval lastrate[DDIR_RWDIR_CNT]; /* @@ -432,6 +434,7 @@ extern char *trigger_file; extern char *trigger_cmd; extern char *trigger_remote_cmd; extern long long trigger_timeout; +extern char *aux_path; extern struct thread_data *threads; @@ -464,6 +467,7 @@ extern void reset_fio_state(void); extern void clear_io_state(struct thread_data *); extern int fio_options_parse(struct thread_data *, char **, int, int); extern void fio_keywords_init(void); +extern void fio_keywords_exit(void); extern int fio_cmd_option_parse(struct thread_data *, const char *, char *); extern int fio_cmd_ioengine_option_parse(struct thread_data *, const char *, char *); extern void fio_fill_default_options(struct thread_data *); @@ -479,10 +483,12 @@ 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 void sig_show_status(int sig); extern uintptr_t page_mask; extern uintptr_t page_size; extern int initialize_fio(char *envp[]); +extern void deinitialize_fio(void); #define FIO_GETOPT_JOB 0x89000000 #define FIO_GETOPT_IOENGINE 0x98000000 @@ -514,6 +520,7 @@ enum { TD_FINISHING, TD_EXITED, TD_REAPED, + TD_LAST, }; extern void td_set_runstate(struct thread_data *, int); @@ -662,13 +669,18 @@ 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]))) +#define ARRAY_SIZE(x) (sizeof((x)) / (sizeof((x)[0]))) +#define FIELD_SIZE(s, f) (sizeof(((typeof(s))0)->f)) #endif enum { - FIO_OUTPUT_TERSE = 0, - FIO_OUTPUT_JSON, - FIO_OUTPUT_NORMAL, + __FIO_OUTPUT_TERSE = 0, + __FIO_OUTPUT_JSON = 1, + __FIO_OUTPUT_NORMAL = 2, + + FIO_OUTPUT_TERSE = 1U << __FIO_OUTPUT_TERSE, + FIO_OUTPUT_JSON = 1U << __FIO_OUTPUT_JSON, + FIO_OUTPUT_NORMAL = 1U << __FIO_OUTPUT_NORMAL, }; enum { @@ -684,6 +696,7 @@ enum { enum { FIO_RAND_GEN_TAUSWORTHE = 0, FIO_RAND_GEN_LFSR, + FIO_RAND_GEN_TAUSWORTHE64, }; enum {