]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
libceph: add doutc and *_client debug macros support
authorXiubo Li <xiubli@redhat.com>
Fri, 9 Jun 2023 05:04:14 +0000 (13:04 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Fri, 3 Nov 2023 22:28:33 +0000 (23:28 +0100)
This will help print the fsid and client's global_id in debug logs,
and also print the function names.

[ idryomov: %lld -> %llu, leading space for doutc(), don't include
  __func__ in pr_*() variants ]

Link: https://tracker.ceph.com/issues/61590
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Milind Changire <mchangir@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
include/linux/ceph/ceph_debug.h

index d5a5da838cafa4c6c31cc58445e2e6f3b3ba0f99..11a92a946016eab597d5fe3b9e023705b127b25a 100644 (file)
        pr_debug("%.*s %12.12s:%-4d : " fmt,                            \
                 8 - (int)sizeof(KBUILD_MODNAME), "    ",               \
                 kbasename(__FILE__), __LINE__, ##__VA_ARGS__)
+#  define doutc(client, fmt, ...)                                      \
+       pr_debug("%.*s %12.12s:%-4d : [%pU %llu] " fmt,                 \
+                8 - (int)sizeof(KBUILD_MODNAME), "    ",               \
+                kbasename(__FILE__), __LINE__,                         \
+                &client->fsid, client->monc.auth->global_id,           \
+                ##__VA_ARGS__)
 # else
 /* faux printk call just to see any compiler warnings. */
 #  define dout(fmt, ...)       do {                            \
                if (0)                                          \
                        printk(KERN_DEBUG fmt, ##__VA_ARGS__);  \
        } while (0)
+#  define doutc(client, fmt, ...)      do {                    \
+               if (0)                                          \
+                       printk(KERN_DEBUG "[%pU %llu] " fmt,    \
+                       &client->fsid,                          \
+                       client->monc.auth->global_id,           \
+                       ##__VA_ARGS__);                         \
+               } while (0)
 # endif
 
 #else
  * or, just wrap pr_debug
  */
 # define dout(fmt, ...)        pr_debug(" " fmt, ##__VA_ARGS__)
+# define doutc(client, fmt, ...)                                       \
+       pr_debug(" [%pU %llu] %s: " fmt, &client->fsid,                 \
+                client->monc.auth->global_id, __func__, ##__VA_ARGS__)
 
 #endif
 
+#define pr_notice_client(client, fmt, ...)                             \
+       pr_notice("[%pU %llu]: " fmt, &client->fsid,                    \
+                 client->monc.auth->global_id, ##__VA_ARGS__)
+#define pr_info_client(client, fmt, ...)                               \
+       pr_info("[%pU %llu]: " fmt, &client->fsid,                      \
+               client->monc.auth->global_id, ##__VA_ARGS__)
+#define pr_warn_client(client, fmt, ...)                               \
+       pr_warn("[%pU %llu]: " fmt, &client->fsid,                      \
+               client->monc.auth->global_id, ##__VA_ARGS__)
+#define pr_warn_once_client(client, fmt, ...)                          \
+       pr_warn_once("[%pU %llu]: " fmt, &client->fsid,                 \
+                    client->monc.auth->global_id, ##__VA_ARGS__)
+#define pr_err_client(client, fmt, ...)                                        \
+       pr_err("[%pU %llu]: " fmt, &client->fsid,                       \
+              client->monc.auth->global_id, ##__VA_ARGS__)
+#define pr_warn_ratelimited_client(client, fmt, ...)                   \
+       pr_warn_ratelimited("[%pU %llu]: " fmt, &client->fsid,          \
+                           client->monc.auth->global_id, ##__VA_ARGS__)
+#define pr_err_ratelimited_client(client, fmt, ...)                    \
+       pr_err_ratelimited("[%pU %llu]: " fmt, &client->fsid,           \
+                          client->monc.auth->global_id, ##__VA_ARGS__)
+
 #endif