X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=1cb44e60dcd9bedc1d69405e1ab59803052b06fe;hp=2d752135cf030d2c6bd64f7cc04a66277fa86576;hb=62232d0618e3f5aa4805b4be34e872895ba1beb2;hpb=29df29eaf88958c8741103d2056a4773d4959d9d diff --git a/fio.h b/fio.h index 2d752135..1cb44e60 100644 --- a/fio.h +++ b/fio.h @@ -113,10 +113,13 @@ struct thread_data { uint64_t stat_io_blocks[DDIR_RWDIR_CNT]; struct timeval iops_sample_time; + volatile int update_rusage; + struct fio_mutex *rusage_sem; struct rusage ru_start; struct rusage ru_end; struct fio_file **files; + unsigned char *file_locks; unsigned int files_size; unsigned int files_index; unsigned int nr_open_files; @@ -209,22 +212,22 @@ struct thread_data { /* * Rate state */ - unsigned long long rate_bps[DDIR_RWDIR_CNT]; + uint64_t 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; + uint64_t total_io_size; + uint64_t fill_device_size; 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[DDIR_RWDIR_CNT]; - unsigned long long zone_bytes; + uint64_t io_blocks[DDIR_RWDIR_CNT]; + uint64_t this_io_blocks[DDIR_RWDIR_CNT]; + uint64_t io_bytes[DDIR_RWDIR_CNT]; + uint64_t io_skip_bytes; + uint64_t this_io_bytes[DDIR_RWDIR_CNT]; + uint64_t zone_bytes; struct fio_mutex *mutex; /* @@ -349,6 +352,7 @@ extern int temp_stall_ts; extern uintptr_t page_mask, page_size; extern int read_only; extern int eta_print; +extern int eta_new_line; extern unsigned long done_secs; extern char *job_section; extern int fio_gtod_offload; @@ -566,6 +570,14 @@ static inline int should_check_rate(struct thread_data *td, return ret; } +static inline unsigned int td_max_bs(struct thread_data *td) +{ + unsigned int max_bs; + + max_bs = max(td->o.max_bs[DDIR_READ], td->o.max_bs[DDIR_WRITE]); + return max(td->o.max_bs[DDIR_TRIM], max_bs); +} + static inline int is_power_of_2(unsigned int val) { return (val != 0 && ((val & (val - 1)) == 0));