X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=67f0badf8cb690d0b2940038157d19745b7075f0;hp=b21ec18d787821dbefb4c2b9987b1de9bf236c93;hb=b271fe62101e84cd6ca2a78c92299beba251db24;hpb=2ba1c290d09af6d630d84a58b97b8032f73bc2ce diff --git a/fio.h b/fio.h index b21ec18d..67f0badf 100644 --- a/fio.h +++ b/fio.h @@ -973,18 +973,31 @@ 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_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 +1006,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