X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=d2cca1182b2b40d271caa2f88a766836448be138;hp=e8c025d6880e2d3613abf43578acf3efbbd8dab5;hb=a9523c6f4a43e4bbf942ee49068fe4f052c6991d;hpb=92a3d86ed1b2040c618b296e4d2ce503352792bc diff --git a/fio.h b/fio.h index e8c025d6..d2cca118 100644 --- a/fio.h +++ b/fio.h @@ -14,6 +14,8 @@ #include #include +struct thread_data; + #include "compiler/compiler.h" #include "flist.h" #include "fifo.h" @@ -71,7 +73,7 @@ enum { /* * How many depth levels to log */ -#define FIO_IO_U_MAP_NR 8 +#define FIO_IO_U_MAP_NR 7 #define FIO_IO_U_LAT_U_NR 10 #define FIO_IO_U_LAT_M_NR 12 @@ -126,7 +128,7 @@ struct thread_stat { unsigned long total_complete; unsigned long long io_bytes[2]; - unsigned long runtime[2]; + unsigned long long runtime[2]; unsigned long total_run_time; /* @@ -195,6 +197,7 @@ struct thread_options { char verify_pattern[MAX_PATTERN_SIZE]; unsigned int verify_pattern_bytes; unsigned int verify_fatal; + unsigned int verify_dump; unsigned int verify_async; unsigned long long verify_backlog; unsigned int verify_batch; @@ -217,6 +220,7 @@ struct thread_options { unsigned int thinktime_blocks; unsigned int fsync_blocks; unsigned int fdatasync_blocks; + unsigned int barrier_blocks; unsigned long start_delay; unsigned long long timeout; unsigned long long ramp_time; @@ -518,6 +522,7 @@ extern char *job_section; extern int fio_gtod_offload; extern int fio_gtod_cpu; extern enum fio_cs fio_clock_source; +extern int warnings_fatal; extern struct thread_data *threads; @@ -568,6 +573,8 @@ extern void options_mem_dupe(struct thread_data *); extern void options_mem_free(struct thread_data *); extern void td_fill_rand_seeds(struct thread_data *); extern void add_job_opts(const char **); +extern char *num2str(unsigned long, int, int, int); + #define FIO_GETOPT_JOB 0x89988998 #define FIO_NR_OPTIONS (FIO_MAX_OPTS + 128) @@ -653,49 +660,6 @@ static inline int fio_fill_issue_time(struct thread_data *td) return 0; } -/* - * Cheesy number->string conversion, complete with carry rounding error. - */ -static inline char *num2str(unsigned long num, int maxlen, int base, int pow2) -{ - char postfix[] = { ' ', 'K', 'M', 'G', 'P', 'E' }; - unsigned int thousand; - char *buf; - int i; - - if (pow2) - thousand = 1024; - else - thousand = 1000; - - buf = malloc(128); - - for (i = 0; base > 1; i++) - base /= thousand; - - do { - int len, carry = 0; - - len = sprintf(buf, "%'lu", num); - if (len <= maxlen) { - if (i >= 1) { - buf[len] = postfix[i]; - buf[len + 1] = '\0'; - } - return buf; - } - - if ((num % thousand) >= (thousand / 2)) - carry = 1; - - num /= thousand; - num += carry; - i++; - } while (i <= 5); - - return buf; -} - static inline int __should_check_rate(struct thread_data *td, enum fio_ddir ddir) {