summaryrefslogtreecommitdiff
path: root/debug.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2010-03-19 16:41:52 +0100
committerJens Axboe <jens.axboe@oracle.com>2010-03-19 16:41:52 +0100
commitbf84eacbfc91a952eb5b781ad2955109c862d41e (patch)
treebf35d7dedeef861e3fa984403c2a45497c58d2c0 /debug.c
parent1dec3e0787755c412b326619d63a24c58e7f4a6b (diff)
downloadfio-bf84eacbfc91a952eb5b781ad2955109c862d41e.tar.gz
fio-bf84eacbfc91a952eb5b781ad2955109c862d41e.tar.bz2
Make the dprint() processing out-of-line
Instead of having the big macro inlined everywhere, only inline the mask check and put the rest out-of-line. This reduces the size of fio with 4% here, and speeds it up. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'debug.c')
-rw-r--r--debug.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/debug.c b/debug.c
new file mode 100644
index 00000000..2eb3b6f9
--- /dev/null
+++ b/debug.c
@@ -0,0 +1,27 @@
+#include <stdarg.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include "debug.h"
+
+void __dprint(int type, const char *str, ...)
+{
+ va_list args;
+ pid_t pid;
+
+ assert(type < FD_DEBUG_MAX);
+
+ if ((((1 << type)) & fio_debug) == 0)
+ return;
+
+ pid = getpid();
+ if (fio_debug_jobp && *fio_debug_jobp != -1U
+ && pid != *fio_debug_jobp)
+ return;
+
+ log_info("%-8s ", debug_levels[(type)].name);
+ log_info("%-5u ", (int) pid);
+
+ va_start(args, str);
+ vfprintf(f_out, str, args);
+ va_end(args);
+}