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>
OBJS = gettime.o fio.o ioengines.o init.o stat.o log.o time.o filesetup.o \
eta.o verify.o memory.o io_u.o parse.o mutex.o options.o \
rbtree.o diskutil.o fifo.o blktrace.o smalloc.o filehash.o helpers.o \
OBJS = gettime.o fio.o ioengines.o init.o stat.o log.o time.o filesetup.o \
eta.o verify.o memory.o io_u.o parse.o mutex.o options.o \
rbtree.o diskutil.o fifo.o blktrace.o smalloc.o filehash.o helpers.o \
+ cgroup.o profile.o debug.o
OBJS += crc/crc7.o
OBJS += crc/crc16.o
OBJS += crc/crc7.o
OBJS += crc/crc16.o
--- /dev/null
+#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);
+}
extern unsigned long fio_debug;
extern unsigned long fio_debug;
-#define dprint(type, str, args...) \
- do { \
- pid_t __pid; \
- assert(type < FD_DEBUG_MAX); \
- if ((((1 << type)) & fio_debug) == 0) \
- break; \
- __pid = getpid(); \
- if (fio_debug_jobp && *fio_debug_jobp != -1U \
- && __pid != *fio_debug_jobp) \
- break; \
- log_info("%-8s ", debug_levels[(type)].name); \
- log_info("%-5u ", (int) __pid); \
- log_info(str, ##args); \
- } while (0)
+void __dprint(int type, const char *str, ...);
+
+#define dprint(type, str, args...) \
+ do { \
+ if ((((1 << type)) & fio_debug) == 0) \
+ break; \
+ __dprint((type), (str), ##args); \
+ } while (0) \
-#define dprint(type, str, args...)
+static inline void dprint(int type, const char *str, ...)
+{
+}
#ifndef FIO_LOG_H
#define FIO_LOG_H
#ifndef FIO_LOG_H
#define FIO_LOG_H
extern FILE *f_out;
extern FILE *f_err;
extern FILE *f_out;
extern FILE *f_err;