All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/slpc: Optmize waitboost for SLPC
@ 2022-10-18 22:15 ` Vinay Belgaumkar
  0 siblings, 0 replies; 8+ messages in thread
From: Vinay Belgaumkar @ 2022-10-18 22:15 UTC (permalink / raw)
  To: intel-gfx, dri-devel; +Cc: Vinay Belgaumkar

Waitboost (when SLPC is enabled) results in a H2G message. This can result
in thousands of messages during a stress test and fill up an already full
CTB. There is no need to request for RP0 if GuC is already requesting the
same.

Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_rps.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
index fc23c562d9b2..a20ae4fceac8 100644
--- a/drivers/gpu/drm/i915/gt/intel_rps.c
+++ b/drivers/gpu/drm/i915/gt/intel_rps.c
@@ -1005,13 +1005,20 @@ void intel_rps_dec_waiters(struct intel_rps *rps)
 void intel_rps_boost(struct i915_request *rq)
 {
 	struct intel_guc_slpc *slpc;
+	struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
 
 	if (i915_request_signaled(rq) || i915_request_has_waitboost(rq))
 		return;
 
+	/* If GuC is already requesting RP0, skip */
+	if (rps_uses_slpc(rps)) {
+		slpc = rps_to_slpc(rps);
+		if (intel_rps_get_requested_frequency(rps) == slpc->rp0_freq)
+			return;
+	}
+
 	/* Serializes with i915_request_retire() */
 	if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
-		struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
 
 		if (rps_uses_slpc(rps)) {
 			slpc = rps_to_slpc(rps);
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Intel-gfx] [PATCH] drm/i915/slpc: Optmize waitboost for SLPC
@ 2022-10-18 22:15 ` Vinay Belgaumkar
  0 siblings, 0 replies; 8+ messages in thread
From: Vinay Belgaumkar @ 2022-10-18 22:15 UTC (permalink / raw)
  To: intel-gfx, dri-devel

Waitboost (when SLPC is enabled) results in a H2G message. This can result
in thousands of messages during a stress test and fill up an already full
CTB. There is no need to request for RP0 if GuC is already requesting the
same.

Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_rps.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
index fc23c562d9b2..a20ae4fceac8 100644
--- a/drivers/gpu/drm/i915/gt/intel_rps.c
+++ b/drivers/gpu/drm/i915/gt/intel_rps.c
@@ -1005,13 +1005,20 @@ void intel_rps_dec_waiters(struct intel_rps *rps)
 void intel_rps_boost(struct i915_request *rq)
 {
 	struct intel_guc_slpc *slpc;
+	struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
 
 	if (i915_request_signaled(rq) || i915_request_has_waitboost(rq))
 		return;
 
+	/* If GuC is already requesting RP0, skip */
+	if (rps_uses_slpc(rps)) {
+		slpc = rps_to_slpc(rps);
+		if (intel_rps_get_requested_frequency(rps) == slpc->rp0_freq)
+			return;
+	}
+
 	/* Serializes with i915_request_retire() */
 	if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
-		struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
 
 		if (rps_uses_slpc(rps)) {
 			slpc = rps_to_slpc(rps);
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/slpc: Optmize waitboost for SLPC
  2022-10-18 22:15 ` [Intel-gfx] " Vinay Belgaumkar
  (?)
@ 2022-10-18 23:37 ` Patchwork
  -1 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2022-10-18 23:37 UTC (permalink / raw)
  To: Vinay Belgaumkar; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 4144 bytes --]

== Series Details ==

Series: drm/i915/slpc: Optmize waitboost for SLPC
URL   : https://patchwork.freedesktop.org/series/109840/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12258 -> Patchwork_109840v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/index.html

Participating hosts (39 -> 38)
------------------------------

  Additional (1): fi-hsw-4770 
  Missing    (2): bat-adlm-1 fi-snb-2520m 

Known issues
------------

  Here are the changes found in Patchwork_109840v1 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_gttfill@basic:
    - fi-pnv-d510:        [PASS][1] -> [FAIL][2] ([i915#7229])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/fi-pnv-d510/igt@gem_exec_gttfill@basic.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/fi-pnv-d510/igt@gem_exec_gttfill@basic.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-hsw-4770:        NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#3012])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/fi-hsw-4770/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_pm_rpm@module-reload:
    - fi-hsw-4770:        NOTRUN -> [INCOMPLETE][4] ([i915#7221])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - fi-hsw-4770:        NOTRUN -> [SKIP][5] ([fdo#109271]) +9 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/fi-hsw-4770/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_chamelium@dp-crc-fast:
    - fi-hsw-4770:        NOTRUN -> [SKIP][6] ([fdo#109271] / [fdo#111827]) +7 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/fi-hsw-4770/igt@kms_chamelium@dp-crc-fast.html

  * igt@kms_psr@sprite_plane_onoff:
    - fi-hsw-4770:        NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#1072]) +3 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html

  * igt@runner@aborted:
    - fi-hsw-4770:        NOTRUN -> [FAIL][8] ([fdo#109271] / [i915#4312] / [i915#5594])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/fi-hsw-4770/igt@runner@aborted.html

  
#### Warnings ####

  * igt@i915_suspend@basic-s3-without-i915:
    - fi-bdw-gvtdvm:      [FAIL][9] ([fdo#103375]) -> [INCOMPLETE][10] ([i915#146])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/fi-bdw-gvtdvm/igt@i915_suspend@basic-s3-without-i915.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/fi-bdw-gvtdvm/igt@i915_suspend@basic-s3-without-i915.html

  
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#146]: https://gitlab.freedesktop.org/drm/intel/issues/146
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#5594]: https://gitlab.freedesktop.org/drm/intel/issues/5594
  [i915#7221]: https://gitlab.freedesktop.org/drm/intel/issues/7221
  [i915#7229]: https://gitlab.freedesktop.org/drm/intel/issues/7229


Build changes
-------------

  * Linux: CI_DRM_12258 -> Patchwork_109840v1

  CI-20190529: 20190529
  CI_DRM_12258: 46aaaf749a4300985a8415b327a96a2bffb63018 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7019: fdbafce2b74e84739bb1d81223ae6f01fb442980 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_109840v1: 46aaaf749a4300985a8415b327a96a2bffb63018 @ git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

5c0801b811a7 drm/i915/slpc: Optmize waitboost for SLPC

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/index.html

[-- Attachment #2: Type: text/html, Size: 5194 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/slpc: Optmize waitboost for SLPC
  2022-10-18 22:15 ` [Intel-gfx] " Vinay Belgaumkar
  (?)
  (?)
@ 2022-10-19  7:40 ` Tvrtko Ursulin
  2022-10-19 21:12   ` Belgaumkar, Vinay
  -1 siblings, 1 reply; 8+ messages in thread
From: Tvrtko Ursulin @ 2022-10-19  7:40 UTC (permalink / raw)
  To: Vinay Belgaumkar, intel-gfx, dri-devel


On 18/10/2022 23:15, Vinay Belgaumkar wrote:
> Waitboost (when SLPC is enabled) results in a H2G message. This can result
> in thousands of messages during a stress test and fill up an already full
> CTB. There is no need to request for RP0 if GuC is already requesting the
> same.
> 
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> ---
>   drivers/gpu/drm/i915/gt/intel_rps.c | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
> index fc23c562d9b2..a20ae4fceac8 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> @@ -1005,13 +1005,20 @@ void intel_rps_dec_waiters(struct intel_rps *rps)
>   void intel_rps_boost(struct i915_request *rq)
>   {
>   	struct intel_guc_slpc *slpc;
> +	struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>   
>   	if (i915_request_signaled(rq) || i915_request_has_waitboost(rq))
>   		return;
>   
> +	/* If GuC is already requesting RP0, skip */
> +	if (rps_uses_slpc(rps)) {
> +		slpc = rps_to_slpc(rps);
> +		if (intel_rps_get_requested_frequency(rps) == slpc->rp0_freq)
> +			return;
> +	}
> +

Feels a little bit like a layering violation. Wait boost reference 
counts and request markings will changed based on asynchronous state - a 
mmio read.

Also, a little below we have this:

"""
	/* Serializes with i915_request_retire() */
	if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
		struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;

		if (rps_uses_slpc(rps)) {
			slpc = rps_to_slpc(rps);

			/* Return if old value is non zero */
			if (!atomic_fetch_inc(&slpc->num_waiters))

***>>>> Wouldn't it skip doing anything here already? <<<<***

				schedule_work(&slpc->boost_work);

			return;
		}

		if (atomic_fetch_inc(&rps->num_waiters))
			return;
"""

But I wonder if this is not a layering violation already. Looks like one 
for me at the moment. And as it happens there is an ongoing debug of 
clvk slowness where I was a bit puzzled by the lack of "boost fence" in 
trace_printk logs - but now I see how that happens. Does not feel right 
to me that we lose that tracing with SLPC.

So in general - why the correct approach wouldn't be to solve this in 
the worker - which perhaps should fork to slpc specific branch and do 
the consolidations/skips based on mmio reads in there?

Regards,

Tvrtko

>   	/* Serializes with i915_request_retire() */
>   	if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
> -		struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>   
>   		if (rps_uses_slpc(rps)) {
>   			slpc = rps_to_slpc(rps);

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/slpc: Optmize waitboost for SLPC
  2022-10-18 22:15 ` [Intel-gfx] " Vinay Belgaumkar
                   ` (2 preceding siblings ...)
  (?)
@ 2022-10-19 13:30 ` Patchwork
  -1 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2022-10-19 13:30 UTC (permalink / raw)
  To: Vinay Belgaumkar; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 30374 bytes --]

== Series Details ==

Series: drm/i915/slpc: Optmize waitboost for SLPC
URL   : https://patchwork.freedesktop.org/series/109840/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_12258_full -> Patchwork_109840v1_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_109840v1_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_109840v1_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_109840v1_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_plane_lowres@tiling-none@pipe-c-hdmi-a-2:
    - shard-glk:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-glk9/igt@kms_plane_lowres@tiling-none@pipe-c-hdmi-a-2.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-glk3/igt@kms_plane_lowres@tiling-none@pipe-c-hdmi-a-2.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - {shard-dg1}:        NOTRUN -> [INCOMPLETE][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-dg1-19/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - {shard-rkl}:        [PASS][4] -> [INCOMPLETE][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-1/igt@i915_suspend@basic-s2idle-without-i915.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-5/igt@i915_suspend@basic-s2idle-without-i915.html

  
Known issues
------------

  Here are the changes found in Patchwork_109840v1_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@display-4x:
    - shard-iclb:         NOTRUN -> [SKIP][6] ([i915#1839])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@feature_discovery@display-4x.html

  * igt@gem_create@create-massive:
    - shard-skl:          NOTRUN -> [DMESG-WARN][7] ([i915#4991])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl1/igt@gem_create@create-massive.html

  * igt@gem_exec_balancer@parallel-keep-in-fence:
    - shard-iclb:         [PASS][8] -> [SKIP][9] ([i915#4525])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb1/igt@gem_exec_balancer@parallel-keep-in-fence.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb5/igt@gem_exec_balancer@parallel-keep-in-fence.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-skl:          NOTRUN -> [FAIL][10] ([i915#2846])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl1/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-iclb:         NOTRUN -> [FAIL][11] ([i915#2842])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-iclb:         [PASS][12] -> [FAIL][13] ([i915#2842])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb7/igt@gem_exec_fair@basic-pace@vcs0.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb5/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_exec_params@no-bsd:
    - shard-iclb:         NOTRUN -> [SKIP][14] ([fdo#109283])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@gem_exec_params@no-bsd.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-skl:          NOTRUN -> [SKIP][15] ([fdo#109271] / [i915#4613]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl7/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_render_copy@yf-tiled-to-vebox-x-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][16] ([i915#768])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@gem_render_copy@yf-tiled-to-vebox-x-tiled.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-iclb:         NOTRUN -> [SKIP][17] ([i915#3297])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_userptr_blits@probe:
    - shard-iclb:         NOTRUN -> [FAIL][18] ([i915#7224])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@gem_userptr_blits@probe.html

  * igt@gen7_exec_parse@bitmasks:
    - shard-iclb:         NOTRUN -> [SKIP][19] ([fdo#109289])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@gen7_exec_parse@bitmasks.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-iclb:         NOTRUN -> [SKIP][20] ([i915#658])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_selftest@mock@requests:
    - shard-iclb:         [PASS][21] -> [INCOMPLETE][22] ([i915#7267])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb8/igt@i915_selftest@mock@requests.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb6/igt@i915_selftest@mock@requests.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - shard-skl:          NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#3886]) +7 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl7/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc:
    - shard-iclb:         NOTRUN -> [SKIP][24] ([fdo#109278]) +5 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][25] ([fdo#109278] / [i915#3886]) +2 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_chamelium@dp-hpd:
    - shard-iclb:         NOTRUN -> [SKIP][26] ([fdo#109284] / [fdo#111827])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_chamelium@dp-hpd.html

  * igt@kms_chamelium@dp-hpd-enable-disable-mode:
    - shard-skl:          NOTRUN -> [SKIP][27] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl7/igt@kms_chamelium@dp-hpd-enable-disable-mode.html

  * igt@kms_cursor_crc@cursor-offscreen-32x10:
    - shard-iclb:         NOTRUN -> [SKIP][28] ([i915#3555])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_cursor_crc@cursor-offscreen-32x10.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor:
    - shard-iclb:         NOTRUN -> [SKIP][29] ([i915#4103])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_cursor_legacy@short-busy-flip-before-cursor.html

  * igt@kms_flip@2x-wf_vblank-ts-check:
    - shard-iclb:         NOTRUN -> [SKIP][30] ([fdo#109274])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_flip@2x-wf_vblank-ts-check.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
    - shard-skl:          NOTRUN -> [FAIL][31] ([i915#2122])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl6/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank@c-edp1:
    - shard-skl:          [PASS][32] -> [FAIL][33] ([i915#79])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-skl4/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl9/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][34] ([i915#2672]) +4 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-iclb:         NOTRUN -> [SKIP][35] ([fdo#109280]) +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-edp-1:
    - shard-skl:          NOTRUN -> [INCOMPLETE][36] ([i915#4939]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl6/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-edp-1.html

  * igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-c-edp-1:
    - shard-skl:          NOTRUN -> [FAIL][37] ([i915#4573]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl7/igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-c-edp-1.html

  * igt@kms_plane_lowres@tiling-none@pipe-a-edp-1:
    - shard-iclb:         NOTRUN -> [SKIP][38] ([i915#3536]) +2 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_plane_lowres@tiling-none@pipe-a-edp-1.html

  * igt@kms_plane_lowres@tiling-none@pipe-a-hdmi-a-2:
    - shard-glk:          [PASS][39] -> [DMESG-FAIL][40] ([i915#118])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-glk9/igt@kms_plane_lowres@tiling-none@pipe-a-hdmi-a-2.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-glk3/igt@kms_plane_lowres@tiling-none@pipe-a-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-edp-1:
    - shard-skl:          NOTRUN -> [SKIP][41] ([fdo#109271]) +153 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl7/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-edp-1.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a-edp-1:
    - shard-skl:          [PASS][42] -> [DMESG-WARN][43] ([i915#1982]) +1 similar issue
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-skl4/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a-edp-1.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl7/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a-edp-1.html

  * igt@kms_psr2_sf@overlay-plane-update-continuous-sf:
    - shard-iclb:         NOTRUN -> [SKIP][44] ([fdo#111068] / [i915#658])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
    - shard-skl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#658]) +3 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         [PASS][46] -> [SKIP][47] ([fdo#109441])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         NOTRUN -> [SKIP][48] ([fdo#109441])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_universal_plane@universal-plane-pageflip-windowed-pipe-c:
    - shard-snb:          NOTRUN -> [SKIP][49] ([fdo#109271]) +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-snb5/igt@kms_universal_plane@universal-plane-pageflip-windowed-pipe-c.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-iclb:         NOTRUN -> [SKIP][50] ([i915#2437])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_writeback@writeback-pixel-formats.html

  * igt@perf@polling-parameterized:
    - shard-iclb:         [PASS][51] -> [FAIL][52] ([i915#5639])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb3/igt@perf@polling-parameterized.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb1/igt@perf@polling-parameterized.html

  * igt@perf_pmu@rc6-suspend:
    - shard-skl:          NOTRUN -> [INCOMPLETE][53] ([i915#7252])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl9/igt@perf_pmu@rc6-suspend.html

  * igt@sysfs_clients@split-50:
    - shard-iclb:         NOTRUN -> [SKIP][54] ([i915#2994])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@sysfs_clients@split-50.html

  
#### Possible fixes ####

  * igt@feature_discovery@psr2:
    - shard-iclb:         [SKIP][55] ([i915#658]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb6/igt@feature_discovery@psr2.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb2/igt@feature_discovery@psr2.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - {shard-rkl}:        [FAIL][57] ([i915#6268]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-4/igt@gem_ctx_exec@basic-nohangcheck.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-1/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_ctx_persistence@engines-hang@bcs0:
    - {shard-rkl}:        [SKIP][59] ([i915#6252]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-5/igt@gem_ctx_persistence@engines-hang@bcs0.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-3/igt@gem_ctx_persistence@engines-hang@bcs0.html

  * igt@gem_eio@hibernate:
    - shard-snb:          [INCOMPLETE][61] -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-snb7/igt@gem_eio@hibernate.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-snb5/igt@gem_eio@hibernate.html

  * igt@gem_eio@in-flight-suspend:
    - {shard-rkl}:        [FAIL][63] ([fdo#103375]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-4/igt@gem_eio@in-flight-suspend.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-1/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_balancer@fairslice:
    - {shard-rkl}:        [SKIP][65] ([i915#6259]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-5/igt@gem_exec_balancer@fairslice.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-3/igt@gem_exec_balancer@fairslice.html

  * igt@gem_exec_whisper@basic-queues-priority-all:
    - shard-iclb:         [INCOMPLETE][67] ([i915#6755]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb3/igt@gem_exec_whisper@basic-queues-priority-all.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@gem_exec_whisper@basic-queues-priority-all.html

  * igt@gem_readwrite@new-obj:
    - {shard-rkl}:        [SKIP][69] ([i915#3282]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-1/igt@gem_readwrite@new-obj.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-5/igt@gem_readwrite@new-obj.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-iclb:         [SKIP][71] ([i915#4281]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb1/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rpm@fences-dpms:
    - {shard-rkl}:        [SKIP][73] ([i915#1849]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-3/igt@i915_pm_rpm@fences-dpms.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@i915_pm_rpm@fences-dpms.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - {shard-rkl}:        [INCOMPLETE][75] -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-5/igt@i915_suspend@fence-restore-tiled2untiled.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_dp_aux_dev:
    - {shard-rkl}:        [SKIP][77] ([i915#1257]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-4/igt@kms_dp_aux_dev.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@kms_dp_aux_dev.html

  * igt@kms_fbcon_fbt@psr:
    - {shard-rkl}:        [SKIP][79] ([i915#3955]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-3/igt@kms_fbcon_fbt@psr.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@kms_fbcon_fbt@psr.html

  * igt@kms_flip@flip-vs-fences@a-edp1:
    - shard-skl:          [DMESG-WARN][81] ([i915#1982]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-skl6/igt@kms_flip@flip-vs-fences@a-edp1.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl10/igt@kms_flip@flip-vs-fences@a-edp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite:
    - {shard-rkl}:        [SKIP][83] ([i915#1849] / [i915#4098]) -> [PASS][84] +13 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html

  * igt@kms_plane@plane-panning-top-left@pipe-a-planes:
    - {shard-rkl}:        [SKIP][85] ([i915#3558]) -> [PASS][86] +1 similar issue
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-4/igt@kms_plane@plane-panning-top-left@pipe-a-planes.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@kms_plane@plane-panning-top-left@pipe-a-planes.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-edp-1:
    - shard-iclb:         [SKIP][87] ([i915#5235]) -> [PASS][88] +2 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-edp-1.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb8/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-edp-1.html

  * igt@kms_properties@plane-properties-legacy:
    - {shard-rkl}:        [SKIP][89] ([i915#4098]) -> [PASS][90] +1 similar issue
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-4/igt@kms_properties@plane-properties-legacy.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@kms_properties@plane-properties-legacy.html

  * igt@kms_psr@cursor_mmap_cpu:
    - {shard-rkl}:        [SKIP][91] ([i915#1072]) -> [PASS][92] +1 similar issue
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-4/igt@kms_psr@cursor_mmap_cpu.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@kms_psr@cursor_mmap_cpu.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         [SKIP][93] ([fdo#109441]) -> [PASS][94] +1 similar issue
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb6/igt@kms_psr@psr2_no_drrs.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb2/igt@kms_psr@psr2_no_drrs.html

  * igt@kms_universal_plane@disable-primary-vs-flip-pipe-b:
    - {shard-rkl}:        [SKIP][95] ([i915#1845] / [i915#4098]) -> [PASS][96] +17 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-rkl-5/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-rkl-6/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html

  * igt@perf_pmu@busy-double-start@vcs1:
    - {shard-dg1}:        [FAIL][97] ([i915#4349]) -> [PASS][98]
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-dg1-12/igt@perf_pmu@busy-double-start@vcs1.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-dg1-19/igt@perf_pmu@busy-double-start@vcs1.html

  
#### Warnings ####

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1:
    - shard-glk:          [INCOMPLETE][99] -> [INCOMPLETE][100] ([i915#7266])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-glk7/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-glk2/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf:
    - shard-iclb:         [SKIP][101] ([i915#658]) -> [SKIP][102] ([i915#2920])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-iclb8/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@runner@aborted:
    - shard-skl:          ([FAIL][103], [FAIL][104], [FAIL][105]) ([i915#4312]) -> ([FAIL][106], [FAIL][107], [FAIL][108], [FAIL][109], [FAIL][110]) ([i915#3002] / [i915#4312] / [i915#6949])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-skl4/igt@runner@aborted.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-skl4/igt@runner@aborted.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12258/shard-skl9/igt@runner@aborted.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl9/igt@runner@aborted.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl6/igt@runner@aborted.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl4/igt@runner@aborted.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl7/igt@runner@aborted.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109840v1/shard-skl1/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2532]: https://gitlab.freedesktop.org/drm/intel/issues/2532
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4939]: https://gitlab.freedesktop.org/drm/intel/issues/4939
  [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6259]: https://gitlab.freedesktop.org/drm/intel/issues/6259
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6755]: https://gitlab.freedesktop.org/drm/intel/issues/6755
  [i915#6949]: https://gitlab.freedesktop.org/drm/intel/issues/6949
  [i915#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7224]: https://gitlab.freedesktop.org/drm/intel/issues/7224
  [i915#7252]: https://gitlab.freedesktop.org/drm/intel/issues/7252
  [i915#7266]: https://gitlab.freedesktop.org/drm/intel/issues/7266
  [i915#7267]: https://gitlab.freedesktop.org/drm/intel/issues/7267
  [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79


Build changes
-------------

  * Linux: CI_DRM_12258 -> Patchwork_109840v1

  CI-20190529: 20190529
  CI_DRM_12258: 46aaaf749a4300985a8415b327a96a2bffb63018 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7019: fdbafce2b74e84739bb1d81223ae6f01fb442980 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_109840v1: 46aaaf749a4300985a8415b327a96a2bffb63018 @ 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_109840v1/index.html

[-- Attachment #2: Type: text/html, Size: 32090 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/slpc: Optmize waitboost for SLPC
  2022-10-19  7:40 ` [Intel-gfx] [PATCH] " Tvrtko Ursulin
@ 2022-10-19 21:12   ` Belgaumkar, Vinay
  2022-10-19 23:05     ` Belgaumkar, Vinay
  2022-10-20  8:14     ` Tvrtko Ursulin
  0 siblings, 2 replies; 8+ messages in thread
From: Belgaumkar, Vinay @ 2022-10-19 21:12 UTC (permalink / raw)
  To: Tvrtko Ursulin, intel-gfx, dri-devel


On 10/19/2022 12:40 AM, Tvrtko Ursulin wrote:
>
> On 18/10/2022 23:15, Vinay Belgaumkar wrote:
>> Waitboost (when SLPC is enabled) results in a H2G message. This can 
>> result
>> in thousands of messages during a stress test and fill up an already 
>> full
>> CTB. There is no need to request for RP0 if GuC is already requesting 
>> the
>> same.
>>
>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>> ---
>>   drivers/gpu/drm/i915/gt/intel_rps.c | 9 ++++++++-
>>   1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c 
>> b/drivers/gpu/drm/i915/gt/intel_rps.c
>> index fc23c562d9b2..a20ae4fceac8 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
>> @@ -1005,13 +1005,20 @@ void intel_rps_dec_waiters(struct intel_rps 
>> *rps)
>>   void intel_rps_boost(struct i915_request *rq)
>>   {
>>       struct intel_guc_slpc *slpc;
>> +    struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>>         if (i915_request_signaled(rq) || i915_request_has_waitboost(rq))
>>           return;
>>   +    /* If GuC is already requesting RP0, skip */
>> +    if (rps_uses_slpc(rps)) {
>> +        slpc = rps_to_slpc(rps);
>> +        if (intel_rps_get_requested_frequency(rps) == slpc->rp0_freq)
One correction here is this should be slpc->boost_freq.
>> +            return;
>> +    }
>> +
>
> Feels a little bit like a layering violation. Wait boost reference 
> counts and request markings will changed based on asynchronous state - 
> a mmio read.
>
> Also, a little below we have this:
>
> """
>     /* Serializes with i915_request_retire() */
>     if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
>         struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>
>         if (rps_uses_slpc(rps)) {
>             slpc = rps_to_slpc(rps);
>
>             /* Return if old value is non zero */
>             if (!atomic_fetch_inc(&slpc->num_waiters))
>
> ***>>>> Wouldn't it skip doing anything here already? <<<<***
It will skip only if boost is already happening. This patch is trying to 
prevent even that first one if possible.
>
>                 schedule_work(&slpc->boost_work);
>
>             return;
>         }
>
>         if (atomic_fetch_inc(&rps->num_waiters))
>             return;
> """
>
> But I wonder if this is not a layering violation already. Looks like 
> one for me at the moment. And as it happens there is an ongoing debug 
> of clvk slowness where I was a bit puzzled by the lack of "boost 
> fence" in trace_printk logs - but now I see how that happens. Does not 
> feel right to me that we lose that tracing with SLPC.
Agreed. Will add the trace to the SLPC case as well.  However, the 
question is what does that trace indicate? Even in the host case, we log 
the trace, but may skip the actual boost as the req is already matching 
boost freq. IMO, we should log the trace only when we actually decide to 
boost.
>
> So in general - why the correct approach wouldn't be to solve this in 
> the worker - which perhaps should fork to slpc specific branch and do 
> the consolidations/skips based on mmio reads in there?

sure, I can move the mmio read to the SLPC worker thread.

Thanks,

Vinay.

>
> Regards,
>
> Tvrtko
>
>>       /* Serializes with i915_request_retire() */
>>       if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
>> -        struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>>             if (rps_uses_slpc(rps)) {
>>               slpc = rps_to_slpc(rps);

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/slpc: Optmize waitboost for SLPC
  2022-10-19 21:12   ` Belgaumkar, Vinay
@ 2022-10-19 23:05     ` Belgaumkar, Vinay
  2022-10-20  8:14     ` Tvrtko Ursulin
  1 sibling, 0 replies; 8+ messages in thread
From: Belgaumkar, Vinay @ 2022-10-19 23:05 UTC (permalink / raw)
  To: Tvrtko Ursulin, intel-gfx, dri-devel


On 10/19/2022 2:12 PM, Belgaumkar, Vinay wrote:
>
> On 10/19/2022 12:40 AM, Tvrtko Ursulin wrote:
>>
>> On 18/10/2022 23:15, Vinay Belgaumkar wrote:
>>> Waitboost (when SLPC is enabled) results in a H2G message. This can 
>>> result
>>> in thousands of messages during a stress test and fill up an already 
>>> full
>>> CTB. There is no need to request for RP0 if GuC is already 
>>> requesting the
>>> same.
>>>
>>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>>> ---
>>>   drivers/gpu/drm/i915/gt/intel_rps.c | 9 ++++++++-
>>>   1 file changed, 8 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c 
>>> b/drivers/gpu/drm/i915/gt/intel_rps.c
>>> index fc23c562d9b2..a20ae4fceac8 100644
>>> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
>>> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
>>> @@ -1005,13 +1005,20 @@ void intel_rps_dec_waiters(struct intel_rps 
>>> *rps)
>>>   void intel_rps_boost(struct i915_request *rq)
>>>   {
>>>       struct intel_guc_slpc *slpc;
>>> +    struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>>>         if (i915_request_signaled(rq) || 
>>> i915_request_has_waitboost(rq))
>>>           return;
>>>   +    /* If GuC is already requesting RP0, skip */
>>> +    if (rps_uses_slpc(rps)) {
>>> +        slpc = rps_to_slpc(rps);
>>> +        if (intel_rps_get_requested_frequency(rps) == slpc->rp0_freq)
> One correction here is this should be slpc->boost_freq.
>>> +            return;
>>> +    }
>>> +
>>
>> Feels a little bit like a layering violation. Wait boost reference 
>> counts and request markings will changed based on asynchronous state 
>> - a mmio read.
>>
>> Also, a little below we have this:
>>
>> """
>>     /* Serializes with i915_request_retire() */
>>     if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
>>         struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>>
>>         if (rps_uses_slpc(rps)) {
>>             slpc = rps_to_slpc(rps);
>>
>>             /* Return if old value is non zero */
>>             if (!atomic_fetch_inc(&slpc->num_waiters))
>>
>> ***>>>> Wouldn't it skip doing anything here already? <<<<***
> It will skip only if boost is already happening. This patch is trying 
> to prevent even that first one if possible.
>>
>>                 schedule_work(&slpc->boost_work);
>>
>>             return;
>>         }
>>
>>         if (atomic_fetch_inc(&rps->num_waiters))
>>             return;
>> """
>>
>> But I wonder if this is not a layering violation already. Looks like 
>> one for me at the moment. And as it happens there is an ongoing debug 
>> of clvk slowness where I was a bit puzzled by the lack of "boost 
>> fence" in trace_printk logs - but now I see how that happens. Does 
>> not feel right to me that we lose that tracing with SLPC.
> Agreed. Will add the trace to the SLPC case as well.  However, the 
> question is what does that trace indicate? Even in the host case, we 
> log the trace, but may skip the actual boost as the req is already 
> matching boost freq. IMO, we should log the trace only when we 
> actually decide to boost.
On second thoughts, that trace only tracks the boost fence, which is set 
in this case. So, might be ok to have it regardless. We count the 
num_boosts anyways if we ever wanted to know how many of those actually 
went on to boost the freq.
>>
>> So in general - why the correct approach wouldn't be to solve this in 
>> the worker - which perhaps should fork to slpc specific branch and do 
>> the consolidations/skips based on mmio reads in there?
>
> sure, I can move the mmio read to the SLPC worker thread.
>
> Thanks,
>
> Vinay.
>
>>
>> Regards,
>>
>> Tvrtko
>>
>>>       /* Serializes with i915_request_retire() */
>>>       if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
>>> -        struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>>>             if (rps_uses_slpc(rps)) {
>>>               slpc = rps_to_slpc(rps);

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/slpc: Optmize waitboost for SLPC
  2022-10-19 21:12   ` Belgaumkar, Vinay
  2022-10-19 23:05     ` Belgaumkar, Vinay
@ 2022-10-20  8:14     ` Tvrtko Ursulin
  1 sibling, 0 replies; 8+ messages in thread
From: Tvrtko Ursulin @ 2022-10-20  8:14 UTC (permalink / raw)
  To: Belgaumkar, Vinay, intel-gfx, dri-devel


On 19/10/2022 22:12, Belgaumkar, Vinay wrote:
> 
> On 10/19/2022 12:40 AM, Tvrtko Ursulin wrote:
>>
>> On 18/10/2022 23:15, Vinay Belgaumkar wrote:
>>> Waitboost (when SLPC is enabled) results in a H2G message. This can 
>>> result
>>> in thousands of messages during a stress test and fill up an already 
>>> full
>>> CTB. There is no need to request for RP0 if GuC is already requesting 
>>> the
>>> same.
>>>
>>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>>> ---
>>>   drivers/gpu/drm/i915/gt/intel_rps.c | 9 ++++++++-
>>>   1 file changed, 8 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c 
>>> b/drivers/gpu/drm/i915/gt/intel_rps.c
>>> index fc23c562d9b2..a20ae4fceac8 100644
>>> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
>>> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
>>> @@ -1005,13 +1005,20 @@ void intel_rps_dec_waiters(struct intel_rps 
>>> *rps)
>>>   void intel_rps_boost(struct i915_request *rq)
>>>   {
>>>       struct intel_guc_slpc *slpc;
>>> +    struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>>>         if (i915_request_signaled(rq) || i915_request_has_waitboost(rq))
>>>           return;
>>>   +    /* If GuC is already requesting RP0, skip */
>>> +    if (rps_uses_slpc(rps)) {
>>> +        slpc = rps_to_slpc(rps);
>>> +        if (intel_rps_get_requested_frequency(rps) == slpc->rp0_freq)
> One correction here is this should be slpc->boost_freq.
>>> +            return;
>>> +    }
>>> +
>>
>> Feels a little bit like a layering violation. Wait boost reference 
>> counts and request markings will changed based on asynchronous state - 
>> a mmio read.
>>
>> Also, a little below we have this:
>>
>> """
>>     /* Serializes with i915_request_retire() */
>>     if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
>>         struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>>
>>         if (rps_uses_slpc(rps)) {
>>             slpc = rps_to_slpc(rps);
>>
>>             /* Return if old value is non zero */
>>             if (!atomic_fetch_inc(&slpc->num_waiters))
>>
>> ***>>>> Wouldn't it skip doing anything here already? <<<<***
> It will skip only if boost is already happening. This patch is trying to 
> prevent even that first one if possible.

Do you mean that the first boost request comes outside the driver control?

>>
>>                 schedule_work(&slpc->boost_work);
>>
>>             return;
>>         }
>>
>>         if (atomic_fetch_inc(&rps->num_waiters))
>>             return;
>> """
>>
>> But I wonder if this is not a layering violation already. Looks like 
>> one for me at the moment. And as it happens there is an ongoing debug 
>> of clvk slowness where I was a bit puzzled by the lack of "boost 
>> fence" in trace_printk logs - but now I see how that happens. Does not 
>> feel right to me that we lose that tracing with SLPC.
> Agreed. Will add the trace to the SLPC case as well.  However, the 
> question is what does that trace indicate? Even in the host case, we log 
> the trace, but may skip the actual boost as the req is already matching 
> boost freq. IMO, we should log the trace only when we actually decide to 
> boost.

Good question - let me come back to this later when the current 
emergencies subside. Feel free to remind me if I forget.

>> So in general - why the correct approach wouldn't be to solve this in 
>> the worker - which perhaps should fork to slpc specific branch and do 
>> the consolidations/skips based on mmio reads in there?
> 
> sure, I can move the mmio read to the SLPC worker thread.

Thanks, yes I think that will even be better since mmio read will only 
happen if the higher level thinks that it should boost. So the hierarchy 
of "duties" would be slightly improved. Driver tracking -> SLPC tracking 
-> HW status.

I'll come back to the latest version of the patch later today or tomorrow.

Regards,

Tvrtko
> Thanks,
> 
> Vinay.
> 
>>
>> Regards,
>>
>> Tvrtko
>>
>>>       /* Serializes with i915_request_retire() */
>>>       if (!test_and_set_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags)) {
>>> -        struct intel_rps *rps = &READ_ONCE(rq->engine)->gt->rps;
>>>             if (rps_uses_slpc(rps)) {
>>>               slpc = rps_to_slpc(rps);

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-10-20  8:14 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-18 22:15 [PATCH] drm/i915/slpc: Optmize waitboost for SLPC Vinay Belgaumkar
2022-10-18 22:15 ` [Intel-gfx] " Vinay Belgaumkar
2022-10-18 23:37 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
2022-10-19  7:40 ` [Intel-gfx] [PATCH] " Tvrtko Ursulin
2022-10-19 21:12   ` Belgaumkar, Vinay
2022-10-19 23:05     ` Belgaumkar, Vinay
2022-10-20  8:14     ` Tvrtko Ursulin
2022-10-19 13:30 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for " 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.