2020-03-10 17:01:33

by Manish Mandlik

[permalink] [raw]
Subject: [PATCH] Bluetooth: include file and function names in logs

From: Joseph Hwang <[email protected]>

Include file and function names in bluetooth kernel logs to
help debugging.

Signed-off-by: Joseph Hwang <[email protected]>
Signed-off-by: Manish Mandlik <[email protected]>
---

include/net/bluetooth/bluetooth.h | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
index 1576353a27732..2024d9c53d687 100644
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
@@ -150,10 +150,21 @@ void bt_warn_ratelimited(const char *fmt, ...);
__printf(1, 2)
void bt_err_ratelimited(const char *fmt, ...);

-#define BT_INFO(fmt, ...) bt_info(fmt "\n", ##__VA_ARGS__)
-#define BT_WARN(fmt, ...) bt_warn(fmt "\n", ##__VA_ARGS__)
-#define BT_ERR(fmt, ...) bt_err(fmt "\n", ##__VA_ARGS__)
-#define BT_DBG(fmt, ...) pr_debug(fmt "\n", ##__VA_ARGS__)
+static inline const char *basename(const char *path)
+{
+ const char *str = strrchr(path, '/');
+
+ return str ? (str + 1) : path;
+}
+
+#define BT_INFO(fmt, ...) bt_info("%s:%s() " fmt "\n", \
+ basename(__FILE__), __func__, ##__VA_ARGS__)
+#define BT_WARN(fmt, ...) bt_warn("%s:%s() " fmt "\n", \
+ basename(__FILE__), __func__, ##__VA_ARGS__)
+#define BT_ERR(fmt, ...) bt_err("%s:%s() " fmt "\n", \
+ basename(__FILE__), __func__, ##__VA_ARGS__)
+#define BT_DBG(fmt, ...) pr_debug("%s:%s() " fmt "\n", \
+ basename(__FILE__), __func__, ##__VA_ARGS__)

#define bt_dev_info(hdev, fmt, ...) \
BT_INFO("%s: " fmt, (hdev)->name, ##__VA_ARGS__)
--
2.25.1.481.gfbce0eb801-goog


2020-03-11 14:34:51

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: include file and function names in logs

Hi Manish,

> Include file and function names in bluetooth kernel logs to
> help debugging.
>
> Signed-off-by: Joseph Hwang <[email protected]>
> Signed-off-by: Manish Mandlik <[email protected]>
> ---
>
> include/net/bluetooth/bluetooth.h | 19 +++++++++++++++----
> 1 file changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
> index 1576353a27732..2024d9c53d687 100644
> --- a/include/net/bluetooth/bluetooth.h
> +++ b/include/net/bluetooth/bluetooth.h
> @@ -150,10 +150,21 @@ void bt_warn_ratelimited(const char *fmt, ...);
> __printf(1, 2)
> void bt_err_ratelimited(const char *fmt, ...);
>
> -#define BT_INFO(fmt, ...) bt_info(fmt "\n", ##__VA_ARGS__)
> -#define BT_WARN(fmt, ...) bt_warn(fmt "\n", ##__VA_ARGS__)
> -#define BT_ERR(fmt, ...) bt_err(fmt "\n", ##__VA_ARGS__)
> -#define BT_DBG(fmt, ...) pr_debug(fmt "\n", ##__VA_ARGS__)
> +static inline const char *basename(const char *path)
> +{
> + const char *str = strrchr(path, '/');
> +
> + return str ? (str + 1) : path;
> +}
> +
> +#define BT_INFO(fmt, ...) bt_info("%s:%s() " fmt "\n", \
> + basename(__FILE__), __func__, ##__VA_ARGS__)
> +#define BT_WARN(fmt, ...) bt_warn("%s:%s() " fmt "\n", \
> + basename(__FILE__), __func__, ##__VA_ARGS__)
> +#define BT_ERR(fmt, ...) bt_err("%s:%s() " fmt "\n", \
> + basename(__FILE__), __func__, ##__VA_ARGS__)
> +#define BT_DBG(fmt, ...) pr_debug("%s:%s() " fmt "\n", \
> + basename(__FILE__), __func__, ##__VA_ARGS__)
>
> #define bt_dev_info(hdev, fmt, ...) \
> BT_INFO("%s: " fmt, (hdev)->name, ##__VA_ARGS__)

this is NAK from my side. We don’t want to include __FILE__ and __func__ names in the standard messages. I am however working in revamping the whole printk and debug of the Bluetooth subsystem. I will send around the initial pieces of my work as a RFC soon.

Regards

Marcel