Re: [Intel-xe] [PATCH 1/2] drm/xe: Introduce GT oriented log messages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



+dri-devel

On Mon, Mar 13, 2023 at 09:03:56AM +0100, Michal Wajdeczko wrote:
While debugging GT related problems, it's good to know which GT was
reporting problems. Introduce helper macros to allow prefix GT logs
with GT idetifier. We will use them in upcoming patches.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx>
---
drivers/gpu/drm/xe/xe_gt_printk.h | 45 +++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 drivers/gpu/drm/xe/xe_gt_printk.h

diff --git a/drivers/gpu/drm/xe/xe_gt_printk.h b/drivers/gpu/drm/xe/xe_gt_printk.h
new file mode 100644
index 000000000000..b12a92024126
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_gt_printk.h
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#ifndef _XE_GT_PRINTK_H_
+#define _XE_GT_PRINTK_H_
+
+#include <drm/drm_print.h>

missing blank line

+#include "xe_gt_types.h"
+
+#define gt_printk(_gt, _level, _fmt, ...) \

any exposed interface in headers should have xe_
prefix.

I myself find it odd to have these macros that are wrappers over
wrappers and create a silo with xe-speficic debugging macros.
The DRM ones at least are shared across drivers.  The pr_dbg(), just
reusing a local define is nice as it's still the same call used
everywhere... but it wouldn't work very well here as we need the extra
parm.

I won't oppose them though since a lot of people seem to like the
approach to help their debug and i915 went through similar discussion.

Lucas De Marchi

+	drm_##_level(&(_gt)->xe->drm, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
+
+#define gt_err(_gt, _fmt, ...) \
+	gt_printk((_gt), err, _fmt, ##__VA_ARGS__)
+
+#define gt_warn(_gt, _fmt, ...) \
+	gt_printk((_gt), warn, _fmt, ##__VA_ARGS__)
+
+#define gt_notice(_gt, _fmt, ...) \
+	gt_printk((_gt), notice, _fmt, ##__VA_ARGS__)
+
+#define gt_info(_gt, _fmt, ...) \
+	gt_printk((_gt), info, _fmt, ##__VA_ARGS__)
+
+#define gt_dbg(_gt, _fmt, ...) \
+	gt_printk((_gt), dbg, _fmt, ##__VA_ARGS__)
+
+#define gt_err_ratelimited(_gt, _fmt, ...) \
+	gt_printk((_gt), err_ratelimited, _fmt, ##__VA_ARGS__)
+
+#define gt_WARN(_gt, _condition, _fmt, ...) \
+	drm_WARN(&(_gt)->xe->drm, _condition, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
+
+#define gt_WARN_ONCE(_gt, _condition, _fmt, ...) \
+	drm_WARN_ONCE(&(_gt)->xe->drm, _condition, "GT%u: " _fmt, (_gt)->info.id, ##__VA_ARGS__)
+
+#define gt_WARN_ON(_gt, _condition) \
+	gt_WARN((_gt), _condition, "%s(%s)", "gt_WARN_ON", __stringify(_condition))
+
+#define gt_WARN_ON_ONCE(_gt, _condition) \
+	gt_WARN_ONCE((_gt), _condition, "%s(%s)", "gt_WARN_ON_ONCE", __stringify(_condition))
+
+#endif
--
2.25.1




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux