On 31/08/2021 21:21, Jim Cromie wrote:
The gvt component of this driver has ~120 pr_debugs, in 9 categories quite similar to those in DRM. Following the interface model of drm.debug, add a parameter to map bits to these categorizations.
DEFINE_DYNAMIC_DEBUG_CATEGORIES(debug_gvt, __gvt_debug, "dyndbg bitmap desc", { "gvt:cmd: ", "command processing" }, { "gvt:core: ", "core help" }, { "gvt:dpy: ", "display help" }, { "gvt:el: ", "help" }, { "gvt:irq: ", "help" }, { "gvt:mm: ", "help" }, { "gvt:mmio: ", "help" }, { "gvt:render: ", "help" }, { "gvt:sched: " "help" });
The actual patch has a few details different, cmd_help() macro emits the initialization construct.
if CONFIG_DRM_USE_DYNAMIC_DEBUG, then -DDYNAMIC_DEBUG_MODULE is added cflags, by gvt/Makefile.
Signed-off-by: Jim Cromie jim.cromie@gmail.com
v5: . static decl of vector of bit->class descriptors - Emil.V . relocate gvt-makefile chunk from elsewhere v7: . move ccflags addition up to i915/Makefile from i915/gvt
drivers/gpu/drm/i915/Makefile | 4 ++++ drivers/gpu/drm/i915/i915_params.c | 35 ++++++++++++++++++++++++++++++
Can this work if put under gvt/ or at least intel_gvt.h|c?
2 files changed, 39 insertions(+)
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 4f22cac1c49b..5a4e371a3ec2 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -30,6 +30,10 @@ CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
subdir-ccflags-y += -I$(srctree)/$(src)
+#ifdef CONFIG_DRM_USE_DYNAMIC_DEBUG +ccflags-y += -DDYNAMIC_DEBUG_MODULE +#endif
Ignores whether CONFIG_DRM_I915_GVT is enabled or not?
# Please keep these build lists sorted!
# core driver code
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c index e07f4cfea63a..e645e149485e 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c @@ -265,3 +265,38 @@ void i915_params_free(struct i915_params *params) I915_PARAMS_FOR_EACH(FREE); #undef FREE }
+#ifdef CONFIG_DRM_USE_DYNAMIC_DEBUG +/* todo: needs DYNAMIC_DEBUG_MODULE in some cases */
+unsigned long __gvt_debug; +EXPORT_SYMBOL(__gvt_debug);
+#define _help(key) "\t "" key ""\t: help for " key "\n"
+#define I915_GVT_CATEGORIES(name) \
- " Enable debug output via /sys/module/i915/parameters/" #name \
- ", where each bit enables a debug category.\n" \
- _help("gvt:cmd:") \
- _help("gvt:core:") \
- _help("gvt:dpy:") \
- _help("gvt:el:") \
- _help("gvt:irq:") \
- _help("gvt:mm:") \
- _help("gvt:mmio:") \
- _help("gvt:render:") \
- _help("gvt:sched:")
+DEFINE_DYNAMIC_DEBUG_CATEGORIES(debug_gvt, __gvt_debug,
I915_GVT_CATEGORIES(debug_gvt),
_DD_cat_("gvt:cmd:"),
_DD_cat_("gvt:core:"),
_DD_cat_("gvt:dpy:"),
_DD_cat_("gvt:el:"),
_DD_cat_("gvt:irq:"),
_DD_cat_("gvt:mm:"),
_DD_cat_("gvt:mmio:"),
_DD_cat_("gvt:render:"),
_DD_cat_("gvt:sched:"));
+#endif
So just the foundation - no actual use sites I mean? How would these be used from the code?
Regards,
Tvrtko