X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=028ef4cb9ec2e79b0296639a2ddc69b2bfdd24a1;hp=b21ec18d787821dbefb4c2b9987b1de9bf236c93;hb=6ae1f57f2cb8661b97b770372eeb3694f6d5a744;hpb=2ba1c290d09af6d630d84a58b97b8032f73bc2ce diff --git a/fio.h b/fio.h index b21ec18d..028ef4cb 100644 --- a/fio.h +++ b/fio.h @@ -263,16 +263,15 @@ enum fio_ioengine_flags { FIO_NODISKUTIL = 1 << 4, /* diskutil can't handle filename */ FIO_UNIDIR = 1 << 5, /* engine is uni-directional */ FIO_NOIO = 1 << 6, /* thread does only pseudo IO */ + FIO_SIGQUIT = 1 << 7, /* needs SIGQUIT to exit */ }; enum fio_file_flags { FIO_FILE_OPEN = 1 << 0, /* file is open */ FIO_FILE_CLOSING = 1 << 1, /* file being closed */ - FIO_FILE_EXISTS = 1 << 2, /* file there */ - FIO_FILE_EXTEND = 1 << 3, /* needs extend */ - FIO_FILE_NOSORT = 1 << 4, /* don't sort verify blocks */ - FIO_FILE_DONE = 1 << 5, /* io completed to this file */ - FIO_SIZE_KNOWN = 1 << 6, /* size has been set */ + FIO_FILE_EXTEND = 1 << 2, /* needs extend */ + FIO_FILE_DONE = 1 << 3, /* io completed to this file */ + FIO_SIZE_KNOWN = 1 << 4, /* size has been set */ }; /* @@ -667,6 +666,7 @@ extern unsigned long long mlock_size; extern unsigned long page_mask, page_size; extern int read_only; extern int eta_print; +extern char *job_section; extern struct thread_data *threads; @@ -681,7 +681,7 @@ static inline void fio_ro_check(struct thread_data *td, struct io_u *io_u) } #define BLOCKS_PER_MAP (8 * sizeof(long)) -#define TO_MAP_BLOCK(td, f, b) ((b) - ((f)->file_offset / (unsigned long long) (td)->o.rw_min_bs)) +#define TO_MAP_BLOCK(td, f, b) (b) #define RAND_MAP_IDX(td, f, b) (TO_MAP_BLOCK(td, f, b) / BLOCKS_PER_MAP) #define RAND_MAP_BIT(td, f, b) (TO_MAP_BLOCK(td, f, b) & (BLOCKS_PER_MAP - 1)) @@ -973,18 +973,32 @@ static inline void clear_error(struct thread_data *td) } enum { - FD_PROCESS = 1 << 0, - FD_FILE = 1 << 1, - FD_IO = 1 << 2, - FD_MEM = 1 << 3, + FD_PROCESS = 0, + FD_FILE, + FD_IO, + FD_MEM, + FD_BLKTRACE, + FD_VERIFY, + FD_RANDOM, + FD_DEBUG_MAX, }; +#ifdef FIO_INC_DEBUG +struct debug_level { + const char *name; + unsigned long shift; +}; +extern struct debug_level debug_levels[]; + extern unsigned long fio_debug; -#define dprint(type, str, args...) \ - do { \ - if (((type) & fio_debug) == 0) \ - break; \ - log_info(str, ##args); \ + +#define dprint(type, str, args...) \ + do { \ + assert(type < FD_DEBUG_MAX); \ + if ((((1 << type)) & fio_debug) == 0) \ + break; \ + log_info("%-8s ", debug_levels[(type)].name); \ + log_info(str, ##args); \ } while (0) static inline void dprint_io_u(struct io_u *io_u, const char *p) @@ -993,9 +1007,16 @@ static inline void dprint_io_u(struct io_u *io_u, const char *p) dprint(FD_IO, "%s: io_u %p: off=%llu/len=%lu/ddir=%d", p, io_u, io_u->offset, io_u->buflen, io_u->ddir); - if (f) - dprint(FD_IO, "/%s", f->file_name); - dprint(FD_IO, "\n"); + if (fio_debug & (1 << FD_IO)) { + if (f) + log_info("/%s", f->file_name); + + log_info("\n"); + } } +#else +#define dprint(type, str, args...) +#define dprint_io_u(io_u, p) +#endif #endif