[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