* [RFC PATCH v2 0/4] Allow using dyndbg to replace drm_debug_enabled @ 2021-07-11 5:49 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:49 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: jbaron, Jim Cromie drm_debug_enabled() is called a lot to do unlikely bit-tests to control debug printing; this is a good job for dynamic-debug, IFF it is built with JUMP_LABEL. Enable the use of dynamic-debug to avoid drm_debug_enabled() overheads, opt in with CONFIG_DRM_USE_DYNAMIC_DEBUG=y. I have this patchset running bare-metal on an i915 laptop & an amdgpu desktop (both as loadable modules). I booted the amdgpu box with: BOOT_IMAGE=(hd2,gpt2)/vmlinuz-5.13.0-dd7-13692-g8def25788f56 \ root=UUID=mumble ro \ rootflags=subvol=root00 rhgb \ dynamic_debug.verbose=3 main.dyndbg=+p \ amdgpu.debug=1 amdgpu.test=1 \ "amdgpu.dyndbg=format ^[ +p" That last line activates ~1700 callsites with a format like '[DML' etc at boot, causing ~76k prdbgs in 409 seconds, before I turned them off with: echo module amdgpu -p > /proc/dynamic_debug/control [root@gandalf jimc]# journalctl -b-0 | grep -P '\[(DML|VBLANK|SURFACE|BIOS|BANDWIDTH)' | wc 68708 578503 5054437 [root@gandalf jimc]# journalctl -b-0 | grep -P '\[(DML|VBLANK|SURFACE|BIOS|BANDWIDTH|\w+)' | wc 76298 661176 6028087 IOW, things appear to hold up under some stress. this is on top of master @ v5.13-13688-gde5540965853 v1 is here: https://lore.kernel.org/lkml/20201204035318.332419-1-jim.cromie@gmail.com/ Jim Cromie (4): drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro drm: fixup comment spelling drm: RFC add choice to use dynamic debug in drm-debug i915: map gvt pr_debug categories to bits in parameters/debug_gvt drivers/gpu/drm/Kconfig | 13 ++++ drivers/gpu/drm/drm_print.c | 75 +++++++++++++++++- drivers/gpu/drm/i915/gvt/Makefile | 4 + drivers/gpu/drm/i915/i915_params.c | 76 ++++++++++++++++++ include/drm/drm_print.h | 119 ++++++++++++++++++++--------- 5 files changed, 249 insertions(+), 38 deletions(-) -- 2.31.1 ^ permalink raw reply [flat|nested] 25+ messages in thread
* [Intel-gfx] [RFC PATCH v2 0/4] Allow using dyndbg to replace drm_debug_enabled @ 2021-07-11 5:49 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:49 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron drm_debug_enabled() is called a lot to do unlikely bit-tests to control debug printing; this is a good job for dynamic-debug, IFF it is built with JUMP_LABEL. Enable the use of dynamic-debug to avoid drm_debug_enabled() overheads, opt in with CONFIG_DRM_USE_DYNAMIC_DEBUG=y. I have this patchset running bare-metal on an i915 laptop & an amdgpu desktop (both as loadable modules). I booted the amdgpu box with: BOOT_IMAGE=(hd2,gpt2)/vmlinuz-5.13.0-dd7-13692-g8def25788f56 \ root=UUID=mumble ro \ rootflags=subvol=root00 rhgb \ dynamic_debug.verbose=3 main.dyndbg=+p \ amdgpu.debug=1 amdgpu.test=1 \ "amdgpu.dyndbg=format ^[ +p" That last line activates ~1700 callsites with a format like '[DML' etc at boot, causing ~76k prdbgs in 409 seconds, before I turned them off with: echo module amdgpu -p > /proc/dynamic_debug/control [root@gandalf jimc]# journalctl -b-0 | grep -P '\[(DML|VBLANK|SURFACE|BIOS|BANDWIDTH)' | wc 68708 578503 5054437 [root@gandalf jimc]# journalctl -b-0 | grep -P '\[(DML|VBLANK|SURFACE|BIOS|BANDWIDTH|\w+)' | wc 76298 661176 6028087 IOW, things appear to hold up under some stress. this is on top of master @ v5.13-13688-gde5540965853 v1 is here: https://lore.kernel.org/lkml/20201204035318.332419-1-jim.cromie@gmail.com/ Jim Cromie (4): drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro drm: fixup comment spelling drm: RFC add choice to use dynamic debug in drm-debug i915: map gvt pr_debug categories to bits in parameters/debug_gvt drivers/gpu/drm/Kconfig | 13 ++++ drivers/gpu/drm/drm_print.c | 75 +++++++++++++++++- drivers/gpu/drm/i915/gvt/Makefile | 4 + drivers/gpu/drm/i915/i915_params.c | 76 ++++++++++++++++++ include/drm/drm_print.h | 119 ++++++++++++++++++++--------- 5 files changed, 249 insertions(+), 38 deletions(-) -- 2.31.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 25+ messages in thread
* [RFC PATCH v2 0/4] Allow using dyndbg to replace drm_debug_enabled @ 2021-07-11 5:49 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:49 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron drm_debug_enabled() is called a lot to do unlikely bit-tests to control debug printing; this is a good job for dynamic-debug, IFF it is built with JUMP_LABEL. Enable the use of dynamic-debug to avoid drm_debug_enabled() overheads, opt in with CONFIG_DRM_USE_DYNAMIC_DEBUG=y. I have this patchset running bare-metal on an i915 laptop & an amdgpu desktop (both as loadable modules). I booted the amdgpu box with: BOOT_IMAGE=(hd2,gpt2)/vmlinuz-5.13.0-dd7-13692-g8def25788f56 \ root=UUID=mumble ro \ rootflags=subvol=root00 rhgb \ dynamic_debug.verbose=3 main.dyndbg=+p \ amdgpu.debug=1 amdgpu.test=1 \ "amdgpu.dyndbg=format ^[ +p" That last line activates ~1700 callsites with a format like '[DML' etc at boot, causing ~76k prdbgs in 409 seconds, before I turned them off with: echo module amdgpu -p > /proc/dynamic_debug/control [root@gandalf jimc]# journalctl -b-0 | grep -P '\[(DML|VBLANK|SURFACE|BIOS|BANDWIDTH)' | wc 68708 578503 5054437 [root@gandalf jimc]# journalctl -b-0 | grep -P '\[(DML|VBLANK|SURFACE|BIOS|BANDWIDTH|\w+)' | wc 76298 661176 6028087 IOW, things appear to hold up under some stress. this is on top of master @ v5.13-13688-gde5540965853 v1 is here: https://lore.kernel.org/lkml/20201204035318.332419-1-jim.cromie@gmail.com/ Jim Cromie (4): drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro drm: fixup comment spelling drm: RFC add choice to use dynamic debug in drm-debug i915: map gvt pr_debug categories to bits in parameters/debug_gvt drivers/gpu/drm/Kconfig | 13 ++++ drivers/gpu/drm/drm_print.c | 75 +++++++++++++++++- drivers/gpu/drm/i915/gvt/Makefile | 4 + drivers/gpu/drm/i915/i915_params.c | 76 ++++++++++++++++++ include/drm/drm_print.h | 119 ++++++++++++++++++++--------- 5 files changed, 249 insertions(+), 38 deletions(-) -- 2.31.1 ^ permalink raw reply [flat|nested] 25+ messages in thread
* [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro 2021-07-11 5:49 ` Jim Cromie (?) @ 2021-07-11 5:49 ` Jim Cromie -1 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:49 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: jbaron, Jim Cromie whitespace only, to diff-minimize a later commit. no functional changes --- include/drm/drm_print.h | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 9b66be54dd16..6419b4e7c5dc 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); #define DRM_DEBUG_DP(fmt, ...) \ __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ -({ \ - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ - const struct drm_device *drm_ = (drm); \ - \ - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ +({ \ + static DEFINE_RATELIMIT_STATE(rs_, \ + DEFAULT_RATELIMIT_INTERVAL, \ + DEFAULT_RATELIMIT_BURST); \ + const struct drm_device *drm_ = (drm); \ + \ + if (drm_debug_enabled(DRM_UT_ ## category) \ + && __ratelimit(&rs_)) \ + drm_dev_printk(drm_ ? drm_->dev : NULL, \ + KERN_DEBUG, fmt, ## __VA_ARGS__); \ }) #define drm_dbg_kms_ratelimited(drm, fmt, ...) \ __DRM_DEFINE_DBG_RATELIMITED(KMS, drm, fmt, ## __VA_ARGS__) -#define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) +#define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) \ + drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) /* * struct drm_device based WARNs -- 2.31.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [Intel-gfx] [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro @ 2021-07-11 5:49 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:49 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron whitespace only, to diff-minimize a later commit. no functional changes --- include/drm/drm_print.h | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 9b66be54dd16..6419b4e7c5dc 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); #define DRM_DEBUG_DP(fmt, ...) \ __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ -({ \ - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ - const struct drm_device *drm_ = (drm); \ - \ - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ +({ \ + static DEFINE_RATELIMIT_STATE(rs_, \ + DEFAULT_RATELIMIT_INTERVAL, \ + DEFAULT_RATELIMIT_BURST); \ + const struct drm_device *drm_ = (drm); \ + \ + if (drm_debug_enabled(DRM_UT_ ## category) \ + && __ratelimit(&rs_)) \ + drm_dev_printk(drm_ ? drm_->dev : NULL, \ + KERN_DEBUG, fmt, ## __VA_ARGS__); \ }) #define drm_dbg_kms_ratelimited(drm, fmt, ...) \ __DRM_DEFINE_DBG_RATELIMITED(KMS, drm, fmt, ## __VA_ARGS__) -#define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) +#define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) \ + drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) /* * struct drm_device based WARNs -- 2.31.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro @ 2021-07-11 5:49 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:49 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron whitespace only, to diff-minimize a later commit. no functional changes --- include/drm/drm_print.h | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 9b66be54dd16..6419b4e7c5dc 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); #define DRM_DEBUG_DP(fmt, ...) \ __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ -({ \ - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ - const struct drm_device *drm_ = (drm); \ - \ - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ +({ \ + static DEFINE_RATELIMIT_STATE(rs_, \ + DEFAULT_RATELIMIT_INTERVAL, \ + DEFAULT_RATELIMIT_BURST); \ + const struct drm_device *drm_ = (drm); \ + \ + if (drm_debug_enabled(DRM_UT_ ## category) \ + && __ratelimit(&rs_)) \ + drm_dev_printk(drm_ ? drm_->dev : NULL, \ + KERN_DEBUG, fmt, ## __VA_ARGS__); \ }) #define drm_dbg_kms_ratelimited(drm, fmt, ...) \ __DRM_DEFINE_DBG_RATELIMITED(KMS, drm, fmt, ## __VA_ARGS__) -#define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) +#define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) \ + drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) /* * struct drm_device based WARNs -- 2.31.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro 2021-07-11 5:49 ` Jim Cromie (?) @ 2021-07-11 16:17 ` Joe Perches -1 siblings, 0 replies; 25+ messages in thread From: Joe Perches @ 2021-07-11 16:17 UTC (permalink / raw) To: Jim Cromie, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: jbaron On Sat, 2021-07-10 at 23:49 -0600, Jim Cromie wrote: > whitespace only, to diff-minimize a later commit. > no functional changes [] > diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h [] > @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); > #define DRM_DEBUG_DP(fmt, ...) \ > __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) > > > -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > -({ \ > - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ > - const struct drm_device *drm_ = (drm); \ > - \ > - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ > - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ > +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > +({ \ > + static DEFINE_RATELIMIT_STATE(rs_, \ > + DEFAULT_RATELIMIT_INTERVAL, \ > + DEFAULT_RATELIMIT_BURST); \ > + const struct drm_device *drm_ = (drm); \ > + \ > + if (drm_debug_enabled(DRM_UT_ ## category) \ > + && __ratelimit(&rs_)) \ Though I don't really see the need for the change, the typical style has the logical continuation at the end of the test. if (drm_debug_enabled(DRM_UT_ ## category) && \ __ratelimit(&rs_)) \ ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [Intel-gfx] [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro @ 2021-07-11 16:17 ` Joe Perches 0 siblings, 0 replies; 25+ messages in thread From: Joe Perches @ 2021-07-11 16:17 UTC (permalink / raw) To: Jim Cromie, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: jbaron On Sat, 2021-07-10 at 23:49 -0600, Jim Cromie wrote: > whitespace only, to diff-minimize a later commit. > no functional changes [] > diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h [] > @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); > #define DRM_DEBUG_DP(fmt, ...) \ > __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) > > > -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > -({ \ > - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ > - const struct drm_device *drm_ = (drm); \ > - \ > - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ > - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ > +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > +({ \ > + static DEFINE_RATELIMIT_STATE(rs_, \ > + DEFAULT_RATELIMIT_INTERVAL, \ > + DEFAULT_RATELIMIT_BURST); \ > + const struct drm_device *drm_ = (drm); \ > + \ > + if (drm_debug_enabled(DRM_UT_ ## category) \ > + && __ratelimit(&rs_)) \ Though I don't really see the need for the change, the typical style has the logical continuation at the end of the test. if (drm_debug_enabled(DRM_UT_ ## category) && \ __ratelimit(&rs_)) \ _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro @ 2021-07-11 16:17 ` Joe Perches 0 siblings, 0 replies; 25+ messages in thread From: Joe Perches @ 2021-07-11 16:17 UTC (permalink / raw) To: Jim Cromie, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: jbaron On Sat, 2021-07-10 at 23:49 -0600, Jim Cromie wrote: > whitespace only, to diff-minimize a later commit. > no functional changes [] > diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h [] > @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); > #define DRM_DEBUG_DP(fmt, ...) \ > __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) > > > -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > -({ \ > - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ > - const struct drm_device *drm_ = (drm); \ > - \ > - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ > - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ > +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > +({ \ > + static DEFINE_RATELIMIT_STATE(rs_, \ > + DEFAULT_RATELIMIT_INTERVAL, \ > + DEFAULT_RATELIMIT_BURST); \ > + const struct drm_device *drm_ = (drm); \ > + \ > + if (drm_debug_enabled(DRM_UT_ ## category) \ > + && __ratelimit(&rs_)) \ Though I don't really see the need for the change, the typical style has the logical continuation at the end of the test. if (drm_debug_enabled(DRM_UT_ ## category) && \ __ratelimit(&rs_)) \ ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro 2021-07-11 16:17 ` Joe Perches (?) @ 2021-07-13 1:38 ` jim.cromie -1 siblings, 0 replies; 25+ messages in thread From: jim.cromie @ 2021-07-13 1:38 UTC (permalink / raw) To: Joe Perches Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, LKML, intel-gvt-dev, intel-gfx, Jason Baron On Sun, Jul 11, 2021 at 10:17 AM Joe Perches <joe@perches.com> wrote: > > On Sat, 2021-07-10 at 23:49 -0600, Jim Cromie wrote: > > whitespace only, to diff-minimize a later commit. > > no functional changes > [] > > diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h > [] > > @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); > > #define DRM_DEBUG_DP(fmt, ...) \ > > __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) > > > > > > -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > > -({ \ > > - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ > > - const struct drm_device *drm_ = (drm); \ > > - \ > > - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ > > - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ > > +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > > +({ \ > > + static DEFINE_RATELIMIT_STATE(rs_, \ > > + DEFAULT_RATELIMIT_INTERVAL, \ > > + DEFAULT_RATELIMIT_BURST); \ > > + const struct drm_device *drm_ = (drm); \ > > + \ > > + if (drm_debug_enabled(DRM_UT_ ## category) \ > > + && __ratelimit(&rs_)) \ > > Though I don't really see the need for the change, the typical style > has the logical continuation at the end of the test. > yes I caught that late, old habit, hard to break. That if-statement is altered as part of HEAD+2 drm: RFC add choice to use dynamic debug in drm-debug which replaces drm_dev_printk with drm_dev_dbg (which calls pr_debug in DRM_USE_DYNAMIC_DEBUG) > if (drm_debug_enabled(DRM_UT_ ## category) && \ > __ratelimit(&rs_)) \ > > ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [Intel-gfx] [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro @ 2021-07-13 1:38 ` jim.cromie 0 siblings, 0 replies; 25+ messages in thread From: jim.cromie @ 2021-07-13 1:38 UTC (permalink / raw) To: Joe Perches Cc: Thomas Zimmermann, David Airlie, dri-devel, LKML, Jason Baron, Maxime Ripard, intel-gvt-dev, intel-gfx On Sun, Jul 11, 2021 at 10:17 AM Joe Perches <joe@perches.com> wrote: > > On Sat, 2021-07-10 at 23:49 -0600, Jim Cromie wrote: > > whitespace only, to diff-minimize a later commit. > > no functional changes > [] > > diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h > [] > > @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); > > #define DRM_DEBUG_DP(fmt, ...) \ > > __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) > > > > > > -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > > -({ \ > > - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ > > - const struct drm_device *drm_ = (drm); \ > > - \ > > - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ > > - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ > > +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > > +({ \ > > + static DEFINE_RATELIMIT_STATE(rs_, \ > > + DEFAULT_RATELIMIT_INTERVAL, \ > > + DEFAULT_RATELIMIT_BURST); \ > > + const struct drm_device *drm_ = (drm); \ > > + \ > > + if (drm_debug_enabled(DRM_UT_ ## category) \ > > + && __ratelimit(&rs_)) \ > > Though I don't really see the need for the change, the typical style > has the logical continuation at the end of the test. > yes I caught that late, old habit, hard to break. That if-statement is altered as part of HEAD+2 drm: RFC add choice to use dynamic debug in drm-debug which replaces drm_dev_printk with drm_dev_dbg (which calls pr_debug in DRM_USE_DYNAMIC_DEBUG) > if (drm_debug_enabled(DRM_UT_ ## category) && \ > __ratelimit(&rs_)) \ > > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro @ 2021-07-13 1:38 ` jim.cromie 0 siblings, 0 replies; 25+ messages in thread From: jim.cromie @ 2021-07-13 1:38 UTC (permalink / raw) To: Joe Perches Cc: Thomas Zimmermann, David Airlie, dri-devel, LKML, Jason Baron, Rodrigo Vivi, intel-gvt-dev, intel-gfx, Zhi Wang On Sun, Jul 11, 2021 at 10:17 AM Joe Perches <joe@perches.com> wrote: > > On Sat, 2021-07-10 at 23:49 -0600, Jim Cromie wrote: > > whitespace only, to diff-minimize a later commit. > > no functional changes > [] > > diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h > [] > > @@ -524,19 +524,24 @@ void __drm_err(const char *format, ...); > > #define DRM_DEBUG_DP(fmt, ...) \ > > __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) > > > > > > -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > > -({ \ > > - static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\ > > - const struct drm_device *drm_ = (drm); \ > > - \ > > - if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \ > > - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## __VA_ARGS__); \ > > +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ > > +({ \ > > + static DEFINE_RATELIMIT_STATE(rs_, \ > > + DEFAULT_RATELIMIT_INTERVAL, \ > > + DEFAULT_RATELIMIT_BURST); \ > > + const struct drm_device *drm_ = (drm); \ > > + \ > > + if (drm_debug_enabled(DRM_UT_ ## category) \ > > + && __ratelimit(&rs_)) \ > > Though I don't really see the need for the change, the typical style > has the logical continuation at the end of the test. > yes I caught that late, old habit, hard to break. That if-statement is altered as part of HEAD+2 drm: RFC add choice to use dynamic debug in drm-debug which replaces drm_dev_printk with drm_dev_dbg (which calls pr_debug in DRM_USE_DYNAMIC_DEBUG) > if (drm_debug_enabled(DRM_UT_ ## category) && \ > __ratelimit(&rs_)) \ > > ^ permalink raw reply [flat|nested] 25+ messages in thread
* [RFC PATCH v2 2/4] drm: fixup comment spelling 2021-07-11 5:49 ` Jim Cromie (?) @ 2021-07-11 5:50 ` Jim Cromie -1 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: jbaron, Jim Cromie s/prink/printk/ - no functional changes --- include/drm/drm_print.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 6419b4e7c5dc..4559583bc88b 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -327,7 +327,7 @@ static inline bool drm_debug_enabled(enum drm_debug_category category) /* * struct device based logging * - * Prefer drm_device based logging over device or prink based logging. + * Prefer drm_device based logging over device or printk based logging. */ __printf(3, 4) -- 2.31.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [Intel-gfx] [RFC PATCH v2 2/4] drm: fixup comment spelling @ 2021-07-11 5:50 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron s/prink/printk/ - no functional changes --- include/drm/drm_print.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 6419b4e7c5dc..4559583bc88b 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -327,7 +327,7 @@ static inline bool drm_debug_enabled(enum drm_debug_category category) /* * struct device based logging * - * Prefer drm_device based logging over device or prink based logging. + * Prefer drm_device based logging over device or printk based logging. */ __printf(3, 4) -- 2.31.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [RFC PATCH v2 2/4] drm: fixup comment spelling @ 2021-07-11 5:50 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron s/prink/printk/ - no functional changes --- include/drm/drm_print.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 6419b4e7c5dc..4559583bc88b 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -327,7 +327,7 @@ static inline bool drm_debug_enabled(enum drm_debug_category category) /* * struct device based logging * - * Prefer drm_device based logging over device or prink based logging. + * Prefer drm_device based logging over device or printk based logging. */ __printf(3, 4) -- 2.31.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [RFC PATCH v2 3/4] drm: RFC add choice to use dynamic debug in drm-debug 2021-07-11 5:49 ` Jim Cromie (?) @ 2021-07-11 5:50 ` Jim Cromie -1 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: jbaron, Jim Cromie drm's debug system uses distinct categories of debug messages, encoded in an enum (DRM_UT_<CATEGORY>), which are mapped to bits in drm.debug. drm_debug_enabled() does a lot of unlikely bit-mask checks on drm.debug; we can use dynamic debug instead, and get all that static_key/jump_label goodness. Dynamic debug has no concept of category, but we can map the DRM_UT_* to a set of distinct prefixes; "drm:core:", "drm:kms:" etc, and prepend them to the given formats. Then we can use `echo module drm format ^drm:core: > control` to select the whole category with one query. This new prefix changes pr_debug's output, so is user visible, but it seems unlikely to cause trouble for log watchers; they're not relying on the absence of class prefix strings. This conversion yields ~2100 new callsites on my i7 laptop: dyndbg: 195 debug prints in module drm_kms_helper dyndbg: 298 debug prints in module drm dyndbg: 1630 debug prints in module i915 CONFIG_DRM_USE_DYNAMIC_DEBUG enables this, and is available if CONFIG_DYNAMIC_DEBUG or CONFIG_DYNAMIC_DEBUG_CORE is chosen, and if CONFIG_JUMP_LABEL is enabled; this because its required to get the promised optimizations. The indirection/switchover is layered into the macro scheme: 0.A new callback on drm.debug which calls dynamic_debug_exec_queries to map those bits to specific query/commands dynamic_debug_exec_queries("format ^drm:kms: +p", "drm*"); here for POC, this should be in dynamic_debug.c with a MODULE_PARAM_DEBUG_BITMAP(__drm_debug, { "prefix-1", "desc-1" }+) 1.A "converted" or "classy" DRM_UT_* map based on: DRM_UT_* ( symbol => bit-mask ) named it: cDRM_UT_* ( symbol => format-class-prefix-string ) So cDRM_UT_* is either: legacy: cDRM_UT_* <-- DRM_UT_* ( !CONFIG_DRM_USE_DYNAMIC_DEBUG ) enabled: #define cDRM_UT_KMS "drm:kms: " #define cDRM_UT_PRIME "drm:prime: " #define cDRM_UT_ATOMIC "drm:atomic: " DRM_UT_* are unchanged, since theyre used in drm_debug_enabled() and elsewhere. 2.drm_dev_dbg & drm_debug are renamed (prefixed with '_') old names are now macros, calling either: legacy: -> to renamed fn enabled: -> dev_dbg & pr_debug, with cDRM-prefix prepended format. 3.names in (2) are called from DRM_DEBUG_<Category> and drm_dbg_<Category>. all these macros get "converted" to use cDRM_UT_*, to get right token type. 4.simplification of __DRM_DEFINE_DBG_RATELIMITED macro pass both DRM_UT & cDRM_UT, for drm_debug_enabled & drm_dev_dbg remove DRM_UT_ ## KMS Also reuse gist of: commit 7911902129a8 ("drm/print: Handle potentially NULL drm_devices in drm_dbg_*) --- drivers/gpu/drm/Kconfig | 13 +++++ drivers/gpu/drm/drm_print.c | 75 ++++++++++++++++++++++++-- include/drm/drm_print.h | 104 ++++++++++++++++++++++++++---------- 3 files changed, 159 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..e4524ccba040 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -57,6 +57,19 @@ config DRM_DEBUG_MM If in doubt, say "N". +config DRM_USE_DYNAMIC_DEBUG + bool "use dynamic debug to implement drm.debug" + default n + depends on DRM + depends on DYNAMIC_DEBUG || DYNAMIC_DEBUG_CORE + depends on JUMP_LABEL + help + The drm debug category facility does a lot of unlikely bit-field + tests at runtime; while cheap individually, the cost accumulates. + This option uses dynamic debug facility (if configured and + using jump_label) to avoid those runtime checks, patching + the kernel when those debugs are desired. + config DRM_DEBUG_SELFTEST tristate "kselftests for DRM" depends on DRM diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c index 111b932cf2a9..e2acdfc7088b 100644 --- a/drivers/gpu/drm/drm_print.c +++ b/drivers/gpu/drm/drm_print.c @@ -52,8 +52,75 @@ MODULE_PARM_DESC(debug, "Enable debug output, where each bit enables a debug cat "\t\tBit 5 (0x20) will enable VBL messages (vblank code)\n" "\t\tBit 7 (0x80) will enable LEASE messages (leasing code)\n" "\t\tBit 8 (0x100) will enable DP messages (displayport code)"); + +#ifndef CONFIG_DRM_USE_DYNAMIC_DEBUG module_param_named(debug, __drm_debug, int, 0600); +#else +static char *format_class_prefixes[] = { + cDRM_UT_CORE, + cDRM_UT_DRIVER, + cDRM_UT_KMS, + cDRM_UT_PRIME, + cDRM_UT_ATOMIC, + cDRM_UT_VBL, + cDRM_UT_STATE, + cDRM_UT_LEASE, + cDRM_UT_DP, + cDRM_UT_DRMRES +}; + +#define OUR_QUERY_SIZE 64 /* > strlen "format '^%s' %cp" + longest prefix */ + +static int param_set_dyndbg(const char *instr, const struct kernel_param *kp) +{ + unsigned int val; + unsigned long changes, result; + int rc, chgct = 0, totct = 0, bitpos; + char query[OUR_QUERY_SIZE]; + + rc = kstrtouint(instr, 0, &val); + if (rc) { + pr_err("%s: failed\n", __func__); + return -EINVAL; + } + result = val; + changes = result ^ __drm_debug; + + pr_debug("changes:0x%lx from result:0x%lx\n", changes, result); + + for_each_set_bit(bitpos, &changes, ARRAY_SIZE(format_class_prefixes)) { + + sprintf(query, "format '^%s' %cp", format_class_prefixes[bitpos], + test_bit(bitpos, &result) ? '+' : '-'); + + chgct = dynamic_debug_exec_queries(query, "drm*"); + if (chgct < 0) { + pr_err("%s: exec err:%d on: %s\n", __func__, chgct, query); + continue; + } + pr_debug("change ct:%d on %s\n", chgct, query); + totct += chgct; + } + pr_debug("total changes: %d\n", totct); + __drm_debug = result; + return 0; +} + +static int param_get_dyndbg(char *buffer, const struct kernel_param *kp) +{ + pr_debug("debug-val:0x%x %u\n", __drm_debug, *((unsigned int *)kp->arg)); + return scnprintf(buffer, PAGE_SIZE, "%u\n", + *((unsigned int *)kp->arg)); +} +static const struct kernel_param_ops param_ops_debug = { + .set = param_set_dyndbg, + .get = param_get_dyndbg, +}; +module_param_cb(debug, ¶m_ops_debug, &__drm_debug, 0644); + +#endif /* CONFIG_DRM_USE_DYNAMIC_DEBUG */ + void __drm_puts_coredump(struct drm_printer *p, const char *str) { struct drm_print_iterator *iterator = p->arg; @@ -256,7 +323,7 @@ void drm_dev_printk(const struct device *dev, const char *level, } EXPORT_SYMBOL(drm_dev_printk); -void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, +void _drm_dev_dbg(const struct device *dev, enum drm_debug_category category, const char *format, ...) { struct va_format vaf; @@ -278,9 +345,9 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, va_end(args); } -EXPORT_SYMBOL(drm_dev_dbg); +EXPORT_SYMBOL(_drm_dev_dbg); -void __drm_dbg(enum drm_debug_category category, const char *format, ...) +void ___drm_dbg(enum drm_debug_category category, const char *format, ...) { struct va_format vaf; va_list args; @@ -297,7 +364,7 @@ void __drm_dbg(enum drm_debug_category category, const char *format, ...) va_end(args); } -EXPORT_SYMBOL(__drm_dbg); +EXPORT_SYMBOL(___drm_dbg); void __drm_err(const char *format, ...) { diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 4559583bc88b..63dd469d1c68 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -31,6 +31,7 @@ #include <linux/seq_file.h> #include <linux/device.h> #include <linux/debugfs.h> +#include <linux/dynamic_debug.h> #include <drm/drm.h> @@ -319,6 +320,51 @@ enum drm_debug_category { DRM_UT_DRMRES = 0x200, }; +#if !defined(CONFIG_DRM_USE_DYNAMIC_DEBUG) + +/* Use legacy drm-debug functions, and drm_debug_enabled(). + * For cDRM_UT_* (converted category), identity map to DRM_UT_* + */ +#define __drm_dbg(cls, fmt, ...) \ + ___drm_dbg(cls, fmt, ##__VA_ARGS__) +#define drm_dev_dbg(dev, cls, fmt, ...) \ + _drm_dev_dbg(dev, cls, fmt, ##__VA_ARGS__) + +#define cDRM_UT_CORE DRM_UT_CORE +#define cDRM_UT_DRIVER DRM_UT_DRIVER +#define cDRM_UT_KMS DRM_UT_KMS +#define cDRM_UT_PRIME DRM_UT_PRIME +#define cDRM_UT_ATOMIC DRM_UT_ATOMIC +#define cDRM_UT_VBL DRM_UT_VBL +#define cDRM_UT_STATE DRM_UT_STATE +#define cDRM_UT_LEASE DRM_UT_LEASE +#define cDRM_UT_DP DRM_UT_DP +#define cDRM_UT_DRMRES DRM_UT_DRMRES + +#else /* !CONFIG_DRM_USE_DYNAMIC_DEBUG */ + +/* use dynamic_debug to avoid drm_debug_enabled(). + * dyndbg has no category, so we prefix the format with a "class" + * string; cDRM_UT_* maps to those class strings + */ +#define __drm_dbg(cls, fmt, ...) \ + pr_debug(cls # fmt, ##__VA_ARGS__) +#define drm_dev_dbg(dev, cls, fmt, ...) \ + dev_dbg(dev, cls # fmt, ##__VA_ARGS__) + +#define cDRM_UT_CORE "drm:core: " +#define cDRM_UT_DRIVER "drm:drvr: " +#define cDRM_UT_KMS "drm:kms: " +#define cDRM_UT_PRIME "drm:prime: " +#define cDRM_UT_ATOMIC "drm:atomic: " +#define cDRM_UT_VBL "drm:vbl: " +#define cDRM_UT_STATE "drm:state: " +#define cDRM_UT_LEASE "drm:lease: " +#define cDRM_UT_DP "drm:dp: " +#define cDRM_UT_DRMRES "drm:res " + +#endif /* !CONFIG_DRM_USE_DYNAMIC_DEBUG */ + static inline bool drm_debug_enabled(enum drm_debug_category category) { return unlikely(__drm_debug & category); @@ -334,7 +380,7 @@ __printf(3, 4) void drm_dev_printk(const struct device *dev, const char *level, const char *format, ...); __printf(3, 4) -void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, +void _drm_dev_dbg(const struct device *dev, enum drm_debug_category category, const char *format, ...); /** @@ -383,7 +429,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_CORE, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_CORE, fmt, ##__VA_ARGS__) /** * DRM_DEV_DEBUG_DRIVER() - Debug output for vendor specific part of the driver * @@ -391,7 +437,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG_DRIVER(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) /** * DRM_DEV_DEBUG_KMS() - Debug output for modesetting code * @@ -399,7 +445,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG_KMS(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_KMS, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_KMS, fmt, ##__VA_ARGS__) /* * struct drm_device based logging @@ -443,25 +489,25 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, #define drm_dbg_core(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_CORE, fmt, ##__VA_ARGS__) #define drm_dbg(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) #define drm_dbg_kms(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_KMS, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_KMS, fmt, ##__VA_ARGS__) #define drm_dbg_prime(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_PRIME, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_PRIME, fmt, ##__VA_ARGS__) #define drm_dbg_atomic(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_ATOMIC, fmt, ##__VA_ARGS__) #define drm_dbg_vbl(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_VBL, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_VBL, fmt, ##__VA_ARGS__) #define drm_dbg_state(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_STATE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_STATE, fmt, ##__VA_ARGS__) #define drm_dbg_lease(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_LEASE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_LEASE, fmt, ##__VA_ARGS__) #define drm_dbg_dp(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DP, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DP, fmt, ##__VA_ARGS__) #define drm_dbg_drmres(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRMRES, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DRMRES, fmt, ##__VA_ARGS__) /* @@ -471,7 +517,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, */ __printf(2, 3) -void __drm_dbg(enum drm_debug_category category, const char *format, ...); +void ___drm_dbg(enum drm_debug_category category, const char *format, ...); __printf(1, 2) void __drm_err(const char *format, ...); @@ -500,45 +546,45 @@ void __drm_err(const char *format, ...); #define DRM_ERROR_RATELIMITED(fmt, ...) \ DRM_DEV_ERROR_RATELIMITED(NULL, fmt, ##__VA_ARGS__) + #define DRM_DEBUG(fmt, ...) \ - __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_CORE, fmt, ##__VA_ARGS__) #define DRM_DEBUG_DRIVER(fmt, ...) \ - __drm_dbg(DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) #define DRM_DEBUG_KMS(fmt, ...) \ - __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_KMS, fmt, ##__VA_ARGS__) #define DRM_DEBUG_PRIME(fmt, ...) \ - __drm_dbg(DRM_UT_PRIME, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_PRIME, fmt, ##__VA_ARGS__) #define DRM_DEBUG_ATOMIC(fmt, ...) \ - __drm_dbg(DRM_UT_ATOMIC, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_ATOMIC, fmt, ##__VA_ARGS__) #define DRM_DEBUG_VBL(fmt, ...) \ - __drm_dbg(DRM_UT_VBL, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_VBL, fmt, ##__VA_ARGS__) #define DRM_DEBUG_LEASE(fmt, ...) \ - __drm_dbg(DRM_UT_LEASE, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_LEASE, fmt, ##__VA_ARGS__) #define DRM_DEBUG_DP(fmt, ...) \ - __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) + __drm_dbg(cDRM_UT_DP, fmt, ## __VA_ARGS__) -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ +#define __DRM_DEFINE_DBG_RATELIMITED(cat_legacy, cat_class, drm, fmt, ...)\ ({ \ static DEFINE_RATELIMIT_STATE(rs_, \ DEFAULT_RATELIMIT_INTERVAL, \ DEFAULT_RATELIMIT_BURST); \ const struct drm_device *drm_ = (drm); \ \ - if (drm_debug_enabled(DRM_UT_ ## category) \ - && __ratelimit(&rs_)) \ - drm_dev_printk(drm_ ? drm_->dev : NULL, \ - KERN_DEBUG, fmt, ## __VA_ARGS__); \ + if (drm_debug_enabled(cat_legacy) && __ratelimit(&rs_)) \ + drm_dev_dbg((drm_) ? (drm_)->dev : NULL, \ + cat_class, fmt, ##__VA_ARGS__); \ }) #define drm_dbg_kms_ratelimited(drm, fmt, ...) \ - __DRM_DEFINE_DBG_RATELIMITED(KMS, drm, fmt, ## __VA_ARGS__) + __DRM_DEFINE_DBG_RATELIMITED(DRM_UT_KMS, cDRM_UT_KMS, drm, fmt, ## __VA_ARGS__) #define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) \ drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) -- 2.31.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [Intel-gfx] [RFC PATCH v2 3/4] drm: RFC add choice to use dynamic debug in drm-debug @ 2021-07-11 5:50 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron drm's debug system uses distinct categories of debug messages, encoded in an enum (DRM_UT_<CATEGORY>), which are mapped to bits in drm.debug. drm_debug_enabled() does a lot of unlikely bit-mask checks on drm.debug; we can use dynamic debug instead, and get all that static_key/jump_label goodness. Dynamic debug has no concept of category, but we can map the DRM_UT_* to a set of distinct prefixes; "drm:core:", "drm:kms:" etc, and prepend them to the given formats. Then we can use `echo module drm format ^drm:core: > control` to select the whole category with one query. This new prefix changes pr_debug's output, so is user visible, but it seems unlikely to cause trouble for log watchers; they're not relying on the absence of class prefix strings. This conversion yields ~2100 new callsites on my i7 laptop: dyndbg: 195 debug prints in module drm_kms_helper dyndbg: 298 debug prints in module drm dyndbg: 1630 debug prints in module i915 CONFIG_DRM_USE_DYNAMIC_DEBUG enables this, and is available if CONFIG_DYNAMIC_DEBUG or CONFIG_DYNAMIC_DEBUG_CORE is chosen, and if CONFIG_JUMP_LABEL is enabled; this because its required to get the promised optimizations. The indirection/switchover is layered into the macro scheme: 0.A new callback on drm.debug which calls dynamic_debug_exec_queries to map those bits to specific query/commands dynamic_debug_exec_queries("format ^drm:kms: +p", "drm*"); here for POC, this should be in dynamic_debug.c with a MODULE_PARAM_DEBUG_BITMAP(__drm_debug, { "prefix-1", "desc-1" }+) 1.A "converted" or "classy" DRM_UT_* map based on: DRM_UT_* ( symbol => bit-mask ) named it: cDRM_UT_* ( symbol => format-class-prefix-string ) So cDRM_UT_* is either: legacy: cDRM_UT_* <-- DRM_UT_* ( !CONFIG_DRM_USE_DYNAMIC_DEBUG ) enabled: #define cDRM_UT_KMS "drm:kms: " #define cDRM_UT_PRIME "drm:prime: " #define cDRM_UT_ATOMIC "drm:atomic: " DRM_UT_* are unchanged, since theyre used in drm_debug_enabled() and elsewhere. 2.drm_dev_dbg & drm_debug are renamed (prefixed with '_') old names are now macros, calling either: legacy: -> to renamed fn enabled: -> dev_dbg & pr_debug, with cDRM-prefix prepended format. 3.names in (2) are called from DRM_DEBUG_<Category> and drm_dbg_<Category>. all these macros get "converted" to use cDRM_UT_*, to get right token type. 4.simplification of __DRM_DEFINE_DBG_RATELIMITED macro pass both DRM_UT & cDRM_UT, for drm_debug_enabled & drm_dev_dbg remove DRM_UT_ ## KMS Also reuse gist of: commit 7911902129a8 ("drm/print: Handle potentially NULL drm_devices in drm_dbg_*) --- drivers/gpu/drm/Kconfig | 13 +++++ drivers/gpu/drm/drm_print.c | 75 ++++++++++++++++++++++++-- include/drm/drm_print.h | 104 ++++++++++++++++++++++++++---------- 3 files changed, 159 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..e4524ccba040 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -57,6 +57,19 @@ config DRM_DEBUG_MM If in doubt, say "N". +config DRM_USE_DYNAMIC_DEBUG + bool "use dynamic debug to implement drm.debug" + default n + depends on DRM + depends on DYNAMIC_DEBUG || DYNAMIC_DEBUG_CORE + depends on JUMP_LABEL + help + The drm debug category facility does a lot of unlikely bit-field + tests at runtime; while cheap individually, the cost accumulates. + This option uses dynamic debug facility (if configured and + using jump_label) to avoid those runtime checks, patching + the kernel when those debugs are desired. + config DRM_DEBUG_SELFTEST tristate "kselftests for DRM" depends on DRM diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c index 111b932cf2a9..e2acdfc7088b 100644 --- a/drivers/gpu/drm/drm_print.c +++ b/drivers/gpu/drm/drm_print.c @@ -52,8 +52,75 @@ MODULE_PARM_DESC(debug, "Enable debug output, where each bit enables a debug cat "\t\tBit 5 (0x20) will enable VBL messages (vblank code)\n" "\t\tBit 7 (0x80) will enable LEASE messages (leasing code)\n" "\t\tBit 8 (0x100) will enable DP messages (displayport code)"); + +#ifndef CONFIG_DRM_USE_DYNAMIC_DEBUG module_param_named(debug, __drm_debug, int, 0600); +#else +static char *format_class_prefixes[] = { + cDRM_UT_CORE, + cDRM_UT_DRIVER, + cDRM_UT_KMS, + cDRM_UT_PRIME, + cDRM_UT_ATOMIC, + cDRM_UT_VBL, + cDRM_UT_STATE, + cDRM_UT_LEASE, + cDRM_UT_DP, + cDRM_UT_DRMRES +}; + +#define OUR_QUERY_SIZE 64 /* > strlen "format '^%s' %cp" + longest prefix */ + +static int param_set_dyndbg(const char *instr, const struct kernel_param *kp) +{ + unsigned int val; + unsigned long changes, result; + int rc, chgct = 0, totct = 0, bitpos; + char query[OUR_QUERY_SIZE]; + + rc = kstrtouint(instr, 0, &val); + if (rc) { + pr_err("%s: failed\n", __func__); + return -EINVAL; + } + result = val; + changes = result ^ __drm_debug; + + pr_debug("changes:0x%lx from result:0x%lx\n", changes, result); + + for_each_set_bit(bitpos, &changes, ARRAY_SIZE(format_class_prefixes)) { + + sprintf(query, "format '^%s' %cp", format_class_prefixes[bitpos], + test_bit(bitpos, &result) ? '+' : '-'); + + chgct = dynamic_debug_exec_queries(query, "drm*"); + if (chgct < 0) { + pr_err("%s: exec err:%d on: %s\n", __func__, chgct, query); + continue; + } + pr_debug("change ct:%d on %s\n", chgct, query); + totct += chgct; + } + pr_debug("total changes: %d\n", totct); + __drm_debug = result; + return 0; +} + +static int param_get_dyndbg(char *buffer, const struct kernel_param *kp) +{ + pr_debug("debug-val:0x%x %u\n", __drm_debug, *((unsigned int *)kp->arg)); + return scnprintf(buffer, PAGE_SIZE, "%u\n", + *((unsigned int *)kp->arg)); +} +static const struct kernel_param_ops param_ops_debug = { + .set = param_set_dyndbg, + .get = param_get_dyndbg, +}; +module_param_cb(debug, ¶m_ops_debug, &__drm_debug, 0644); + +#endif /* CONFIG_DRM_USE_DYNAMIC_DEBUG */ + void __drm_puts_coredump(struct drm_printer *p, const char *str) { struct drm_print_iterator *iterator = p->arg; @@ -256,7 +323,7 @@ void drm_dev_printk(const struct device *dev, const char *level, } EXPORT_SYMBOL(drm_dev_printk); -void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, +void _drm_dev_dbg(const struct device *dev, enum drm_debug_category category, const char *format, ...) { struct va_format vaf; @@ -278,9 +345,9 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, va_end(args); } -EXPORT_SYMBOL(drm_dev_dbg); +EXPORT_SYMBOL(_drm_dev_dbg); -void __drm_dbg(enum drm_debug_category category, const char *format, ...) +void ___drm_dbg(enum drm_debug_category category, const char *format, ...) { struct va_format vaf; va_list args; @@ -297,7 +364,7 @@ void __drm_dbg(enum drm_debug_category category, const char *format, ...) va_end(args); } -EXPORT_SYMBOL(__drm_dbg); +EXPORT_SYMBOL(___drm_dbg); void __drm_err(const char *format, ...) { diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 4559583bc88b..63dd469d1c68 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -31,6 +31,7 @@ #include <linux/seq_file.h> #include <linux/device.h> #include <linux/debugfs.h> +#include <linux/dynamic_debug.h> #include <drm/drm.h> @@ -319,6 +320,51 @@ enum drm_debug_category { DRM_UT_DRMRES = 0x200, }; +#if !defined(CONFIG_DRM_USE_DYNAMIC_DEBUG) + +/* Use legacy drm-debug functions, and drm_debug_enabled(). + * For cDRM_UT_* (converted category), identity map to DRM_UT_* + */ +#define __drm_dbg(cls, fmt, ...) \ + ___drm_dbg(cls, fmt, ##__VA_ARGS__) +#define drm_dev_dbg(dev, cls, fmt, ...) \ + _drm_dev_dbg(dev, cls, fmt, ##__VA_ARGS__) + +#define cDRM_UT_CORE DRM_UT_CORE +#define cDRM_UT_DRIVER DRM_UT_DRIVER +#define cDRM_UT_KMS DRM_UT_KMS +#define cDRM_UT_PRIME DRM_UT_PRIME +#define cDRM_UT_ATOMIC DRM_UT_ATOMIC +#define cDRM_UT_VBL DRM_UT_VBL +#define cDRM_UT_STATE DRM_UT_STATE +#define cDRM_UT_LEASE DRM_UT_LEASE +#define cDRM_UT_DP DRM_UT_DP +#define cDRM_UT_DRMRES DRM_UT_DRMRES + +#else /* !CONFIG_DRM_USE_DYNAMIC_DEBUG */ + +/* use dynamic_debug to avoid drm_debug_enabled(). + * dyndbg has no category, so we prefix the format with a "class" + * string; cDRM_UT_* maps to those class strings + */ +#define __drm_dbg(cls, fmt, ...) \ + pr_debug(cls # fmt, ##__VA_ARGS__) +#define drm_dev_dbg(dev, cls, fmt, ...) \ + dev_dbg(dev, cls # fmt, ##__VA_ARGS__) + +#define cDRM_UT_CORE "drm:core: " +#define cDRM_UT_DRIVER "drm:drvr: " +#define cDRM_UT_KMS "drm:kms: " +#define cDRM_UT_PRIME "drm:prime: " +#define cDRM_UT_ATOMIC "drm:atomic: " +#define cDRM_UT_VBL "drm:vbl: " +#define cDRM_UT_STATE "drm:state: " +#define cDRM_UT_LEASE "drm:lease: " +#define cDRM_UT_DP "drm:dp: " +#define cDRM_UT_DRMRES "drm:res " + +#endif /* !CONFIG_DRM_USE_DYNAMIC_DEBUG */ + static inline bool drm_debug_enabled(enum drm_debug_category category) { return unlikely(__drm_debug & category); @@ -334,7 +380,7 @@ __printf(3, 4) void drm_dev_printk(const struct device *dev, const char *level, const char *format, ...); __printf(3, 4) -void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, +void _drm_dev_dbg(const struct device *dev, enum drm_debug_category category, const char *format, ...); /** @@ -383,7 +429,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_CORE, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_CORE, fmt, ##__VA_ARGS__) /** * DRM_DEV_DEBUG_DRIVER() - Debug output for vendor specific part of the driver * @@ -391,7 +437,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG_DRIVER(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) /** * DRM_DEV_DEBUG_KMS() - Debug output for modesetting code * @@ -399,7 +445,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG_KMS(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_KMS, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_KMS, fmt, ##__VA_ARGS__) /* * struct drm_device based logging @@ -443,25 +489,25 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, #define drm_dbg_core(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_CORE, fmt, ##__VA_ARGS__) #define drm_dbg(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) #define drm_dbg_kms(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_KMS, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_KMS, fmt, ##__VA_ARGS__) #define drm_dbg_prime(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_PRIME, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_PRIME, fmt, ##__VA_ARGS__) #define drm_dbg_atomic(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_ATOMIC, fmt, ##__VA_ARGS__) #define drm_dbg_vbl(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_VBL, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_VBL, fmt, ##__VA_ARGS__) #define drm_dbg_state(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_STATE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_STATE, fmt, ##__VA_ARGS__) #define drm_dbg_lease(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_LEASE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_LEASE, fmt, ##__VA_ARGS__) #define drm_dbg_dp(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DP, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DP, fmt, ##__VA_ARGS__) #define drm_dbg_drmres(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRMRES, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DRMRES, fmt, ##__VA_ARGS__) /* @@ -471,7 +517,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, */ __printf(2, 3) -void __drm_dbg(enum drm_debug_category category, const char *format, ...); +void ___drm_dbg(enum drm_debug_category category, const char *format, ...); __printf(1, 2) void __drm_err(const char *format, ...); @@ -500,45 +546,45 @@ void __drm_err(const char *format, ...); #define DRM_ERROR_RATELIMITED(fmt, ...) \ DRM_DEV_ERROR_RATELIMITED(NULL, fmt, ##__VA_ARGS__) + #define DRM_DEBUG(fmt, ...) \ - __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_CORE, fmt, ##__VA_ARGS__) #define DRM_DEBUG_DRIVER(fmt, ...) \ - __drm_dbg(DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) #define DRM_DEBUG_KMS(fmt, ...) \ - __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_KMS, fmt, ##__VA_ARGS__) #define DRM_DEBUG_PRIME(fmt, ...) \ - __drm_dbg(DRM_UT_PRIME, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_PRIME, fmt, ##__VA_ARGS__) #define DRM_DEBUG_ATOMIC(fmt, ...) \ - __drm_dbg(DRM_UT_ATOMIC, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_ATOMIC, fmt, ##__VA_ARGS__) #define DRM_DEBUG_VBL(fmt, ...) \ - __drm_dbg(DRM_UT_VBL, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_VBL, fmt, ##__VA_ARGS__) #define DRM_DEBUG_LEASE(fmt, ...) \ - __drm_dbg(DRM_UT_LEASE, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_LEASE, fmt, ##__VA_ARGS__) #define DRM_DEBUG_DP(fmt, ...) \ - __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) + __drm_dbg(cDRM_UT_DP, fmt, ## __VA_ARGS__) -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ +#define __DRM_DEFINE_DBG_RATELIMITED(cat_legacy, cat_class, drm, fmt, ...)\ ({ \ static DEFINE_RATELIMIT_STATE(rs_, \ DEFAULT_RATELIMIT_INTERVAL, \ DEFAULT_RATELIMIT_BURST); \ const struct drm_device *drm_ = (drm); \ \ - if (drm_debug_enabled(DRM_UT_ ## category) \ - && __ratelimit(&rs_)) \ - drm_dev_printk(drm_ ? drm_->dev : NULL, \ - KERN_DEBUG, fmt, ## __VA_ARGS__); \ + if (drm_debug_enabled(cat_legacy) && __ratelimit(&rs_)) \ + drm_dev_dbg((drm_) ? (drm_)->dev : NULL, \ + cat_class, fmt, ##__VA_ARGS__); \ }) #define drm_dbg_kms_ratelimited(drm, fmt, ...) \ - __DRM_DEFINE_DBG_RATELIMITED(KMS, drm, fmt, ## __VA_ARGS__) + __DRM_DEFINE_DBG_RATELIMITED(DRM_UT_KMS, cDRM_UT_KMS, drm, fmt, ## __VA_ARGS__) #define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) \ drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) -- 2.31.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [RFC PATCH v2 3/4] drm: RFC add choice to use dynamic debug in drm-debug @ 2021-07-11 5:50 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron drm's debug system uses distinct categories of debug messages, encoded in an enum (DRM_UT_<CATEGORY>), which are mapped to bits in drm.debug. drm_debug_enabled() does a lot of unlikely bit-mask checks on drm.debug; we can use dynamic debug instead, and get all that static_key/jump_label goodness. Dynamic debug has no concept of category, but we can map the DRM_UT_* to a set of distinct prefixes; "drm:core:", "drm:kms:" etc, and prepend them to the given formats. Then we can use `echo module drm format ^drm:core: > control` to select the whole category with one query. This new prefix changes pr_debug's output, so is user visible, but it seems unlikely to cause trouble for log watchers; they're not relying on the absence of class prefix strings. This conversion yields ~2100 new callsites on my i7 laptop: dyndbg: 195 debug prints in module drm_kms_helper dyndbg: 298 debug prints in module drm dyndbg: 1630 debug prints in module i915 CONFIG_DRM_USE_DYNAMIC_DEBUG enables this, and is available if CONFIG_DYNAMIC_DEBUG or CONFIG_DYNAMIC_DEBUG_CORE is chosen, and if CONFIG_JUMP_LABEL is enabled; this because its required to get the promised optimizations. The indirection/switchover is layered into the macro scheme: 0.A new callback on drm.debug which calls dynamic_debug_exec_queries to map those bits to specific query/commands dynamic_debug_exec_queries("format ^drm:kms: +p", "drm*"); here for POC, this should be in dynamic_debug.c with a MODULE_PARAM_DEBUG_BITMAP(__drm_debug, { "prefix-1", "desc-1" }+) 1.A "converted" or "classy" DRM_UT_* map based on: DRM_UT_* ( symbol => bit-mask ) named it: cDRM_UT_* ( symbol => format-class-prefix-string ) So cDRM_UT_* is either: legacy: cDRM_UT_* <-- DRM_UT_* ( !CONFIG_DRM_USE_DYNAMIC_DEBUG ) enabled: #define cDRM_UT_KMS "drm:kms: " #define cDRM_UT_PRIME "drm:prime: " #define cDRM_UT_ATOMIC "drm:atomic: " DRM_UT_* are unchanged, since theyre used in drm_debug_enabled() and elsewhere. 2.drm_dev_dbg & drm_debug are renamed (prefixed with '_') old names are now macros, calling either: legacy: -> to renamed fn enabled: -> dev_dbg & pr_debug, with cDRM-prefix prepended format. 3.names in (2) are called from DRM_DEBUG_<Category> and drm_dbg_<Category>. all these macros get "converted" to use cDRM_UT_*, to get right token type. 4.simplification of __DRM_DEFINE_DBG_RATELIMITED macro pass both DRM_UT & cDRM_UT, for drm_debug_enabled & drm_dev_dbg remove DRM_UT_ ## KMS Also reuse gist of: commit 7911902129a8 ("drm/print: Handle potentially NULL drm_devices in drm_dbg_*) --- drivers/gpu/drm/Kconfig | 13 +++++ drivers/gpu/drm/drm_print.c | 75 ++++++++++++++++++++++++-- include/drm/drm_print.h | 104 ++++++++++++++++++++++++++---------- 3 files changed, 159 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 7ff89690a976..e4524ccba040 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -57,6 +57,19 @@ config DRM_DEBUG_MM If in doubt, say "N". +config DRM_USE_DYNAMIC_DEBUG + bool "use dynamic debug to implement drm.debug" + default n + depends on DRM + depends on DYNAMIC_DEBUG || DYNAMIC_DEBUG_CORE + depends on JUMP_LABEL + help + The drm debug category facility does a lot of unlikely bit-field + tests at runtime; while cheap individually, the cost accumulates. + This option uses dynamic debug facility (if configured and + using jump_label) to avoid those runtime checks, patching + the kernel when those debugs are desired. + config DRM_DEBUG_SELFTEST tristate "kselftests for DRM" depends on DRM diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c index 111b932cf2a9..e2acdfc7088b 100644 --- a/drivers/gpu/drm/drm_print.c +++ b/drivers/gpu/drm/drm_print.c @@ -52,8 +52,75 @@ MODULE_PARM_DESC(debug, "Enable debug output, where each bit enables a debug cat "\t\tBit 5 (0x20) will enable VBL messages (vblank code)\n" "\t\tBit 7 (0x80) will enable LEASE messages (leasing code)\n" "\t\tBit 8 (0x100) will enable DP messages (displayport code)"); + +#ifndef CONFIG_DRM_USE_DYNAMIC_DEBUG module_param_named(debug, __drm_debug, int, 0600); +#else +static char *format_class_prefixes[] = { + cDRM_UT_CORE, + cDRM_UT_DRIVER, + cDRM_UT_KMS, + cDRM_UT_PRIME, + cDRM_UT_ATOMIC, + cDRM_UT_VBL, + cDRM_UT_STATE, + cDRM_UT_LEASE, + cDRM_UT_DP, + cDRM_UT_DRMRES +}; + +#define OUR_QUERY_SIZE 64 /* > strlen "format '^%s' %cp" + longest prefix */ + +static int param_set_dyndbg(const char *instr, const struct kernel_param *kp) +{ + unsigned int val; + unsigned long changes, result; + int rc, chgct = 0, totct = 0, bitpos; + char query[OUR_QUERY_SIZE]; + + rc = kstrtouint(instr, 0, &val); + if (rc) { + pr_err("%s: failed\n", __func__); + return -EINVAL; + } + result = val; + changes = result ^ __drm_debug; + + pr_debug("changes:0x%lx from result:0x%lx\n", changes, result); + + for_each_set_bit(bitpos, &changes, ARRAY_SIZE(format_class_prefixes)) { + + sprintf(query, "format '^%s' %cp", format_class_prefixes[bitpos], + test_bit(bitpos, &result) ? '+' : '-'); + + chgct = dynamic_debug_exec_queries(query, "drm*"); + if (chgct < 0) { + pr_err("%s: exec err:%d on: %s\n", __func__, chgct, query); + continue; + } + pr_debug("change ct:%d on %s\n", chgct, query); + totct += chgct; + } + pr_debug("total changes: %d\n", totct); + __drm_debug = result; + return 0; +} + +static int param_get_dyndbg(char *buffer, const struct kernel_param *kp) +{ + pr_debug("debug-val:0x%x %u\n", __drm_debug, *((unsigned int *)kp->arg)); + return scnprintf(buffer, PAGE_SIZE, "%u\n", + *((unsigned int *)kp->arg)); +} +static const struct kernel_param_ops param_ops_debug = { + .set = param_set_dyndbg, + .get = param_get_dyndbg, +}; +module_param_cb(debug, ¶m_ops_debug, &__drm_debug, 0644); + +#endif /* CONFIG_DRM_USE_DYNAMIC_DEBUG */ + void __drm_puts_coredump(struct drm_printer *p, const char *str) { struct drm_print_iterator *iterator = p->arg; @@ -256,7 +323,7 @@ void drm_dev_printk(const struct device *dev, const char *level, } EXPORT_SYMBOL(drm_dev_printk); -void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, +void _drm_dev_dbg(const struct device *dev, enum drm_debug_category category, const char *format, ...) { struct va_format vaf; @@ -278,9 +345,9 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, va_end(args); } -EXPORT_SYMBOL(drm_dev_dbg); +EXPORT_SYMBOL(_drm_dev_dbg); -void __drm_dbg(enum drm_debug_category category, const char *format, ...) +void ___drm_dbg(enum drm_debug_category category, const char *format, ...) { struct va_format vaf; va_list args; @@ -297,7 +364,7 @@ void __drm_dbg(enum drm_debug_category category, const char *format, ...) va_end(args); } -EXPORT_SYMBOL(__drm_dbg); +EXPORT_SYMBOL(___drm_dbg); void __drm_err(const char *format, ...) { diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 4559583bc88b..63dd469d1c68 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -31,6 +31,7 @@ #include <linux/seq_file.h> #include <linux/device.h> #include <linux/debugfs.h> +#include <linux/dynamic_debug.h> #include <drm/drm.h> @@ -319,6 +320,51 @@ enum drm_debug_category { DRM_UT_DRMRES = 0x200, }; +#if !defined(CONFIG_DRM_USE_DYNAMIC_DEBUG) + +/* Use legacy drm-debug functions, and drm_debug_enabled(). + * For cDRM_UT_* (converted category), identity map to DRM_UT_* + */ +#define __drm_dbg(cls, fmt, ...) \ + ___drm_dbg(cls, fmt, ##__VA_ARGS__) +#define drm_dev_dbg(dev, cls, fmt, ...) \ + _drm_dev_dbg(dev, cls, fmt, ##__VA_ARGS__) + +#define cDRM_UT_CORE DRM_UT_CORE +#define cDRM_UT_DRIVER DRM_UT_DRIVER +#define cDRM_UT_KMS DRM_UT_KMS +#define cDRM_UT_PRIME DRM_UT_PRIME +#define cDRM_UT_ATOMIC DRM_UT_ATOMIC +#define cDRM_UT_VBL DRM_UT_VBL +#define cDRM_UT_STATE DRM_UT_STATE +#define cDRM_UT_LEASE DRM_UT_LEASE +#define cDRM_UT_DP DRM_UT_DP +#define cDRM_UT_DRMRES DRM_UT_DRMRES + +#else /* !CONFIG_DRM_USE_DYNAMIC_DEBUG */ + +/* use dynamic_debug to avoid drm_debug_enabled(). + * dyndbg has no category, so we prefix the format with a "class" + * string; cDRM_UT_* maps to those class strings + */ +#define __drm_dbg(cls, fmt, ...) \ + pr_debug(cls # fmt, ##__VA_ARGS__) +#define drm_dev_dbg(dev, cls, fmt, ...) \ + dev_dbg(dev, cls # fmt, ##__VA_ARGS__) + +#define cDRM_UT_CORE "drm:core: " +#define cDRM_UT_DRIVER "drm:drvr: " +#define cDRM_UT_KMS "drm:kms: " +#define cDRM_UT_PRIME "drm:prime: " +#define cDRM_UT_ATOMIC "drm:atomic: " +#define cDRM_UT_VBL "drm:vbl: " +#define cDRM_UT_STATE "drm:state: " +#define cDRM_UT_LEASE "drm:lease: " +#define cDRM_UT_DP "drm:dp: " +#define cDRM_UT_DRMRES "drm:res " + +#endif /* !CONFIG_DRM_USE_DYNAMIC_DEBUG */ + static inline bool drm_debug_enabled(enum drm_debug_category category) { return unlikely(__drm_debug & category); @@ -334,7 +380,7 @@ __printf(3, 4) void drm_dev_printk(const struct device *dev, const char *level, const char *format, ...); __printf(3, 4) -void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, +void _drm_dev_dbg(const struct device *dev, enum drm_debug_category category, const char *format, ...); /** @@ -383,7 +429,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_CORE, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_CORE, fmt, ##__VA_ARGS__) /** * DRM_DEV_DEBUG_DRIVER() - Debug output for vendor specific part of the driver * @@ -391,7 +437,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG_DRIVER(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) /** * DRM_DEV_DEBUG_KMS() - Debug output for modesetting code * @@ -399,7 +445,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, * @fmt: printf() like format string. */ #define DRM_DEV_DEBUG_KMS(dev, fmt, ...) \ - drm_dev_dbg(dev, DRM_UT_KMS, fmt, ##__VA_ARGS__) + drm_dev_dbg(dev, cDRM_UT_KMS, fmt, ##__VA_ARGS__) /* * struct drm_device based logging @@ -443,25 +489,25 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, #define drm_dbg_core(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_CORE, fmt, ##__VA_ARGS__) #define drm_dbg(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) #define drm_dbg_kms(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_KMS, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_KMS, fmt, ##__VA_ARGS__) #define drm_dbg_prime(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_PRIME, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_PRIME, fmt, ##__VA_ARGS__) #define drm_dbg_atomic(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_ATOMIC, fmt, ##__VA_ARGS__) #define drm_dbg_vbl(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_VBL, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_VBL, fmt, ##__VA_ARGS__) #define drm_dbg_state(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_STATE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_STATE, fmt, ##__VA_ARGS__) #define drm_dbg_lease(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_LEASE, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_LEASE, fmt, ##__VA_ARGS__) #define drm_dbg_dp(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DP, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DP, fmt, ##__VA_ARGS__) #define drm_dbg_drmres(drm, fmt, ...) \ - drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRMRES, fmt, ##__VA_ARGS__) + drm_dev_dbg((drm) ? (drm)->dev : NULL, cDRM_UT_DRMRES, fmt, ##__VA_ARGS__) /* @@ -471,7 +517,7 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category, */ __printf(2, 3) -void __drm_dbg(enum drm_debug_category category, const char *format, ...); +void ___drm_dbg(enum drm_debug_category category, const char *format, ...); __printf(1, 2) void __drm_err(const char *format, ...); @@ -500,45 +546,45 @@ void __drm_err(const char *format, ...); #define DRM_ERROR_RATELIMITED(fmt, ...) \ DRM_DEV_ERROR_RATELIMITED(NULL, fmt, ##__VA_ARGS__) + #define DRM_DEBUG(fmt, ...) \ - __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_CORE, fmt, ##__VA_ARGS__) #define DRM_DEBUG_DRIVER(fmt, ...) \ - __drm_dbg(DRM_UT_DRIVER, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_DRIVER, fmt, ##__VA_ARGS__) #define DRM_DEBUG_KMS(fmt, ...) \ - __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_KMS, fmt, ##__VA_ARGS__) #define DRM_DEBUG_PRIME(fmt, ...) \ - __drm_dbg(DRM_UT_PRIME, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_PRIME, fmt, ##__VA_ARGS__) #define DRM_DEBUG_ATOMIC(fmt, ...) \ - __drm_dbg(DRM_UT_ATOMIC, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_ATOMIC, fmt, ##__VA_ARGS__) #define DRM_DEBUG_VBL(fmt, ...) \ - __drm_dbg(DRM_UT_VBL, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_VBL, fmt, ##__VA_ARGS__) #define DRM_DEBUG_LEASE(fmt, ...) \ - __drm_dbg(DRM_UT_LEASE, fmt, ##__VA_ARGS__) + __drm_dbg(cDRM_UT_LEASE, fmt, ##__VA_ARGS__) #define DRM_DEBUG_DP(fmt, ...) \ - __drm_dbg(DRM_UT_DP, fmt, ## __VA_ARGS__) + __drm_dbg(cDRM_UT_DP, fmt, ## __VA_ARGS__) -#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) \ +#define __DRM_DEFINE_DBG_RATELIMITED(cat_legacy, cat_class, drm, fmt, ...)\ ({ \ static DEFINE_RATELIMIT_STATE(rs_, \ DEFAULT_RATELIMIT_INTERVAL, \ DEFAULT_RATELIMIT_BURST); \ const struct drm_device *drm_ = (drm); \ \ - if (drm_debug_enabled(DRM_UT_ ## category) \ - && __ratelimit(&rs_)) \ - drm_dev_printk(drm_ ? drm_->dev : NULL, \ - KERN_DEBUG, fmt, ## __VA_ARGS__); \ + if (drm_debug_enabled(cat_legacy) && __ratelimit(&rs_)) \ + drm_dev_dbg((drm_) ? (drm_)->dev : NULL, \ + cat_class, fmt, ##__VA_ARGS__); \ }) #define drm_dbg_kms_ratelimited(drm, fmt, ...) \ - __DRM_DEFINE_DBG_RATELIMITED(KMS, drm, fmt, ## __VA_ARGS__) + __DRM_DEFINE_DBG_RATELIMITED(DRM_UT_KMS, cDRM_UT_KMS, drm, fmt, ## __VA_ARGS__) #define DRM_DEBUG_KMS_RATELIMITED(fmt, ...) \ drm_dbg_kms_ratelimited(NULL, fmt, ## __VA_ARGS__) -- 2.31.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [RFC PATCH v2 4/4] i915: map gvt pr_debug categories to bits in parameters/debug_gvt 2021-07-11 5:49 ` Jim Cromie (?) @ 2021-07-11 5:50 ` Jim Cromie -1 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: jbaron, Jim Cromie The gvt component of this driver has ~120 pr_debugs, in 9 "classes". Following the interface model of drm.debug, add a parameter to map bits to these classes. If CONFIG_DRM_USE_DYNAMIC_DEBUG=y (and CONFIG_DYNAMIC_DEBUG_CORE), add -DDYNAMIC_DEBUG_MODULE into Makefile. TBD: maybe add a separate CONFIG_I915_USE_DYNAMIC_DEBUG to more fully optionalize this. In i915_params.c, add callback to map bits to queries. TBD: the callback code should probably be moved to lib/dynamic_debug, and given a declarative interface, with implied bit-numbering, something like: MOD_PARM_BITMAP_DESC(__gvt_debug, "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"); --- drivers/gpu/drm/i915/gvt/Makefile | 4 ++ drivers/gpu/drm/i915/i915_params.c | 76 ++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/drivers/gpu/drm/i915/gvt/Makefile b/drivers/gpu/drm/i915/gvt/Makefile index ea8324abc784..846ba73b8de6 100644 --- a/drivers/gpu/drm/i915/gvt/Makefile +++ b/drivers/gpu/drm/i915/gvt/Makefile @@ -7,3 +7,7 @@ GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o trace_points.o firmware.o \ ccflags-y += -I $(srctree)/$(src) -I $(srctree)/$(src)/$(GVT_DIR)/ i915-y += $(addprefix $(GVT_DIR)/, $(GVT_SOURCE)) + +#ifdef CONFIG_DRM_USE_DYNAMIC_DEBUG +ccflags-y += -DDYNAMIC_DEBUG_MODULE +#endif diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c index e07f4cfea63a..e0d13aff5274 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c @@ -265,3 +265,79 @@ void i915_params_free(struct i915_params *params) I915_PARAMS_FOR_EACH(FREE); #undef FREE } + +/* POC for callback -> dynamic_debug_exec_queries */ +unsigned long __gvt_debug; +EXPORT_SYMBOL(__gvt_debug); + +static char *format_prefix_classes[] = { + "gvt: cmd: ", + "gvt: core: ", + "gvt: dpy: ", + "gvt: el: ", + "gvt: irq: ", + "gvt: mm: ", + "gvt: mmio: ", + "gvt: render: ", + "gvt: sched: " +}; +#define NUM_CLASSES ARRAY_SIZE(format_prefix_classes) +#define OUR_QUERY_SIZE 128 /* we need about 20 */ + +#include <linux/module.h> + +static int param_set_dyndbg(const char *instr, const struct kernel_param *kp) +{ + unsigned int val; + unsigned long changes, result; + int rc, chgct = 0, totct = 0, bitpos; + char query[OUR_QUERY_SIZE]; + + rc = kstrtouint(instr, 0, &val); + if (rc) { + pr_err("set_dyndbg: failed\n"); + return -EINVAL; + } + result = val; + pr_info("set_dyndbg: result:0x%lx from %s\n", result, instr); + + changes = result ^ __gvt_debug; + + for_each_set_bit(bitpos, &changes, NUM_CLASSES) { + + sprintf(query, "format '^%s' %cp", format_prefix_classes[bitpos], + test_bit(bitpos, &result) ? '+' : '-'); + + chgct = dynamic_debug_exec_queries(query, "i915"); + + pr_info("%d changes on: %s\n", chgct, query); + totct += chgct; + } + pr_info("total changes: %d\n", totct); + __gvt_debug = result; + return 0; +} +static int param_get_dyndbg(char *buffer, const struct kernel_param *kp) +{ + return scnprintf(buffer, PAGE_SIZE, "%u\n", + *((unsigned int *)kp->arg)); +} +static const struct kernel_param_ops param_ops_dyndbg = { + .set = param_set_dyndbg, + .get = param_get_dyndbg, +}; + +#define info_ln(hexi, prefix) "\n\t0x" __stringify(hexi) "\t" prefix + +MODULE_PARM_DESC(debug_gvt, " gvt debug categories:" + info_ln(1, "gvt: cmd:") + info_ln(2, "gvt: core:") + info_ln(4, "gvt: dpy:") + info_ln(8, "gvt: el:") + info_ln(10, "gvt: irq:") + info_ln(20, "gvt: mm:") + info_ln(40, "gvt: mmio:") + info_ln(80, "gvt: render:") + info_ln(100, "gvt: sched:")); + +module_param_cb(debug_gvt, ¶m_ops_dyndbg, &__gvt_debug, 0644); -- 2.31.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [Intel-gfx] [RFC PATCH v2 4/4] i915: map gvt pr_debug categories to bits in parameters/debug_gvt @ 2021-07-11 5:50 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron The gvt component of this driver has ~120 pr_debugs, in 9 "classes". Following the interface model of drm.debug, add a parameter to map bits to these classes. If CONFIG_DRM_USE_DYNAMIC_DEBUG=y (and CONFIG_DYNAMIC_DEBUG_CORE), add -DDYNAMIC_DEBUG_MODULE into Makefile. TBD: maybe add a separate CONFIG_I915_USE_DYNAMIC_DEBUG to more fully optionalize this. In i915_params.c, add callback to map bits to queries. TBD: the callback code should probably be moved to lib/dynamic_debug, and given a declarative interface, with implied bit-numbering, something like: MOD_PARM_BITMAP_DESC(__gvt_debug, "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"); --- drivers/gpu/drm/i915/gvt/Makefile | 4 ++ drivers/gpu/drm/i915/i915_params.c | 76 ++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/drivers/gpu/drm/i915/gvt/Makefile b/drivers/gpu/drm/i915/gvt/Makefile index ea8324abc784..846ba73b8de6 100644 --- a/drivers/gpu/drm/i915/gvt/Makefile +++ b/drivers/gpu/drm/i915/gvt/Makefile @@ -7,3 +7,7 @@ GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o trace_points.o firmware.o \ ccflags-y += -I $(srctree)/$(src) -I $(srctree)/$(src)/$(GVT_DIR)/ i915-y += $(addprefix $(GVT_DIR)/, $(GVT_SOURCE)) + +#ifdef CONFIG_DRM_USE_DYNAMIC_DEBUG +ccflags-y += -DDYNAMIC_DEBUG_MODULE +#endif diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c index e07f4cfea63a..e0d13aff5274 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c @@ -265,3 +265,79 @@ void i915_params_free(struct i915_params *params) I915_PARAMS_FOR_EACH(FREE); #undef FREE } + +/* POC for callback -> dynamic_debug_exec_queries */ +unsigned long __gvt_debug; +EXPORT_SYMBOL(__gvt_debug); + +static char *format_prefix_classes[] = { + "gvt: cmd: ", + "gvt: core: ", + "gvt: dpy: ", + "gvt: el: ", + "gvt: irq: ", + "gvt: mm: ", + "gvt: mmio: ", + "gvt: render: ", + "gvt: sched: " +}; +#define NUM_CLASSES ARRAY_SIZE(format_prefix_classes) +#define OUR_QUERY_SIZE 128 /* we need about 20 */ + +#include <linux/module.h> + +static int param_set_dyndbg(const char *instr, const struct kernel_param *kp) +{ + unsigned int val; + unsigned long changes, result; + int rc, chgct = 0, totct = 0, bitpos; + char query[OUR_QUERY_SIZE]; + + rc = kstrtouint(instr, 0, &val); + if (rc) { + pr_err("set_dyndbg: failed\n"); + return -EINVAL; + } + result = val; + pr_info("set_dyndbg: result:0x%lx from %s\n", result, instr); + + changes = result ^ __gvt_debug; + + for_each_set_bit(bitpos, &changes, NUM_CLASSES) { + + sprintf(query, "format '^%s' %cp", format_prefix_classes[bitpos], + test_bit(bitpos, &result) ? '+' : '-'); + + chgct = dynamic_debug_exec_queries(query, "i915"); + + pr_info("%d changes on: %s\n", chgct, query); + totct += chgct; + } + pr_info("total changes: %d\n", totct); + __gvt_debug = result; + return 0; +} +static int param_get_dyndbg(char *buffer, const struct kernel_param *kp) +{ + return scnprintf(buffer, PAGE_SIZE, "%u\n", + *((unsigned int *)kp->arg)); +} +static const struct kernel_param_ops param_ops_dyndbg = { + .set = param_set_dyndbg, + .get = param_get_dyndbg, +}; + +#define info_ln(hexi, prefix) "\n\t0x" __stringify(hexi) "\t" prefix + +MODULE_PARM_DESC(debug_gvt, " gvt debug categories:" + info_ln(1, "gvt: cmd:") + info_ln(2, "gvt: core:") + info_ln(4, "gvt: dpy:") + info_ln(8, "gvt: el:") + info_ln(10, "gvt: irq:") + info_ln(20, "gvt: mm:") + info_ln(40, "gvt: mmio:") + info_ln(80, "gvt: render:") + info_ln(100, "gvt: sched:")); + +module_param_cb(debug_gvt, ¶m_ops_dyndbg, &__gvt_debug, 0644); -- 2.31.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [RFC PATCH v2 4/4] i915: map gvt pr_debug categories to bits in parameters/debug_gvt @ 2021-07-11 5:50 ` Jim Cromie 0 siblings, 0 replies; 25+ messages in thread From: Jim Cromie @ 2021-07-11 5:50 UTC (permalink / raw) To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, Zhenyu Wang, Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, dri-devel, linux-kernel, intel-gvt-dev, intel-gfx Cc: Jim Cromie, jbaron The gvt component of this driver has ~120 pr_debugs, in 9 "classes". Following the interface model of drm.debug, add a parameter to map bits to these classes. If CONFIG_DRM_USE_DYNAMIC_DEBUG=y (and CONFIG_DYNAMIC_DEBUG_CORE), add -DDYNAMIC_DEBUG_MODULE into Makefile. TBD: maybe add a separate CONFIG_I915_USE_DYNAMIC_DEBUG to more fully optionalize this. In i915_params.c, add callback to map bits to queries. TBD: the callback code should probably be moved to lib/dynamic_debug, and given a declarative interface, with implied bit-numbering, something like: MOD_PARM_BITMAP_DESC(__gvt_debug, "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"); --- drivers/gpu/drm/i915/gvt/Makefile | 4 ++ drivers/gpu/drm/i915/i915_params.c | 76 ++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/drivers/gpu/drm/i915/gvt/Makefile b/drivers/gpu/drm/i915/gvt/Makefile index ea8324abc784..846ba73b8de6 100644 --- a/drivers/gpu/drm/i915/gvt/Makefile +++ b/drivers/gpu/drm/i915/gvt/Makefile @@ -7,3 +7,7 @@ GVT_SOURCE := gvt.o aperture_gm.o handlers.o vgpu.o trace_points.o firmware.o \ ccflags-y += -I $(srctree)/$(src) -I $(srctree)/$(src)/$(GVT_DIR)/ i915-y += $(addprefix $(GVT_DIR)/, $(GVT_SOURCE)) + +#ifdef CONFIG_DRM_USE_DYNAMIC_DEBUG +ccflags-y += -DDYNAMIC_DEBUG_MODULE +#endif diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c index e07f4cfea63a..e0d13aff5274 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c @@ -265,3 +265,79 @@ void i915_params_free(struct i915_params *params) I915_PARAMS_FOR_EACH(FREE); #undef FREE } + +/* POC for callback -> dynamic_debug_exec_queries */ +unsigned long __gvt_debug; +EXPORT_SYMBOL(__gvt_debug); + +static char *format_prefix_classes[] = { + "gvt: cmd: ", + "gvt: core: ", + "gvt: dpy: ", + "gvt: el: ", + "gvt: irq: ", + "gvt: mm: ", + "gvt: mmio: ", + "gvt: render: ", + "gvt: sched: " +}; +#define NUM_CLASSES ARRAY_SIZE(format_prefix_classes) +#define OUR_QUERY_SIZE 128 /* we need about 20 */ + +#include <linux/module.h> + +static int param_set_dyndbg(const char *instr, const struct kernel_param *kp) +{ + unsigned int val; + unsigned long changes, result; + int rc, chgct = 0, totct = 0, bitpos; + char query[OUR_QUERY_SIZE]; + + rc = kstrtouint(instr, 0, &val); + if (rc) { + pr_err("set_dyndbg: failed\n"); + return -EINVAL; + } + result = val; + pr_info("set_dyndbg: result:0x%lx from %s\n", result, instr); + + changes = result ^ __gvt_debug; + + for_each_set_bit(bitpos, &changes, NUM_CLASSES) { + + sprintf(query, "format '^%s' %cp", format_prefix_classes[bitpos], + test_bit(bitpos, &result) ? '+' : '-'); + + chgct = dynamic_debug_exec_queries(query, "i915"); + + pr_info("%d changes on: %s\n", chgct, query); + totct += chgct; + } + pr_info("total changes: %d\n", totct); + __gvt_debug = result; + return 0; +} +static int param_get_dyndbg(char *buffer, const struct kernel_param *kp) +{ + return scnprintf(buffer, PAGE_SIZE, "%u\n", + *((unsigned int *)kp->arg)); +} +static const struct kernel_param_ops param_ops_dyndbg = { + .set = param_set_dyndbg, + .get = param_get_dyndbg, +}; + +#define info_ln(hexi, prefix) "\n\t0x" __stringify(hexi) "\t" prefix + +MODULE_PARM_DESC(debug_gvt, " gvt debug categories:" + info_ln(1, "gvt: cmd:") + info_ln(2, "gvt: core:") + info_ln(4, "gvt: dpy:") + info_ln(8, "gvt: el:") + info_ln(10, "gvt: irq:") + info_ln(20, "gvt: mm:") + info_ln(40, "gvt: mmio:") + info_ln(80, "gvt: render:") + info_ln(100, "gvt: sched:")); + +module_param_cb(debug_gvt, ¶m_ops_dyndbg, &__gvt_debug, 0644); -- 2.31.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Allow using dyndbg to replace drm_debug_enabled 2021-07-11 5:49 ` Jim Cromie ` (5 preceding siblings ...) (?) @ 2021-07-12 14:14 ` Patchwork -1 siblings, 0 replies; 25+ messages in thread From: Patchwork @ 2021-07-12 14:14 UTC (permalink / raw) To: Jim Cromie; +Cc: intel-gfx == Series Details == Series: Allow using dyndbg to replace drm_debug_enabled URL : https://patchwork.freedesktop.org/series/92438/ State : warning == Summary == $ dim checkpatch origin/drm-tip 05ade4d62336 drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro -:32: CHECK:LOGICAL_CONTINUATIONS: Logical continuations should be on the previous line #32: FILE: include/drm/drm_print.h:535: + if (drm_debug_enabled(DRM_UT_ ## category) \ + && __ratelimit(&rs_)) \ -:45: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 1 checks, 32 lines checked b347ee940ec2 drm: fixup comment spelling -:9: WARNING:COMMIT_MESSAGE: Missing commit description - Add an appropriate one -:20: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s) total: 1 errors, 1 warnings, 0 checks, 8 lines checked c3d19ae5f037 drm: RFC add choice to use dynamic debug in drm-debug -:69: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line) #69: commit 7911902129a8 ("drm/print: Handle potentially NULL drm_devices in drm_dbg_*) -:69: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 7911902129a8 ("drm/print: Handle potentially NULL drm_devices in drm_dbg_*")' #69: commit 7911902129a8 ("drm/print: Handle potentially NULL drm_devices in drm_dbg_*) -:141: CHECK:BRACES: Blank lines aren't necessary after an open brace '{' #141: FILE: drivers/gpu/drm/drm_print.c:93: + for_each_set_bit(bitpos, &changes, ARRAY_SIZE(format_class_prefixes)) { + -:164: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations #164: FILE: drivers/gpu/drm/drm_print.c:116: +} +static const struct kernel_param_ops param_ops_debug = { -:181: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #181: FILE: drivers/gpu/drm/drm_print.c:327: +void _drm_dev_dbg(const struct device *dev, enum drm_debug_category category, const char *format, ...) -:275: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #275: FILE: include/drm/drm_print.h:384: +void _drm_dev_dbg(const struct device *dev, enum drm_debug_category category, const char *format, ...); -:354: CHECK:LINE_SPACING: Please don't use multiple blank lines #354: FILE: include/drm/drm_print.h:549: + -:409: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s) total: 2 errors, 1 warnings, 5 checks, 313 lines checked 64eb8b1471cb i915: map gvt pr_debug categories to bits in parameters/debug_gvt -:68: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations #68: FILE: drivers/gpu/drm/i915/i915_params.c:284: +}; +#define NUM_CLASSES ARRAY_SIZE(format_prefix_classes) -:91: CHECK:BRACES: Blank lines aren't necessary after an open brace '{' #91: FILE: drivers/gpu/drm/i915/i915_params.c:307: + for_each_set_bit(bitpos, &changes, NUM_CLASSES) { + -:104: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations #104: FILE: drivers/gpu/drm/i915/i915_params.c:320: +} +static int param_get_dyndbg(char *buffer, const struct kernel_param *kp) -:109: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations #109: FILE: drivers/gpu/drm/i915/i915_params.c:325: +} +static const struct kernel_param_ops param_ops_dyndbg = { -:127: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 4 checks, 86 lines checked _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 25+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Allow using dyndbg to replace drm_debug_enabled 2021-07-11 5:49 ` Jim Cromie ` (6 preceding siblings ...) (?) @ 2021-07-12 14:17 ` Patchwork -1 siblings, 0 replies; 25+ messages in thread From: Patchwork @ 2021-07-12 14:17 UTC (permalink / raw) To: Jim Cromie; +Cc: intel-gfx == Series Details == Series: Allow using dyndbg to replace drm_debug_enabled URL : https://patchwork.freedesktop.org/series/92438/ State : warning == Summary == $ dim sparse --fast origin/drm-tip Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. - +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +./drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1345:25: error: incompatible types in comparison expression (different address spaces): +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1345:25: struct dma_fence * +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1345:25: struct dma_fence [noderef] __rcu * +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1346:17: error: incompatible types in comparison expression (different address spaces): +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1346:17: struct dma_fence * +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1346:17: struct dma_fence [noderef] __rcu * +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1405:17: error: incompatible types in comparison expression (different address spaces): +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1405:17: struct dma_fence * +drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1405:17: struct dma_fence [noderef] __rcu * +drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:310:16: error: incompatible types in comparison expression (different type sizes): +drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:310:16: unsigned long * +drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:310:16: unsigned long long * +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:275:25: error: incompatible types in comparison expression (different address spaces): +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:275:25: struct dma_fence * +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:275:25: struct dma_fence [noderef] __rcu * +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:276:17: error: incompatible types in comparison expression (different address spaces): +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:276:17: struct dma_fence * +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:276:17: struct dma_fence [noderef] __rcu * +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:330:17: error: incompatible types in comparison expression (different address spaces): +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:330:17: struct dma_fence * +drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:330:17: struct dma_fence [noderef] __rcu * +drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.h:90:56: error: marked inline, but without a definition +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_ _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 25+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for Allow using dyndbg to replace drm_debug_enabled 2021-07-11 5:49 ` Jim Cromie ` (7 preceding siblings ...) (?) @ 2021-07-12 14:41 ` Patchwork -1 siblings, 0 replies; 25+ messages in thread From: Patchwork @ 2021-07-12 14:41 UTC (permalink / raw) To: Jim Cromie; +Cc: intel-gfx [-- Attachment #1.1: Type: text/plain, Size: 5517 bytes --] == Series Details == Series: Allow using dyndbg to replace drm_debug_enabled URL : https://patchwork.freedesktop.org/series/92438/ State : success == Summary == CI Bug Log - changes from CI_DRM_10333 -> Patchwork_20575 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/index.html Known issues ------------ Here are the changes found in Patchwork_20575 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_huc_copy@huc-copy: - fi-tgl-y: NOTRUN -> [SKIP][1] ([i915#2190]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-tgl-y/igt@gem_huc_copy@huc-copy.html - fi-cfl-8109u: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-cfl-8109u/igt@gem_huc_copy@huc-copy.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-cfl-8109u: NOTRUN -> [SKIP][3] ([fdo#109271] / [fdo#111827]) +8 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-cfl-8109u/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_chamelium@vga-edid-read: - fi-tgl-y: NOTRUN -> [SKIP][4] ([fdo#111827]) +8 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-tgl-y/igt@kms_chamelium@vga-edid-read.html * igt@kms_force_connector_basic@force-load-detect: - fi-tgl-y: NOTRUN -> [SKIP][5] ([fdo#109285]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-tgl-y/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d: - fi-cfl-8109u: NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#533]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html * igt@kms_psr@primary_mmap_gtt: - fi-cfl-8109u: NOTRUN -> [SKIP][7] ([fdo#109271]) +6 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-cfl-8109u/igt@kms_psr@primary_mmap_gtt.html * igt@prime_vgem@basic-userptr: - fi-tgl-y: NOTRUN -> [SKIP][8] ([i915#3301]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-tgl-y/igt@prime_vgem@basic-userptr.html * igt@runner@aborted: - fi-tgl-y: NOTRUN -> [FAIL][9] ([i915#2722] / [i915#3744]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-tgl-y/igt@runner@aborted.html - fi-cfl-8109u: NOTRUN -> [FAIL][10] ([i915#2722] / [i915#3363] / [i915#3744]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-cfl-8109u/igt@runner@aborted.html * igt@vgem_basic@unload: - fi-cfl-8109u: NOTRUN -> [INCOMPLETE][11] ([i915#3744]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-cfl-8109u/igt@vgem_basic@unload.html - fi-tgl-y: NOTRUN -> [INCOMPLETE][12] ([i915#3744]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-tgl-y/igt@vgem_basic@unload.html #### Possible fixes #### * igt@gem_exec_suspend@basic-s0: - fi-cfl-8109u: [INCOMPLETE][13] ([i915#155]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/fi-cfl-8109u/igt@gem_exec_suspend@basic-s0.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-cfl-8109u/igt@gem_exec_suspend@basic-s0.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-kbl-7500u: [FAIL][15] ([i915#3449]) -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/fi-kbl-7500u/igt@kms_chamelium@common-hpd-after-suspend.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/fi-kbl-7500u/igt@kms_chamelium@common-hpd-after-suspend.html [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363 [i915#3449]: https://gitlab.freedesktop.org/drm/intel/issues/3449 [i915#3744]: https://gitlab.freedesktop.org/drm/intel/issues/3744 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 Participating hosts (39 -> 39) ------------------------------ Additional (1): fi-tgl-y Missing (1): fi-bdw-samus Build changes ------------- * Linux: CI_DRM_10333 -> Patchwork_20575 CI-20190529: 20190529 CI_DRM_10333: 138708ec9f303e98fded4239cafa0577d1f47030 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6134: cd63c83e23789eb194d38b8d272247a88122f2f6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_20575: 64eb8b1471cbfd91da1eafb20e5b0e6669e3522c @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 64eb8b1471cb i915: map gvt pr_debug categories to bits in parameters/debug_gvt c3d19ae5f037 drm: RFC add choice to use dynamic debug in drm-debug b347ee940ec2 drm: fixup comment spelling 05ade4d62336 drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/index.html [-- Attachment #1.2: Type: text/html, Size: 7070 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 25+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for Allow using dyndbg to replace drm_debug_enabled 2021-07-11 5:49 ` Jim Cromie ` (8 preceding siblings ...) (?) @ 2021-07-12 17:02 ` Patchwork -1 siblings, 0 replies; 25+ messages in thread From: Patchwork @ 2021-07-12 17:02 UTC (permalink / raw) To: Jim Cromie; +Cc: intel-gfx [-- Attachment #1.1: Type: text/plain, Size: 30270 bytes --] == Series Details == Series: Allow using dyndbg to replace drm_debug_enabled URL : https://patchwork.freedesktop.org/series/92438/ State : failure == Summary == CI Bug Log - changes from CI_DRM_10333_full -> Patchwork_20575_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_20575_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_20575_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_20575_full: ### IGT changes ### #### Possible regressions #### * igt@gem_eio@hibernate: - shard-iclb: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb4/igt@gem_eio@hibernate.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb8/igt@gem_eio@hibernate.html Known issues ------------ Here are the changes found in Patchwork_20575_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ctx_isolation@preservation-s3@rcs0: - shard-apl: [PASS][3] -> [DMESG-WARN][4] ([i915#180]) +2 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-apl1/igt@gem_ctx_isolation@preservation-s3@rcs0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl6/igt@gem_ctx_isolation@preservation-s3@rcs0.html * igt@gem_ctx_persistence@hostile: - shard-snb: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#1099]) +3 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-snb2/igt@gem_ctx_persistence@hostile.html * igt@gem_eio@unwedge-stress: - shard-iclb: [PASS][6] -> [TIMEOUT][7] ([i915#2369] / [i915#2481] / [i915#3070]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb8/igt@gem_eio@unwedge-stress.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb2/igt@gem_eio@unwedge-stress.html - shard-snb: NOTRUN -> [FAIL][8] ([i915#3354]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-snb5/igt@gem_eio@unwedge-stress.html * igt@gem_exec_fair@basic-deadline: - shard-glk: [PASS][9] -> [FAIL][10] ([i915#2846]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-glk1/igt@gem_exec_fair@basic-deadline.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk7/igt@gem_exec_fair@basic-deadline.html * igt@gem_exec_fair@basic-none-rrul@rcs0: - shard-kbl: [PASS][11] -> [FAIL][12] ([i915#2842]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl6/igt@gem_exec_fair@basic-none-rrul@rcs0.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-iclb: NOTRUN -> [FAIL][13] ([i915#2842]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb2/igt@gem_exec_fair@basic-none-share@rcs0.html - shard-tglb: [PASS][14] -> [FAIL][15] ([i915#2842]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-tglb2/igt@gem_exec_fair@basic-none-share@rcs0.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-none-vip@rcs0: - shard-tglb: NOTRUN -> [FAIL][16] ([i915#2842]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@gem_exec_fair@basic-none-vip@rcs0.html * igt@gem_exec_fair@basic-pace-solo@rcs0: - shard-glk: [PASS][17] -> [FAIL][18] ([i915#2842]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-glk4/igt@gem_exec_fair@basic-pace-solo@rcs0.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk6/igt@gem_exec_fair@basic-pace-solo@rcs0.html * igt@gem_mmap_gtt@big-copy: - shard-skl: [PASS][19] -> [FAIL][20] ([i915#307]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl3/igt@gem_mmap_gtt@big-copy.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl6/igt@gem_mmap_gtt@big-copy.html * igt@gem_mmap_gtt@big-copy-odd: - shard-glk: [PASS][21] -> [FAIL][22] ([i915#307]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-glk7/igt@gem_mmap_gtt@big-copy-odd.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk1/igt@gem_mmap_gtt@big-copy-odd.html * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled: - shard-kbl: NOTRUN -> [SKIP][23] ([fdo#109271]) +92 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl1/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html * igt@gem_userptr_blits@access-control: - shard-tglb: NOTRUN -> [SKIP][24] ([i915#3297]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@gem_userptr_blits@access-control.html * igt@gem_userptr_blits@input-checking: - shard-apl: NOTRUN -> [DMESG-WARN][25] ([i915#3002]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl3/igt@gem_userptr_blits@input-checking.html * igt@gen9_exec_parse@basic-rejected-ctx-param: - shard-tglb: NOTRUN -> [SKIP][26] ([fdo#112306]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@gen9_exec_parse@basic-rejected-ctx-param.html * igt@i915_pm_dc@dc6-psr: - shard-skl: NOTRUN -> [FAIL][27] ([i915#454]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@i915_pm_dc@dc6-psr.html * igt@i915_pm_rpm@modeset-pc8-residency-stress: - shard-apl: NOTRUN -> [SKIP][28] ([fdo#109271]) +215 similar issues [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl1/igt@i915_pm_rpm@modeset-pc8-residency-stress.html * igt@kms_big_fb@linear-16bpp-rotate-270: - shard-tglb: NOTRUN -> [SKIP][29] ([fdo#111614]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_big_fb@linear-16bpp-rotate-270.html * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip: - shard-skl: NOTRUN -> [FAIL][30] ([i915#3722]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow: - shard-tglb: NOTRUN -> [SKIP][31] ([fdo#111615]) +1 similar issue [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][32] ([i915#3689]) +4 similar issues [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_ccs.html * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc: - shard-skl: NOTRUN -> [SKIP][33] ([fdo#109271]) +101 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html * igt@kms_chamelium@vga-edid-read: - shard-apl: NOTRUN -> [SKIP][34] ([fdo#109271] / [fdo#111827]) +19 similar issues [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl3/igt@kms_chamelium@vga-edid-read.html * igt@kms_chamelium@vga-hpd-without-ddc: - shard-iclb: NOTRUN -> [SKIP][35] ([fdo#109284] / [fdo#111827]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb2/igt@kms_chamelium@vga-hpd-without-ddc.html * igt@kms_color_chamelium@pipe-a-ctm-0-75: - shard-kbl: NOTRUN -> [SKIP][36] ([fdo#109271] / [fdo#111827]) +7 similar issues [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl7/igt@kms_color_chamelium@pipe-a-ctm-0-75.html * igt@kms_color_chamelium@pipe-a-ctm-blue-to-red: - shard-snb: NOTRUN -> [SKIP][37] ([fdo#109271] / [fdo#111827]) +13 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-snb5/igt@kms_color_chamelium@pipe-a-ctm-blue-to-red.html * igt@kms_color_chamelium@pipe-d-ctm-0-25: - shard-skl: NOTRUN -> [SKIP][38] ([fdo#109271] / [fdo#111827]) +11 similar issues [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@kms_color_chamelium@pipe-d-ctm-0-25.html * igt@kms_color_chamelium@pipe-d-ctm-blue-to-red: - shard-glk: NOTRUN -> [SKIP][39] ([fdo#109271] / [fdo#111827]) +1 similar issue [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk8/igt@kms_color_chamelium@pipe-d-ctm-blue-to-red.html * igt@kms_color_chamelium@pipe-d-ctm-max: - shard-tglb: NOTRUN -> [SKIP][40] ([fdo#109284] / [fdo#111827]) +5 similar issues [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_color_chamelium@pipe-d-ctm-max.html * igt@kms_content_protection@atomic: - shard-kbl: NOTRUN -> [TIMEOUT][41] ([i915#1319]) +1 similar issue [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl2/igt@kms_content_protection@atomic.html * igt@kms_content_protection@lic: - shard-apl: NOTRUN -> [TIMEOUT][42] ([i915#1319]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl3/igt@kms_content_protection@lic.html * igt@kms_cursor_crc@pipe-a-cursor-32x32-sliding: - shard-tglb: NOTRUN -> [SKIP][43] ([i915#3319]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-32x32-sliding.html * igt@kms_cursor_crc@pipe-b-cursor-512x512-offscreen: - shard-tglb: NOTRUN -> [SKIP][44] ([fdo#109279] / [i915#3359]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-512x512-offscreen.html * igt@kms_cursor_crc@pipe-c-cursor-max-size-onscreen: - shard-tglb: NOTRUN -> [SKIP][45] ([i915#3359]) +2 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_cursor_crc@pipe-c-cursor-max-size-onscreen.html * igt@kms_cursor_crc@pipe-d-cursor-512x170-offscreen: - shard-iclb: NOTRUN -> [SKIP][46] ([fdo#109278]) +2 similar issues [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb2/igt@kms_cursor_crc@pipe-d-cursor-512x170-offscreen.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic: - shard-skl: NOTRUN -> [FAIL][47] ([i915#2346]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl6/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html * igt@kms_cursor_legacy@pipe-d-torture-bo: - shard-apl: NOTRUN -> [SKIP][48] ([fdo#109271] / [i915#533]) +2 similar issues [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl1/igt@kms_cursor_legacy@pipe-d-torture-bo.html * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible: - shard-tglb: NOTRUN -> [SKIP][49] ([fdo#111825]) +12 similar issues [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html * igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2: - shard-glk: [PASS][50] -> [FAIL][51] ([i915#79]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html * igt@kms_flip@flip-vs-expired-vblank@c-edp1: - shard-skl: [PASS][52] -> [FAIL][53] ([i915#79]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl4/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl3/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html * igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1: - shard-skl: [PASS][54] -> [FAIL][55] ([i915#2122]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl1/igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl7/igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile: - shard-snb: NOTRUN -> [SKIP][56] ([fdo#109271]) +281 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-snb2/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw: - shard-glk: NOTRUN -> [SKIP][57] ([fdo#109271]) +12 similar issues [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk8/igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt: - shard-iclb: NOTRUN -> [SKIP][58] ([fdo#109280]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt.html * igt@kms_hdr@bpc-switch-dpms: - shard-skl: [PASS][59] -> [FAIL][60] ([i915#1188]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl10/igt@kms_hdr@bpc-switch-dpms.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl5/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb: - shard-apl: NOTRUN -> [FAIL][61] ([fdo#108145] / [i915#265]) +3 similar issues [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl3/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html * igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb: - shard-apl: NOTRUN -> [FAIL][62] ([i915#265]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html * igt@kms_plane_alpha_blend@pipe-b-alpha-basic: - shard-kbl: NOTRUN -> [FAIL][63] ([fdo#108145] / [i915#265]) +1 similar issue [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl1/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc: - shard-skl: [PASS][64] -> [FAIL][65] ([fdo#108145] / [i915#265]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl2/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc: - shard-skl: NOTRUN -> [FAIL][66] ([fdo#108145] / [i915#265]) [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html * igt@kms_plane_lowres@pipe-d-tiling-yf: - shard-tglb: NOTRUN -> [SKIP][67] ([fdo#112054]) +1 similar issue [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_plane_lowres@pipe-d-tiling-yf.html * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping: - shard-apl: NOTRUN -> [SKIP][68] ([fdo#109271] / [i915#2733]) [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl8/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html - shard-kbl: NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#2733]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl6/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html - shard-skl: NOTRUN -> [SKIP][70] ([fdo#109271] / [i915#2733]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1: - shard-kbl: NOTRUN -> [SKIP][71] ([fdo#109271] / [i915#658]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1.html - shard-glk: NOTRUN -> [SKIP][72] ([fdo#109271] / [i915#658]) [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk8/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1.html * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-1: - shard-skl: NOTRUN -> [SKIP][73] ([fdo#109271] / [i915#658]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-1.html * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5: - shard-apl: NOTRUN -> [SKIP][74] ([fdo#109271] / [i915#658]) +4 similar issues [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl3/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5.html * igt@kms_psr@psr2_sprite_mmap_cpu: - shard-tglb: NOTRUN -> [FAIL][75] ([i915#132] / [i915#3467]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@kms_psr@psr2_sprite_mmap_cpu.html * igt@kms_psr@psr2_sprite_plane_move: - shard-iclb: [PASS][76] -> [SKIP][77] ([fdo#109441]) +1 similar issue [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb7/igt@kms_psr@psr2_sprite_plane_move.html * igt@kms_vblank@pipe-d-wait-idle: - shard-kbl: NOTRUN -> [SKIP][78] ([fdo#109271] / [i915#533]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl1/igt@kms_vblank@pipe-d-wait-idle.html * igt@kms_writeback@writeback-pixel-formats: - shard-apl: NOTRUN -> [SKIP][79] ([fdo#109271] / [i915#2437]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl3/igt@kms_writeback@writeback-pixel-formats.html * igt@nouveau_crc@pipe-b-source-outp-complete: - shard-tglb: NOTRUN -> [SKIP][80] ([i915#2530]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@nouveau_crc@pipe-b-source-outp-complete.html * igt@perf@blocking: - shard-skl: [PASS][81] -> [FAIL][82] ([i915#1542]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl7/igt@perf@blocking.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl6/igt@perf@blocking.html * igt@perf_pmu@cpu-hotplug: - shard-iclb: [PASS][83] -> [TIMEOUT][84] ([i915#3077]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb4/igt@perf_pmu@cpu-hotplug.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb8/igt@perf_pmu@cpu-hotplug.html * igt@perf_pmu@rc6-suspend: - shard-kbl: [PASS][85] -> [DMESG-WARN][86] ([i915#180]) +3 similar issues [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-kbl4/igt@perf_pmu@rc6-suspend.html [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl2/igt@perf_pmu@rc6-suspend.html * igt@prime_nv_api@nv_self_import: - shard-tglb: NOTRUN -> [SKIP][87] ([fdo#109291]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb1/igt@prime_nv_api@nv_self_import.html * igt@sysfs_clients@recycle: - shard-apl: NOTRUN -> [SKIP][88] ([fdo#109271] / [i915#2994]) +1 similar issue [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-apl3/igt@sysfs_clients@recycle.html #### Possible fixes #### * igt@gem_eio@in-flight-contexts-10ms: - shard-tglb: [TIMEOUT][89] ([i915#3063]) -> [PASS][90] [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-tglb2/igt@gem_eio@in-flight-contexts-10ms.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb6/igt@gem_eio@in-flight-contexts-10ms.html * igt@gem_eio@unwedge-stress: - {shard-rkl}: [TIMEOUT][91] ([i915#3063]) -> [PASS][92] [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-rkl-2/igt@gem_eio@unwedge-stress.html [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-rkl-2/igt@gem_eio@unwedge-stress.html * igt@gem_exec_fair@basic-flow@rcs0: - shard-tglb: [FAIL][93] ([i915#2842]) -> [PASS][94] [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-tglb1/igt@gem_exec_fair@basic-flow@rcs0.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-tglb2/igt@gem_exec_fair@basic-flow@rcs0.html * igt@gem_exec_fair@basic-pace@rcs0: - shard-kbl: [FAIL][95] ([i915#2842]) -> [PASS][96] +1 similar issue [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-kbl3/igt@gem_exec_fair@basic-pace@rcs0.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl3/igt@gem_exec_fair@basic-pace@rcs0.html * igt@gem_mmap_gtt@cpuset-big-copy-xy: - shard-iclb: [FAIL][97] ([i915#2428]) -> [PASS][98] [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb2/igt@gem_mmap_gtt@cpuset-big-copy-xy.html [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb1/igt@gem_mmap_gtt@cpuset-big-copy-xy.html * igt@gem_mmap_offset@clear: - shard-skl: [FAIL][99] ([i915#3160]) -> [PASS][100] [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl7/igt@gem_mmap_offset@clear.html [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl6/igt@gem_mmap_offset@clear.html * igt@gen9_exec_parse@allowed-single: - shard-skl: [DMESG-WARN][101] ([i915#1436] / [i915#716]) -> [PASS][102] [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl4/igt@gen9_exec_parse@allowed-single.html [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@gen9_exec_parse@allowed-single.html * igt@i915_suspend@sysfs-reader: - shard-skl: [INCOMPLETE][103] ([i915#198]) -> [PASS][104] [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl5/igt@i915_suspend@sysfs-reader.html [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@i915_suspend@sysfs-reader.html * igt@kms_big_fb@y-tiled-32bpp-rotate-0: - shard-glk: [DMESG-WARN][105] ([i915#118] / [i915#95]) -> [PASS][106] +1 similar issue [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-glk2/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk6/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html * igt@kms_big_fb@y-tiled-64bpp-rotate-0: - shard-iclb: [FAIL][107] -> [PASS][108] [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb1/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb4/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html * igt@kms_color@pipe-a-ctm-0-25: - shard-skl: [DMESG-WARN][109] ([i915#1982]) -> [PASS][110] [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl3/igt@kms_color@pipe-a-ctm-0-25.html [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl8/igt@kms_color@pipe-a-ctm-0-25.html * igt@kms_cursor_crc@pipe-a-cursor-64x64-offscreen: - shard-skl: [FAIL][111] ([i915#3444]) -> [PASS][112] [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl7/igt@kms_cursor_crc@pipe-a-cursor-64x64-offscreen.html [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl6/igt@kms_cursor_crc@pipe-a-cursor-64x64-offscreen.html * igt@kms_cursor_legacy@flip-vs-cursor-legacy: - shard-skl: [FAIL][113] ([i915#2346]) -> [PASS][114] [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl3/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl8/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html * igt@kms_dp_aux_dev: - shard-iclb: [DMESG-WARN][115] ([i915#262]) -> [PASS][116] [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb7/igt@kms_dp_aux_dev.html [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb3/igt@kms_dp_aux_dev.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][117] ([i915#2122]) -> [PASS][118] [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-glk3/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html * igt@kms_flip@flip-vs-expired-vblank@a-edp1: - shard-skl: [FAIL][119] ([i915#79]) -> [PASS][120] [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl4/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1: - shard-kbl: [DMESG-WARN][121] ([i915#180]) -> [PASS][122] +4 similar issues [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html * igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1: - shard-skl: [FAIL][123] ([i915#2122]) -> [PASS][124] +1 similar issue [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl1/igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1.html [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl7/igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1.html * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt: - {shard-rkl}: [FAIL][125] -> [PASS][126] [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc: - shard-skl: [FAIL][127] ([fdo#108145] / [i915#265]) -> [PASS][128] [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-skl5/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html * igt@kms_plane_multiple@atomic-pipe-a-tiling-yf: - shard-glk: [FAIL][129] ([i915#1779]) -> [PASS][130] [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-glk2/igt@kms_plane_multiple@atomic-pipe-a-tiling-yf.html [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-glk6/igt@kms_plane_multiple@atomic-pipe-a-tiling-yf.html * igt@kms_psr@psr2_sprite_blt: - shard-iclb: [SKIP][131] ([fdo#109441]) -> [PASS][132] +1 similar issue [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb6/igt@kms_psr@psr2_sprite_blt.html [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html * igt@perf@polling-parameterized: - shard-iclb: [FAIL][133] ([i915#1542]) -> [PASS][134] [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb6/igt@perf@polling-parameterized.html [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb1/igt@perf@polling-parameterized.html * igt@sysfs_timeslice_duration@timeout@vecs0: - {shard-rkl}: [FAIL][135] ([i915#1755]) -> [PASS][136] [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-rkl-2/igt@sysfs_timeslice_duration@timeout@vecs0.html [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-rkl-5/igt@sysfs_timeslice_duration@timeout@vecs0.html #### Warnings #### * igt@i915_pm_dc@dc3co-vpb-simulation: - shard-iclb: [SKIP][137] ([i915#588]) -> [SKIP][138] ([i915#658]) [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb7/igt@i915_pm_dc@dc3co-vpb-simulation.html * igt@i915_pm_rc6_residency@rc6-idle: - shard-iclb: [WARN][139] ([i915#1804] / [i915#2684]) -> [WARN][140] ([i915#2684]) [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb4/igt@i915_pm_rc6_residency@rc6-idle.html [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb8/igt@i915_pm_rc6_residency@rc6-idle.html * igt@kms_dp_dsc@basic-dsc-enable-edp: - shard-iclb: [SKIP][141] ([fdo#109349]) -> [DMESG-WARN][142] ([i915#1226]) [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10333/shard-iclb8/igt@kms_dp_dsc@basic-dsc-enable-edp.html [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4: - shard-iclb: [SKIP][1 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20575/index.html [-- Attachment #1.2: Type: text/html, Size: 33520 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2021-07-13 1:39 UTC | newest] Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-07-11 5:49 [RFC PATCH v2 0/4] Allow using dyndbg to replace drm_debug_enabled Jim Cromie 2021-07-11 5:49 ` [Intel-gfx] " Jim Cromie 2021-07-11 5:49 ` Jim Cromie 2021-07-11 5:49 ` [RFC PATCH v2 1/4] drm_print.h: rewrap __DRM_DEFINE_DBG_RATELIMITED macro Jim Cromie 2021-07-11 5:49 ` [Intel-gfx] " Jim Cromie 2021-07-11 5:49 ` Jim Cromie 2021-07-11 16:17 ` Joe Perches 2021-07-11 16:17 ` [Intel-gfx] " Joe Perches 2021-07-11 16:17 ` Joe Perches 2021-07-13 1:38 ` jim.cromie 2021-07-13 1:38 ` [Intel-gfx] " jim.cromie 2021-07-13 1:38 ` jim.cromie 2021-07-11 5:50 ` [RFC PATCH v2 2/4] drm: fixup comment spelling Jim Cromie 2021-07-11 5:50 ` [Intel-gfx] " Jim Cromie 2021-07-11 5:50 ` Jim Cromie 2021-07-11 5:50 ` [RFC PATCH v2 3/4] drm: RFC add choice to use dynamic debug in drm-debug Jim Cromie 2021-07-11 5:50 ` [Intel-gfx] " Jim Cromie 2021-07-11 5:50 ` Jim Cromie 2021-07-11 5:50 ` [RFC PATCH v2 4/4] i915: map gvt pr_debug categories to bits in parameters/debug_gvt Jim Cromie 2021-07-11 5:50 ` [Intel-gfx] " Jim Cromie 2021-07-11 5:50 ` Jim Cromie 2021-07-12 14:14 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Allow using dyndbg to replace drm_debug_enabled Patchwork 2021-07-12 14:17 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2021-07-12 14:41 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2021-07-12 17:02 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.