* [PATCH] drm/i915: Dump skl+ watermark changes
@ 2019-02-08 20:05 Ville Syrjala
2019-02-08 21:05 ` ✗ Fi.CI.BAT: failure for " Patchwork
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Ville Syrjala @ 2019-02-08 20:05 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Currently we're only dumping out the ddb allocation changes, let's do
the same for the watermarks. This should help with debugging underruns
and whatnot.
First I tried one line per plane per wm level, but that resulted in
an obnoxious amount of lines printed. So as a compromise I settled
on a four line format, each line containing a single watermark related
value (enable,lines,blocks,min_ddb_alloc) for all 8 levels (+trans wm).
It still produces quite a lot of output but I can't really see a way
around that because we simply have a lot of data to dump.
Let's also pimp the ddb debug to print the size of the allocations
too, not just their bounds. Makes it a bit easier to compare against
the watermarks.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_pm.c | 86 +++++++++++++++++++++++++++++++--
1 file changed, 83 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 54307f1df6cf..454581b044ad 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5269,6 +5269,11 @@ skl_compute_ddb(struct intel_atomic_state *state)
return 0;
}
+static char enast(bool enable)
+{
+ return enable ? '*' : ' ';
+}
+
static void
skl_print_wm_changes(struct intel_atomic_state *state)
{
@@ -5279,8 +5284,16 @@ skl_print_wm_changes(struct intel_atomic_state *state)
struct intel_crtc *crtc;
int i;
+ if ((drm_debug & DRM_UT_KMS) == 0)
+ return;
+
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
new_crtc_state, i) {
+ const struct skl_pipe_wm *old_pipe_wm, *new_pipe_wm;
+
+ old_pipe_wm = &old_crtc_state->wm.skl.optimal;
+ new_pipe_wm = &new_crtc_state->wm.skl.optimal;
+
for_each_intel_plane_on_crtc(&dev_priv->drm, crtc, plane) {
enum plane_id plane_id = plane->id;
const struct skl_ddb_entry *old, *new;
@@ -5291,10 +5304,77 @@ skl_print_wm_changes(struct intel_atomic_state *state)
if (skl_ddb_entry_equal(old, new))
continue;
- DRM_DEBUG_KMS("[PLANE:%d:%s] ddb (%d - %d) -> (%d - %d)\n",
+ DRM_DEBUG_KMS("[PLANE:%d:%s] ddb (%4d - %4d) -> (%4d - %4d), size %4d -> %4d\n",
+ plane->base.base.id, plane->base.name,
+ old->start, old->end, new->start, new->end,
+ skl_ddb_entry_size(old), skl_ddb_entry_size(new));
+ }
+
+ for_each_intel_plane_on_crtc(&dev_priv->drm, crtc, plane) {
+ enum plane_id plane_id = plane->id;
+ const struct skl_plane_wm *old_wm, *new_wm;
+
+ old_wm = &old_pipe_wm->planes[plane_id];
+ new_wm = &new_pipe_wm->planes[plane_id];
+
+ if (skl_plane_wm_equals(dev_priv, old_wm, new_wm))
+ continue;
+
+ DRM_DEBUG_KMS("[PLANE:%d:%s] level %cwm0,%cwm1,%cwm2,%cwm3,%cwm4,%cwm5,%cwm6,%cwm7,%ctwm"
+ " -> %cwm0,%cwm1,%cwm2,%cwm3,%cwm4,%cwm5,%cwm6,%cwm7,%ctwm\n",
+ plane->base.base.id, plane->base.name,
+ enast(old_wm->wm[0].plane_en), enast(old_wm->wm[1].plane_en),
+ enast(old_wm->wm[2].plane_en), enast(old_wm->wm[3].plane_en),
+ enast(old_wm->wm[4].plane_en), enast(old_wm->wm[5].plane_en),
+ enast(old_wm->wm[6].plane_en), enast(old_wm->wm[7].plane_en),
+ enast(old_wm->trans_wm.plane_en),
+ enast(new_wm->wm[0].plane_en), enast(new_wm->wm[1].plane_en),
+ enast(new_wm->wm[2].plane_en), enast(new_wm->wm[3].plane_en),
+ enast(new_wm->wm[4].plane_en), enast(new_wm->wm[5].plane_en),
+ enast(new_wm->wm[6].plane_en), enast(new_wm->wm[7].plane_en),
+ enast(new_wm->trans_wm.plane_en));
+
+ DRM_DEBUG_KMS("[PLANE:%d:%s] lines %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d"
+ " -> %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d\n",
+ plane->base.base.id, plane->base.name,
+ old_wm->wm[0].plane_res_l, old_wm->wm[1].plane_res_l,
+ old_wm->wm[2].plane_res_l, old_wm->wm[3].plane_res_l,
+ old_wm->wm[4].plane_res_l, old_wm->wm[5].plane_res_l,
+ old_wm->wm[6].plane_res_l, old_wm->wm[7].plane_res_l,
+ old_wm->trans_wm.plane_res_l,
+ new_wm->wm[0].plane_res_l, new_wm->wm[1].plane_res_l,
+ new_wm->wm[2].plane_res_l, new_wm->wm[3].plane_res_l,
+ new_wm->wm[4].plane_res_l, new_wm->wm[5].plane_res_l,
+ new_wm->wm[6].plane_res_l, new_wm->wm[7].plane_res_l,
+ new_wm->trans_wm.plane_res_l);
+
+ DRM_DEBUG_KMS("[PLANE:%d:%s] blocks %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d"
+ " -> %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d\n",
+ plane->base.base.id, plane->base.name,
+ old_wm->wm[0].plane_res_b, old_wm->wm[1].plane_res_b,
+ old_wm->wm[2].plane_res_b, old_wm->wm[3].plane_res_b,
+ old_wm->wm[4].plane_res_b, old_wm->wm[5].plane_res_b,
+ old_wm->wm[6].plane_res_b, old_wm->wm[7].plane_res_b,
+ old_wm->trans_wm.plane_res_b,
+ new_wm->wm[0].plane_res_b, new_wm->wm[1].plane_res_b,
+ new_wm->wm[2].plane_res_b, new_wm->wm[3].plane_res_b,
+ new_wm->wm[4].plane_res_b, new_wm->wm[5].plane_res_b,
+ new_wm->wm[6].plane_res_b, new_wm->wm[7].plane_res_b,
+ new_wm->trans_wm.plane_res_b);
+
+ DRM_DEBUG_KMS("[PLANE:%d:%s] min_ddb %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d"
+ " -> %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d\n",
plane->base.base.id, plane->base.name,
- old->start, old->end,
- new->start, new->end);
+ old_wm->wm[0].min_ddb_alloc, old_wm->wm[1].min_ddb_alloc,
+ old_wm->wm[2].min_ddb_alloc, old_wm->wm[3].min_ddb_alloc,
+ old_wm->wm[4].min_ddb_alloc, old_wm->wm[5].min_ddb_alloc,
+ old_wm->wm[6].min_ddb_alloc, old_wm->wm[7].min_ddb_alloc,
+ old_wm->trans_wm.min_ddb_alloc,
+ new_wm->wm[0].min_ddb_alloc, new_wm->wm[1].min_ddb_alloc,
+ new_wm->wm[2].min_ddb_alloc, new_wm->wm[3].min_ddb_alloc,
+ new_wm->wm[4].min_ddb_alloc, new_wm->wm[5].min_ddb_alloc,
+ new_wm->wm[6].min_ddb_alloc, new_wm->wm[7].min_ddb_alloc,
+ new_wm->trans_wm.min_ddb_alloc);
}
}
}
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 5+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Dump skl+ watermark changes
2019-02-08 20:05 [PATCH] drm/i915: Dump skl+ watermark changes Ville Syrjala
@ 2019-02-08 21:05 ` Patchwork
2019-02-08 21:59 ` ✓ Fi.CI.BAT: success for drm/i915: Dump skl+ watermark changes (rev2) Patchwork
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2019-02-08 21:05 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Dump skl+ watermark changes
URL : https://patchwork.freedesktop.org/series/56432/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_5569 -> Patchwork_12182
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_12182 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_12182, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://patchwork.freedesktop.org/api/1.0/series/56432/revisions/1/mbox/
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_12182:
### IGT changes ###
#### Possible regressions ####
* igt@i915_module_load@reload-no-display:
- fi-bwr-2160: PASS -> INCOMPLETE
Known issues
------------
Here are the changes found in Patchwork_12182 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: PASS -> FAIL [fdo#109485]
* igt@kms_frontbuffer_tracking@basic:
- fi-byt-clapper: PASS -> FAIL [fdo#103167]
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718]
#### Possible fixes ####
* igt@kms_frontbuffer_tracking@basic:
- {fi-icl-u2}: FAIL [fdo#103167] -> PASS
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
- fi-byt-clapper: FAIL [fdo#107362] -> PASS
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
- fi-kbl-7567u: {SKIP} [fdo#109271] -> PASS +27
#### Warnings ####
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- fi-kbl-7567u: {SKIP} [fdo#109271] -> DMESG-FAIL [fdo#105079] +1
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#105079]: https://bugs.freedesktop.org/show_bug.cgi?id=105079
[fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
Participating hosts (49 -> 43)
------------------------------
Missing (6): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-pnv-d510 fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_5569 -> Patchwork_12182
CI_DRM_5569: eb0dd5012cde0dc56f703b801f50dfd53c182122 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4815: 947301563259726b65ce47d3a3fe37931ed42efe @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_12182: 2149391d5038187e03b7bffe22a7b6363461c2b2 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
2149391d5038 drm/i915: Dump skl+ watermark changes
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12182/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 5+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Dump skl+ watermark changes (rev2)
2019-02-08 20:05 [PATCH] drm/i915: Dump skl+ watermark changes Ville Syrjala
2019-02-08 21:05 ` ✗ Fi.CI.BAT: failure for " Patchwork
@ 2019-02-08 21:59 ` Patchwork
2019-02-09 3:20 ` ✓ Fi.CI.IGT: " Patchwork
2019-02-11 19:15 ` [PATCH] drm/i915: Dump skl+ watermark changes Clint Taylor
3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2019-02-08 21:59 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Dump skl+ watermark changes (rev2)
URL : https://patchwork.freedesktop.org/series/56432/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5569 -> Patchwork_12183
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/56432/revisions/2/mbox/
Known issues
------------
Here are the changes found in Patchwork_12183 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718]
* igt@pm_rpm@basic-rte:
- fi-byt-j1900: PASS -> FAIL [fdo#108800]
* igt@pm_rpm@module-reload:
- fi-skl-6770hq: PASS -> FAIL [fdo#108511]
* igt@prime_vgem@basic-fence-flip:
- fi-skl-iommu: PASS -> FAIL [fdo#104008]
#### Possible fixes ####
* igt@kms_frontbuffer_tracking@basic:
- {fi-icl-u2}: FAIL [fdo#103167] -> PASS
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
- fi-byt-clapper: FAIL [fdo#107362] -> PASS
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008
[fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
Participating hosts (49 -> 42)
------------------------------
Missing (7): fi-kbl-soraka fi-ilk-m540 fi-bdw-5557u fi-byt-squawks fi-bsw-cyan fi-apl-guc fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_5569 -> Patchwork_12183
CI_DRM_5569: eb0dd5012cde0dc56f703b801f50dfd53c182122 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4815: 947301563259726b65ce47d3a3fe37931ed42efe @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_12183: 63a741dca18af291dc5401007bc24227e6b41abf @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
63a741dca18a drm/i915: Dump skl+ watermark changes
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12183/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 5+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915: Dump skl+ watermark changes (rev2)
2019-02-08 20:05 [PATCH] drm/i915: Dump skl+ watermark changes Ville Syrjala
2019-02-08 21:05 ` ✗ Fi.CI.BAT: failure for " Patchwork
2019-02-08 21:59 ` ✓ Fi.CI.BAT: success for drm/i915: Dump skl+ watermark changes (rev2) Patchwork
@ 2019-02-09 3:20 ` Patchwork
2019-02-11 19:15 ` [PATCH] drm/i915: Dump skl+ watermark changes Clint Taylor
3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2019-02-09 3:20 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Dump skl+ watermark changes (rev2)
URL : https://patchwork.freedesktop.org/series/56432/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5569_full -> Patchwork_12183_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_12183_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_mmap_gtt@hang:
- shard-snb: PASS -> INCOMPLETE [fdo#105411]
* igt@kms_cursor_crc@cursor-64x21-random:
- shard-apl: PASS -> FAIL [fdo#103232] +4
* igt@kms_flip@flip-vs-expired-vblank:
- shard-glk: PASS -> FAIL [fdo#105363]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-apl: PASS -> FAIL [fdo#103167]
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-glk: PASS -> FAIL [fdo#103167] +3
* igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
- shard-apl: PASS -> FAIL [fdo#103166] +2
* igt@kms_rotation_crc@multiplane-rotation:
- shard-kbl: PASS -> FAIL [fdo#109016]
* igt@kms_setmode@basic:
- shard-kbl: PASS -> FAIL [fdo#99912]
* igt@kms_universal_plane@universal-plane-pipe-c-functional:
- shard-glk: PASS -> FAIL [fdo#103166] +2
* igt@pm_rpm@gem-mmap-gtt:
- shard-kbl: PASS -> DMESG-WARN [fdo#103313]
#### Possible fixes ####
* igt@gem_exec_big:
- shard-hsw: TIMEOUT [fdo#107937] -> PASS
* igt@gem_exec_reloc@basic-wc-cpu-active:
- shard-hsw: INCOMPLETE [fdo#103540] -> PASS
* igt@kms_cursor_crc@cursor-256x85-random:
- shard-apl: FAIL [fdo#103232] -> PASS
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
- shard-glk: FAIL [fdo#103167] -> PASS +2
* igt@kms_plane@plane-panning-bottom-right-pipe-a-planes:
- shard-snb: {SKIP} [fdo#109271] -> PASS +5
* igt@kms_plane@plane-position-covered-pipe-c-planes:
- shard-apl: FAIL [fdo#103166] -> PASS +1
* igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
- shard-glk: FAIL [fdo#103166] -> PASS +2
#### Warnings ####
* igt@kms_frontbuffer_tracking@fbc-farfromfence:
- shard-snb: INCOMPLETE [fdo#105411] / [fdo#107469] -> DMESG-FAIL [fdo#107469]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
[fdo#103313]: https://bugs.freedesktop.org/show_bug.cgi?id=103313
[fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
[fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
[fdo#107937]: https://bugs.freedesktop.org/show_bug.cgi?id=107937
[fdo#109016]: https://bugs.freedesktop.org/show_bug.cgi?id=109016
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
[k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321
Participating hosts (7 -> 5)
------------------------------
Missing (2): shard-skl shard-iclb
Build changes
-------------
* Linux: CI_DRM_5569 -> Patchwork_12183
CI_DRM_5569: eb0dd5012cde0dc56f703b801f50dfd53c182122 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4815: 947301563259726b65ce47d3a3fe37931ed42efe @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_12183: 63a741dca18af291dc5401007bc24227e6b41abf @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12183/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/i915: Dump skl+ watermark changes
2019-02-08 20:05 [PATCH] drm/i915: Dump skl+ watermark changes Ville Syrjala
` (2 preceding siblings ...)
2019-02-09 3:20 ` ✓ Fi.CI.IGT: " Patchwork
@ 2019-02-11 19:15 ` Clint Taylor
3 siblings, 0 replies; 5+ messages in thread
From: Clint Taylor @ 2019-02-11 19:15 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 6501 bytes --]
Reviewed-by: Clint Taylor <Clinton.A.Taylor@intel.com>
-Clint
On 2/8/19 12:05, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Currently we're only dumping out the ddb allocation changes, let's do
> the same for the watermarks. This should help with debugging underruns
> and whatnot.
>
> First I tried one line per plane per wm level, but that resulted in
> an obnoxious amount of lines printed. So as a compromise I settled
> on a four line format, each line containing a single watermark related
> value (enable,lines,blocks,min_ddb_alloc) for all 8 levels (+trans wm).
> It still produces quite a lot of output but I can't really see a way
> around that because we simply have a lot of data to dump.
>
> Let's also pimp the ddb debug to print the size of the allocations
> too, not just their bounds. Makes it a bit easier to compare against
> the watermarks.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_pm.c | 86 +++++++++++++++++++++++++++++++--
> 1 file changed, 83 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 54307f1df6cf..454581b044ad 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5269,6 +5269,11 @@ skl_compute_ddb(struct intel_atomic_state *state)
> return 0;
> }
>
> +static char enast(bool enable)
> +{
> + return enable ? '*' : ' ';
> +}
> +
> static void
> skl_print_wm_changes(struct intel_atomic_state *state)
> {
> @@ -5279,8 +5284,16 @@ skl_print_wm_changes(struct intel_atomic_state *state)
> struct intel_crtc *crtc;
> int i;
>
> + if ((drm_debug & DRM_UT_KMS) == 0)
> + return;
> +
> for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
> new_crtc_state, i) {
> + const struct skl_pipe_wm *old_pipe_wm, *new_pipe_wm;
> +
> + old_pipe_wm = &old_crtc_state->wm.skl.optimal;
> + new_pipe_wm = &new_crtc_state->wm.skl.optimal;
> +
> for_each_intel_plane_on_crtc(&dev_priv->drm, crtc, plane) {
> enum plane_id plane_id = plane->id;
> const struct skl_ddb_entry *old, *new;
> @@ -5291,10 +5304,77 @@ skl_print_wm_changes(struct intel_atomic_state *state)
> if (skl_ddb_entry_equal(old, new))
> continue;
>
> - DRM_DEBUG_KMS("[PLANE:%d:%s] ddb (%d - %d) -> (%d - %d)\n",
> + DRM_DEBUG_KMS("[PLANE:%d:%s] ddb (%4d - %4d) -> (%4d - %4d), size %4d -> %4d\n",
> + plane->base.base.id, plane->base.name,
> + old->start, old->end, new->start, new->end,
> + skl_ddb_entry_size(old), skl_ddb_entry_size(new));
> + }
> +
> + for_each_intel_plane_on_crtc(&dev_priv->drm, crtc, plane) {
> + enum plane_id plane_id = plane->id;
> + const struct skl_plane_wm *old_wm, *new_wm;
> +
> + old_wm = &old_pipe_wm->planes[plane_id];
> + new_wm = &new_pipe_wm->planes[plane_id];
> +
> + if (skl_plane_wm_equals(dev_priv, old_wm, new_wm))
> + continue;
> +
> + DRM_DEBUG_KMS("[PLANE:%d:%s] level %cwm0,%cwm1,%cwm2,%cwm3,%cwm4,%cwm5,%cwm6,%cwm7,%ctwm"
> + " -> %cwm0,%cwm1,%cwm2,%cwm3,%cwm4,%cwm5,%cwm6,%cwm7,%ctwm\n",
> + plane->base.base.id, plane->base.name,
> + enast(old_wm->wm[0].plane_en), enast(old_wm->wm[1].plane_en),
> + enast(old_wm->wm[2].plane_en), enast(old_wm->wm[3].plane_en),
> + enast(old_wm->wm[4].plane_en), enast(old_wm->wm[5].plane_en),
> + enast(old_wm->wm[6].plane_en), enast(old_wm->wm[7].plane_en),
> + enast(old_wm->trans_wm.plane_en),
> + enast(new_wm->wm[0].plane_en), enast(new_wm->wm[1].plane_en),
> + enast(new_wm->wm[2].plane_en), enast(new_wm->wm[3].plane_en),
> + enast(new_wm->wm[4].plane_en), enast(new_wm->wm[5].plane_en),
> + enast(new_wm->wm[6].plane_en), enast(new_wm->wm[7].plane_en),
> + enast(new_wm->trans_wm.plane_en));
> +
> + DRM_DEBUG_KMS("[PLANE:%d:%s] lines %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d"
> + " -> %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d\n",
> + plane->base.base.id, plane->base.name,
> + old_wm->wm[0].plane_res_l, old_wm->wm[1].plane_res_l,
> + old_wm->wm[2].plane_res_l, old_wm->wm[3].plane_res_l,
> + old_wm->wm[4].plane_res_l, old_wm->wm[5].plane_res_l,
> + old_wm->wm[6].plane_res_l, old_wm->wm[7].plane_res_l,
> + old_wm->trans_wm.plane_res_l,
> + new_wm->wm[0].plane_res_l, new_wm->wm[1].plane_res_l,
> + new_wm->wm[2].plane_res_l, new_wm->wm[3].plane_res_l,
> + new_wm->wm[4].plane_res_l, new_wm->wm[5].plane_res_l,
> + new_wm->wm[6].plane_res_l, new_wm->wm[7].plane_res_l,
> + new_wm->trans_wm.plane_res_l);
> +
> + DRM_DEBUG_KMS("[PLANE:%d:%s] blocks %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d"
> + " -> %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d\n",
> + plane->base.base.id, plane->base.name,
> + old_wm->wm[0].plane_res_b, old_wm->wm[1].plane_res_b,
> + old_wm->wm[2].plane_res_b, old_wm->wm[3].plane_res_b,
> + old_wm->wm[4].plane_res_b, old_wm->wm[5].plane_res_b,
> + old_wm->wm[6].plane_res_b, old_wm->wm[7].plane_res_b,
> + old_wm->trans_wm.plane_res_b,
> + new_wm->wm[0].plane_res_b, new_wm->wm[1].plane_res_b,
> + new_wm->wm[2].plane_res_b, new_wm->wm[3].plane_res_b,
> + new_wm->wm[4].plane_res_b, new_wm->wm[5].plane_res_b,
> + new_wm->wm[6].plane_res_b, new_wm->wm[7].plane_res_b,
> + new_wm->trans_wm.plane_res_b);
> +
> + DRM_DEBUG_KMS("[PLANE:%d:%s] min_ddb %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d"
> + " -> %4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d,%4d\n",
> plane->base.base.id, plane->base.name,
> - old->start, old->end,
> - new->start, new->end);
> + old_wm->wm[0].min_ddb_alloc, old_wm->wm[1].min_ddb_alloc,
> + old_wm->wm[2].min_ddb_alloc, old_wm->wm[3].min_ddb_alloc,
> + old_wm->wm[4].min_ddb_alloc, old_wm->wm[5].min_ddb_alloc,
> + old_wm->wm[6].min_ddb_alloc, old_wm->wm[7].min_ddb_alloc,
> + old_wm->trans_wm.min_ddb_alloc,
> + new_wm->wm[0].min_ddb_alloc, new_wm->wm[1].min_ddb_alloc,
> + new_wm->wm[2].min_ddb_alloc, new_wm->wm[3].min_ddb_alloc,
> + new_wm->wm[4].min_ddb_alloc, new_wm->wm[5].min_ddb_alloc,
> + new_wm->wm[6].min_ddb_alloc, new_wm->wm[7].min_ddb_alloc,
> + new_wm->trans_wm.min_ddb_alloc);
> }
> }
> }
[-- Attachment #1.2: Type: text/html, Size: 7417 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] 5+ messages in thread
end of thread, other threads:[~2019-02-11 19:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-08 20:05 [PATCH] drm/i915: Dump skl+ watermark changes Ville Syrjala
2019-02-08 21:05 ` ✗ Fi.CI.BAT: failure for " Patchwork
2019-02-08 21:59 ` ✓ Fi.CI.BAT: success for drm/i915: Dump skl+ watermark changes (rev2) Patchwork
2019-02-09 3:20 ` ✓ Fi.CI.IGT: " Patchwork
2019-02-11 19:15 ` [PATCH] drm/i915: Dump skl+ watermark changes Clint Taylor
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.