X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=4f2dc8f6cfd322421b8ba09cda67480d7b10e96e;hb=8172fe972f3a79d42f34d7f6e259ed3f7f800316;hp=09bf6a203c7c4b72450d60c27b34e93d174fbac6;hpb=e28218f3017e5eb156d3a4a6e7b33651dc022cea;p=fio.git diff --git a/fio.h b/fio.h index 09bf6a20..4f2dc8f6 100644 --- a/fio.h +++ b/fio.h @@ -972,4 +972,44 @@ static inline void clear_error(struct thread_data *td) td->verror[0] = '\0'; } +enum { + FD_PROCESS = 0, + FD_FILE, + FD_IO, + FD_MEM, + FD_BLKTRACE, + FD_VERIFY, + FD_DEBUG_MAX, +}; + +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 { \ + 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) +{ + struct fio_file *f = io_u->file; + + 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 (fio_debug & (1 << FD_IO)) { + if (f) + log_info("/%s", f->file_name); + + log_info("\n"); + } +} + #endif