[sheepdog] [PATCH] sbd: redefine sbd_debug()

hujianyang hujianyang at huawei.com
Tue Jan 20 11:19:18 CET 2015


Current marco sbd_debug() will always print debug message
while CONFIG_DYNAMIC_DEBUG=y. That's because the missing
condition check of *_DPRINTK_FLAGS_PRINT*.

diff --git a/sbd/sbd.h b/sbd/sbd.h
index c0b9ef3..97ab921 100644
--- a/sbd/sbd.h
+++ b/sbd/sbd.h
@@ -131,6 +131,7 @@ static inline int sbd_dev_id_to_minor(int id)
 # define sbd_debug(fmt, ...)                            \
 ({                                                      \
        SBD_DYNAMIC_DEBUG_METADATA(descriptor, fmt);    \
+       if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT))  \
        __dynamic_pr_debug(&descriptor, pr_fmt(fmt),    \
                           ##__VA_ARGS__);              \

See include/linux/dynamic_debug.h line 77.

But I don't think this implement is good. We could directly
call *pr_debug* as other kernel modules do.

This patch redefine sbd_debug() as pr_debug call without
changing messages format and of course fix the messages
always printing problem.

Signed-off-by: hujianyang <hujianyang at huawei.com>
---
 sbd/sbd.h |   32 +++-----------------------------
 1 files changed, 3 insertions(+), 29 deletions(-)

diff --git a/sbd/sbd.h b/sbd/sbd.h
index c0b9ef3..5da4a90 100644
--- a/sbd/sbd.h
+++ b/sbd/sbd.h
@@ -112,34 +112,8 @@ static inline int sbd_dev_id_to_minor(int id)
 	return id << SBD_MINORS_SHIFT;
 }

-#if defined(CONFIG_DYNAMIC_DEBUG) && defined _DPRINTK_FLAGS_INCL_MODNAME
-
-# define _SBD_FLAGS ( _DPRINTK_FLAGS_INCL_MODNAME \
-	| _DPRINTK_FLAGS_INCL_FUNCNAME | _DPRINTK_FLAGS_INCL_LINENO)
-
-# define SBD_DYNAMIC_DEBUG_METADATA(name, fmt)                  \
-	static struct _ddebug  __aligned(8)                     \
-	 __attribute__((section("__verbose"))) name = {          \
-		.modname = KBUILD_MODNAME,                      \
-		.function = __func__,                           \
-		.filename = __FILE__,                           \
-		.format = (fmt),                                \
-		.lineno = __LINE__,                             \
-		.flags =  _SBD_FLAGS,                           \
-	}
-
-# define sbd_debug(fmt, ...)                            \
-({                                                      \
-	SBD_DYNAMIC_DEBUG_METADATA(descriptor, fmt);    \
-	__dynamic_pr_debug(&descriptor, pr_fmt(fmt),    \
-			   ##__VA_ARGS__);              \
-})
-
-#else
-
-/* If -DDEBUG is not set, pr_debug = no_printk */
-# define sbd_debug pr_debug
-
-#endif /* CONFIG_DYNAMIC_DEBUG */
+#define sbd_debug(fmt, ...) \
+	pr_debug("%s:%s:%u " fmt, KBUILD_MODNAME,  __func__, \
+		 __LINE__, ##__VA_ARGS__)

 #endif /* _SBD_H_ */
-- 
1.6.0.2




More information about the sheepdog mailing list