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

Lucas De Marchi lucas.demarchi at intel.com
Mon Mar 13 16:51:34 UTC 2023


+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 at intel.com>
>---
> 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
>


More information about the dri-devel mailing list