All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.