struct io_log *bw_log;
struct io_log *iops_log;
- uint64_t stat_io_bytes[2];
+ uint64_t stat_io_bytes[DDIR_RWDIR_CNT];
struct timeval bw_sample_time;
- uint64_t stat_io_blocks[2];
+ uint64_t stat_io_blocks[DDIR_RWDIR_CNT];
struct timeval iops_sample_time;
struct rusage ru_start;
struct frand_state __next_file_state;
};
int error;
+ int sig;
int done;
pid_t pid;
char *orig_buffer;
size_t orig_buffer_size;
volatile int terminate;
volatile int runstate;
- unsigned int ioprio;
- unsigned int ioprio_set;
unsigned int last_was_sync;
enum fio_ddir last_ddir;
/*
* Rate state
*/
- unsigned long long rate_bps[2];
- long rate_pending_usleep[2];
- unsigned long rate_bytes[2];
- unsigned long rate_blocks[2];
- struct timeval lastrate[2];
+ unsigned long long rate_bps[DDIR_RWDIR_CNT];
+ long rate_pending_usleep[DDIR_RWDIR_CNT];
+ unsigned long rate_bytes[DDIR_RWDIR_CNT];
+ unsigned long rate_blocks[DDIR_RWDIR_CNT];
+ struct timeval lastrate[DDIR_RWDIR_CNT];
unsigned long long total_io_size;
unsigned long long fill_device_size;
- unsigned long io_issues[2];
- unsigned long long io_blocks[2];
- unsigned long long this_io_blocks[2];
- unsigned long long io_bytes[2];
+ unsigned long io_issues[DDIR_RWDIR_CNT];
+ unsigned long long io_blocks[DDIR_RWDIR_CNT];
+ unsigned long long this_io_blocks[DDIR_RWDIR_CNT];
+ unsigned long long io_bytes[DDIR_RWDIR_CNT];
unsigned long long io_skip_bytes;
- unsigned long long this_io_bytes[2];
+ unsigned long long this_io_bytes[DDIR_RWDIR_CNT];
unsigned long long zone_bytes;
struct fio_mutex *mutex;
*/
struct prof_io_ops prof_io_ops;
void *prof_data;
+
+ void *pinned_mem;
};
/*
extern unsigned int thread_number;
extern int shm_id;
extern int groupid;
-extern int terse_output;
+extern int output_format;
extern int temp_stall_ts;
-extern unsigned long long mlock_size;
-extern unsigned long page_mask, page_size;
+extern uintptr_t page_mask, page_size;
extern int read_only;
extern int eta_print;
extern unsigned long done_secs;
/*
* Memory helpers
*/
-extern int __must_check fio_pin_memory(void);
-extern void fio_unpin_memory(void);
+extern int __must_check fio_pin_memory(struct thread_data *);
+extern void fio_unpin_memory(struct thread_data *);
extern int __must_check allocate_io_mem(struct thread_data *);
extern void free_io_mem(struct thread_data *);
extern void free_threads_shm(void);
{
int ret = 0;
- if (bytes_done[0])
- ret |= __should_check_rate(td, 0);
- if (bytes_done[1])
- ret |= __should_check_rate(td, 1);
+ if (bytes_done[DDIR_READ])
+ ret |= __should_check_rate(td, DDIR_READ);
+ if (bytes_done[DDIR_WRITE])
+ ret |= __should_check_rate(td, DDIR_WRITE);
+ if (bytes_done[DDIR_TRIM])
+ ret |= __should_check_rate(td, DDIR_TRIM);
return ret;
}
#define ARRAY_SIZE(x) (sizeof((x)) / (sizeof((x)[0])))
+enum {
+ FIO_OUTPUT_TERSE = 0,
+ FIO_OUTPUT_JSON,
+ FIO_OUTPUT_NORMAL,
+};
+
#endif