All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/2] Unload mei_gsc before i915
@ 2022-03-30 18:32 Daniele Ceraolo Spurio
  2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it Daniele Ceraolo Spurio
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Daniele Ceraolo Spurio @ 2022-03-30 18:32 UTC (permalink / raw)
  To: igt-dev; +Cc: Alexander Usyskin, Rodrigo Vivi

mei_gsc is a new module [1] that binds to an aux device exposed by i915,
so it depends on it and needs to be removed before we can unload i915.

Note that the module is automatically loaded by the kernel as a follow-up
to i915 loading, which means its probe might still be in progress by the
time a test attempt to unload again, which will make the unload fail. To
avoid this, we can stall the unload if the probe is still in progress.

[1] https://patchwork.freedesktop.org/series/98066/

Cc: Alexander Usyskin <alexander.usyskin@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>

Daniele Ceraolo Spurio (2):
  lib/igt_kmod: Wait for a kmod to finish its probe before unloding it.
  lib/igt_kmod: Unload mei modules before unloading i915

 lib/igt_kmod.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it.
  2022-03-30 18:32 [igt-dev] [PATCH i-g-t 0/2] Unload mei_gsc before i915 Daniele Ceraolo Spurio
@ 2022-03-30 18:32 ` Daniele Ceraolo Spurio
  2022-03-31 22:52   ` Dixit, Ashutosh
  2022-04-01  2:03   ` Dixit, Ashutosh
  2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kmod: Unload mei modules before unloading i915 Daniele Ceraolo Spurio
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 15+ messages in thread
From: Daniele Ceraolo Spurio @ 2022-03-30 18:32 UTC (permalink / raw)
  To: igt-dev

Modprobing i915 can result in other dependent modules being loaded
automatically as a follow up. This means that by the time the i915
load function returns these modules may still be going through their
init, so if we try to immediately unload i915 again we will fail with
an -EBUSY. To avoid this, if the module load is still in progress, wait
for it to complete before unloading.

Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
---
 lib/igt_kmod.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index cf7a3b22..d2ac8a56 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -143,6 +143,12 @@ out:
 	return ret;
 }
 
+static bool
+igt_kmod_is_loading(struct kmod_module *kmod)
+{
+	return kmod_module_get_initstate(kmod) == KMOD_MODULE_COMING;
+}
+
 static int modprobe(struct kmod_module *kmod, const char *options)
 {
 	unsigned int flags;
@@ -289,6 +295,16 @@ igt_kmod_unload(const char *mod_name, unsigned int flags)
 		goto out;
 	}
 
+	if (igt_kmod_is_loading(kmod)) {
+		igt_debug("%s still initializing\n", mod_name);
+		err = igt_wait(!igt_kmod_is_loading(kmod), 10000, 100);
+		if (err < 0) {
+			igt_debug("%s failed to complete init within the timeout\n",
+				  mod_name);
+			goto out;
+		}
+	}
+
 	err = igt_kmod_unload_r(kmod, flags);
 	if (err < 0) {
 		igt_debug("Could not remove module %s (%s)\n", mod_name,
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 2/2] lib/igt_kmod: Unload mei modules before unloading i915
  2022-03-30 18:32 [igt-dev] [PATCH i-g-t 0/2] Unload mei_gsc before i915 Daniele Ceraolo Spurio
  2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it Daniele Ceraolo Spurio
@ 2022-03-30 18:32 ` Daniele Ceraolo Spurio
  2022-03-31 21:54   ` Dixit, Ashutosh
  2022-03-30 18:51 ` [igt-dev] ✗ GitLab.Pipeline: warning for Unload mei_gsc before i915 Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Daniele Ceraolo Spurio @ 2022-03-30 18:32 UTC (permalink / raw)
  To: igt-dev; +Cc: Alexander Usyskin

mei_gsc binds to an aux device exposed by i915, so it depends on it and
need to be removed before we can unload i915.
On platforms with a GSC, the mei components (pxp, hdcp) depend on
mei_gsc, so those need to be unloaded first.

Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Alexander Usyskin <alexander.usyskin@intel.com>
---
 lib/igt_kmod.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index d2ac8a56..28ffe515 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -400,6 +400,10 @@ int __igt_i915_driver_unload(const char **who)
 	const char *aux[] = {
 		/* gen5: ips uses symbol_get() so only a soft module dependency */
 		"intel_ips",
+		/* mei_gsc uses an i915 aux dev and the other mei mods depend on it */
+		"mei_pxp",
+		"mei_hdcp",
+		"mei_gsc",
 		NULL,
 	};
 
-- 
2.25.1

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

* [igt-dev] ✗ GitLab.Pipeline: warning for Unload mei_gsc before i915
  2022-03-30 18:32 [igt-dev] [PATCH i-g-t 0/2] Unload mei_gsc before i915 Daniele Ceraolo Spurio
  2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it Daniele Ceraolo Spurio
  2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kmod: Unload mei modules before unloading i915 Daniele Ceraolo Spurio
@ 2022-03-30 18:51 ` Patchwork
  2022-03-30 19:25 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
  2022-03-30 22:33 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2022-03-30 18:51 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev

== Series Details ==

Series: Unload mei_gsc before i915
URL   : https://patchwork.freedesktop.org/series/101973/
State : warning

== Summary ==

Pipeline status: FAILED.

see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/546085 for the overview.

test:ninja-test-arm64 has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/20509512):
  Ok:                   22
  Expected Fail:         3
  Fail:                287
  Unexpected Pass:       0
  Skipped:               0
  Timeout:               0
  
  Full log written to /builds/gfx-ci/igt-ci-tags/build/meson-logs/testlog.txt
  section_end:1648666153:step_script
  section_start:1648666153:upload_artifacts_on_failure
  Uploading artifacts for failed job
  Uploading artifacts...
  build: found 1712 matching files and directories   
  Uploading artifacts as "archive" to coordinator... 201 Created  id=20509512 responseStatus=201 Created token=nqVDYSko
  section_end:1648666164:upload_artifacts_on_failure
  section_start:1648666164:cleanup_file_variables
  Cleaning up project directory and file based variables
  section_end:1648666165:cleanup_file_variables
  ERROR: Job failed: exit code 1

== Logs ==

For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/546085

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

* [igt-dev] ✓ Fi.CI.BAT: success for Unload mei_gsc before i915
  2022-03-30 18:32 [igt-dev] [PATCH i-g-t 0/2] Unload mei_gsc before i915 Daniele Ceraolo Spurio
                   ` (2 preceding siblings ...)
  2022-03-30 18:51 ` [igt-dev] ✗ GitLab.Pipeline: warning for Unload mei_gsc before i915 Patchwork
@ 2022-03-30 19:25 ` Patchwork
  2022-03-30 22:33 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2022-03-30 19:25 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev

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

== Series Details ==

Series: Unload mei_gsc before i915
URL   : https://patchwork.freedesktop.org/series/101973/
State : success

== Summary ==

CI Bug Log - changes from IGT_6401 -> IGTPW_6847
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (44 -> 42)
------------------------------

  Additional (1): bat-adlm-1 
  Missing    (3): bat-rpls-1 fi-bsw-cyan fi-bdw-samus 

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

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

### IGT changes ###

#### Suppressed ####

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

  * igt@gem_exec_store@basic:
    - {bat-dg2-9}:        [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/bat-dg2-9/igt@gem_exec_store@basic.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/bat-dg2-9/igt@gem_exec_store@basic.html

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

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

### IGT changes ###

#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s3@smem:
    - {fi-rkl-11600}:     [INCOMPLETE][3] ([i915#5127]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@i915_selftest@live@execlists:
    - {bat-jsl-2}:        [INCOMPLETE][5] -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/bat-jsl-2/igt@i915_selftest@live@execlists.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/bat-jsl-2/igt@i915_selftest@live@execlists.html

  * igt@i915_selftest@live@perf:
    - {bat-jsl-1}:        [INCOMPLETE][7] -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/bat-jsl-1/igt@i915_selftest@live@perf.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/bat-jsl-1/igt@i915_selftest@live@perf.html

  * igt@kms_flip@basic-flip-vs-modeset@a-edp1:
    - fi-tgl-u2:          [DMESG-WARN][9] ([i915#402]) -> [PASS][10] +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/fi-tgl-u2/igt@kms_flip@basic-flip-vs-modeset@a-edp1.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/fi-tgl-u2/igt@kms_flip@basic-flip-vs-modeset@a-edp1.html

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

  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#5127]: https://gitlab.freedesktop.org/drm/intel/issues/5127
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5482]: https://gitlab.freedesktop.org/drm/intel/issues/5482


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6401 -> IGTPW_6847

  CI-20190529: 20190529
  CI_DRM_11416: 1dc2c6953e2689a0e5b7cca8450da14059d35f03 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6847: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/index.html
  IGT_6401: 7ee1289c5b3d3e02ec86f59f60fe304dce550be1 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for Unload mei_gsc before i915
  2022-03-30 18:32 [igt-dev] [PATCH i-g-t 0/2] Unload mei_gsc before i915 Daniele Ceraolo Spurio
                   ` (3 preceding siblings ...)
  2022-03-30 19:25 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2022-03-30 22:33 ` Patchwork
  4 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2022-03-30 22:33 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev

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

== Series Details ==

Series: Unload mei_gsc before i915
URL   : https://patchwork.freedesktop.org/series/101973/
State : success

== Summary ==

CI Bug Log - changes from IGT_6401_full -> IGTPW_6847_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (9 -> 8)
------------------------------

  Missing    (1): shard-skl 

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

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

### IGT changes ###

#### Suppressed ####

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

  * igt@gem_ctx_param@invalid-param-set:
    - {shard-rkl}:        NOTRUN -> [FAIL][1] +1 similar issue
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-rkl-5/igt@gem_ctx_param@invalid-param-set.html

  * igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs:
    - {shard-rkl}:        [PASS][2] -> [FAIL][3] +3 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-rkl-6/igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-rkl-5/igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs.html

  * igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge:
    - {shard-rkl}:        [SKIP][4] ([i915#1849] / [i915#4070] / [i915#4098]) -> [FAIL][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-rkl-5/igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-rkl-5/igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render:
    - {shard-rkl}:        [SKIP][6] ([i915#1849] / [i915#4098]) -> [FAIL][7] +2 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@blit-noreloc-purge-cache-random:
    - shard-snb:          NOTRUN -> [SKIP][8] ([fdo#109271]) +158 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-snb2/igt@api_intel_bb@blit-noreloc-purge-cache-random.html

  * igt@feature_discovery@chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][9] ([fdo#111827])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb2/igt@feature_discovery@chamelium.html
    - shard-iclb:         NOTRUN -> [SKIP][10] ([fdo#111827])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb6/igt@feature_discovery@chamelium.html

  * igt@gem_ccs@suspend-resume:
    - shard-iclb:         NOTRUN -> [SKIP][11] ([i915#5327])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb4/igt@gem_ccs@suspend-resume.html
    - shard-tglb:         NOTRUN -> [SKIP][12] ([i915#5325]) +1 similar issue
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb1/igt@gem_ccs@suspend-resume.html

  * igt@gem_create@create-massive:
    - shard-iclb:         NOTRUN -> [DMESG-WARN][13] ([i915#4991])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb2/igt@gem_create@create-massive.html
    - shard-snb:          NOTRUN -> [DMESG-WARN][14] ([i915#4991])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-snb7/igt@gem_create@create-massive.html
    - shard-tglb:         NOTRUN -> [DMESG-WARN][15] ([i915#4991])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb1/igt@gem_create@create-massive.html
    - shard-glk:          NOTRUN -> [DMESG-WARN][16] ([i915#4991])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk7/igt@gem_create@create-massive.html
    - shard-apl:          NOTRUN -> [DMESG-WARN][17] ([i915#4991])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-apl8/igt@gem_create@create-massive.html

  * igt@gem_ctx_persistence@hostile:
    - shard-apl:          [PASS][18] -> [FAIL][19] ([i915#2410])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-apl1/igt@gem_ctx_persistence@hostile.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-apl8/igt@gem_ctx_persistence@hostile.html

  * igt@gem_ctx_persistence@many-contexts:
    - shard-iclb:         [PASS][20] -> [FAIL][21] ([i915#2410])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-iclb4/igt@gem_ctx_persistence@many-contexts.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb3/igt@gem_ctx_persistence@many-contexts.html

  * igt@gem_ctx_persistence@process:
    - shard-snb:          NOTRUN -> [SKIP][22] ([fdo#109271] / [i915#1099]) +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-snb7/igt@gem_ctx_persistence@process.html

  * igt@gem_eio@kms:
    - shard-tglb:         NOTRUN -> [FAIL][23] ([i915#232])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb2/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-iclb:         [PASS][24] -> [SKIP][25] ([i915#4525])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-iclb1/igt@gem_exec_balancer@parallel-balancer.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb8/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][26] ([i915#5076]) +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl3/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_balancer@parallel-out-fence:
    - shard-tglb:         NOTRUN -> [DMESG-WARN][27] ([i915#5076])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@gem_exec_balancer@parallel-out-fence.html

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

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-glk:          [PASS][29] -> [FAIL][30] ([i915#2842]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-glk9/igt@gem_exec_fair@basic-pace@vecs0.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk7/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [PASS][31] -> [FAIL][32] ([i915#2842])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-iclb4/igt@gem_exec_fair@basic-throttle@rcs0.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [PASS][33] -> [SKIP][34] ([i915#2190])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-tglb2/igt@gem_huc_copy@huc-copy.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb7/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@parallel-multi:
    - shard-apl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#4613]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-apl2/igt@gem_lmem_swapping@parallel-multi.html
    - shard-glk:          NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#4613]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk4/igt@gem_lmem_swapping@parallel-multi.html
    - shard-iclb:         NOTRUN -> [SKIP][37] ([i915#4613]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb4/igt@gem_lmem_swapping@parallel-multi.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - shard-tglb:         NOTRUN -> [SKIP][38] ([i915#4613]) +3 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb6/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_lmem_swapping@smem-oom:
    - shard-kbl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#4613]) +3 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl3/igt@gem_lmem_swapping@smem-oom.html

  * igt@gem_mmap_gtt@coherency:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111656])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb7/igt@gem_mmap_gtt@coherency.html
    - shard-iclb:         NOTRUN -> [SKIP][41] ([fdo#109292])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb1/igt@gem_mmap_gtt@coherency.html

  * igt@gem_pxp@create-regular-context-2:
    - shard-tglb:         NOTRUN -> [SKIP][42] ([i915#4270]) +2 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb6/igt@gem_pxp@create-regular-context-2.html

  * igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
    - shard-iclb:         NOTRUN -> [SKIP][43] ([i915#4270]) +2 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb2/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html

  * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
    - shard-kbl:          NOTRUN -> [SKIP][44] ([fdo#109271]) +244 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl1/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][45] ([i915#768]) +2 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb7/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html

  * igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-y-tiled:
    - shard-glk:          NOTRUN -> [SKIP][46] ([fdo#109271]) +78 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk9/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-y-tiled.html

  * igt@gem_softpin@evict-snoop:
    - shard-iclb:         NOTRUN -> [SKIP][47] ([fdo#109312])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb8/igt@gem_softpin@evict-snoop.html
    - shard-tglb:         NOTRUN -> [SKIP][48] ([fdo#109312])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@gem_softpin@evict-snoop.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-kbl:          NOTRUN -> [SKIP][49] ([fdo#109271] / [i915#3323])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl7/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-iclb:         NOTRUN -> [SKIP][50] ([i915#3323])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb8/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-apl:          NOTRUN -> [SKIP][51] ([fdo#109271] / [i915#3323])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-apl4/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-glk:          NOTRUN -> [SKIP][52] ([fdo#109271] / [i915#3323])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk1/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-tglb:         NOTRUN -> [SKIP][53] ([i915#3323])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@unsync-unmap-after-close:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([i915#3297]) +1 similar issue
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb6/igt@gem_userptr_blits@unsync-unmap-after-close.html
    - shard-iclb:         NOTRUN -> [SKIP][55] ([i915#3297])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb3/igt@gem_userptr_blits@unsync-unmap-after-close.html

  * igt@gem_userptr_blits@vma-merge:
    - shard-snb:          NOTRUN -> [FAIL][56] ([i915#2724])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-snb2/igt@gem_userptr_blits@vma-merge.html
    - shard-apl:          NOTRUN -> [FAIL][57] ([i915#3318])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-apl3/igt@gem_userptr_blits@vma-merge.html
    - shard-iclb:         NOTRUN -> [FAIL][58] ([i915#3318])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb6/igt@gem_userptr_blits@vma-merge.html
    - shard-glk:          NOTRUN -> [FAIL][59] ([i915#3318])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk9/igt@gem_userptr_blits@vma-merge.html
    - shard-kbl:          NOTRUN -> [FAIL][60] ([i915#3318])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl6/igt@gem_userptr_blits@vma-merge.html
    - shard-tglb:         NOTRUN -> [FAIL][61] ([i915#3318])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@gem_userptr_blits@vma-merge.html

  * igt@gen3_render_tiledy_blits:
    - shard-tglb:         NOTRUN -> [SKIP][62] ([fdo#109289]) +2 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb6/igt@gen3_render_tiledy_blits.html
    - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109289])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb4/igt@gen3_render_tiledy_blits.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-tglb:         NOTRUN -> [SKIP][64] ([i915#2527] / [i915#2856]) +1 similar issue
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@gen9_exec_parse@bb-oversize.html

  * igt@gen9_exec_parse@bb-start-far:
    - shard-iclb:         NOTRUN -> [SKIP][65] ([i915#2856]) +1 similar issue
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb7/igt@gen9_exec_parse@bb-start-far.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-tglb:         NOTRUN -> [FAIL][66] ([i915#454])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-tglb:         NOTRUN -> [SKIP][67] ([fdo#111644] / [i915#1397] / [i915#2411]) +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb7/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
    - shard-iclb:         NOTRUN -> [SKIP][68] ([fdo#110892])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb7/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_query@query-topology-known-pci-ids:
    - shard-tglb:         NOTRUN -> [SKIP][69] ([fdo#109303])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@i915_query@query-topology-known-pci-ids.html
    - shard-iclb:         NOTRUN -> [SKIP][70] ([fdo#109303])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb8/igt@i915_query@query-topology-known-pci-ids.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-kbl:          [PASS][71] -> [DMESG-WARN][72] ([i915#180]) +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-kbl6/igt@i915_suspend@fence-restore-untiled.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl1/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglb:         NOTRUN -> [SKIP][73] ([i915#404])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb7/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
    - shard-iclb:         NOTRUN -> [SKIP][74] ([i915#404])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb7/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-iclb:         NOTRUN -> [SKIP][75] ([i915#1769])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
    - shard-tglb:         NOTRUN -> [SKIP][76] ([i915#1769])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb1/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][77] ([i915#5286]) +4 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb2/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-iclb:         NOTRUN -> [SKIP][78] ([i915#5286]) +4 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@linear-64bpp-rotate-270:
    - shard-iclb:         NOTRUN -> [SKIP][79] ([fdo#110725] / [fdo#111614]) +2 similar issues
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb1/igt@kms_big_fb@linear-64bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][80] ([fdo#111614]) +3 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-kbl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#3777]) +3 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl4/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-tglb:         [PASS][82] -> [FAIL][83] ([i915#3743])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-tglb5/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
    - shard-apl:          NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#3777])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-apl2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
    - shard-glk:          NOTRUN -> [SKIP][85] ([fdo#109271] / [i915#3777])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-270:
    - shard-iclb:         NOTRUN -> [SKIP][86] ([fdo#110723]) +1 similar issue
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb2/igt@kms_big_fb@yf-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][87] ([fdo#111615]) +8 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb6/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_big_joiner@basic:
    - shard-tglb:         NOTRUN -> [SKIP][88] ([i915#2705])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@kms_big_joiner@basic.html
    - shard-iclb:         NOTRUN -> [SKIP][89] ([i915#2705])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb7/igt@kms_big_joiner@basic.html

  * igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][90] ([i915#3689] / [i915#3886]) +4 similar issues
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][91] ([i915#3689]) +6 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb2/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][92] ([fdo#111615] / [i915#3689]) +7 similar issues
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb6/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - shard-kbl:          NOTRUN -> [SKIP][93] ([fdo#109271] / [i915#3886]) +15 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl3/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
    - shard-iclb:         NOTRUN -> [SKIP][94] ([fdo#109278] / [i915#3886]) +9 similar issues
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb8/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html
    - shard-glk:          NOTRUN -> [SKIP][95] ([fdo#109271] / [i915#3886]) +2 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk5/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][96] ([fdo#109271] / [i915#3886]) +1 similar issue
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-apl4/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html

  * igt@kms_chamelium@hdmi-hpd-storm:
    - shard-kbl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [fdo#111827]) +17 similar issues
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl7/igt@kms_chamelium@hdmi-hpd-storm.html

  * igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
    - shard-snb:          NOTRUN -> [SKIP][98] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-snb7/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html

  * igt@kms_chamelium@vga-hpd:
    - shard-tglb:         NOTRUN -> [SKIP][99] ([fdo#109284] / [fdo#111827]) +15 similar issues
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb6/igt@kms_chamelium@vga-hpd.html

  * igt@kms_color_chamelium@pipe-c-ctm-0-5:
    - shard-iclb:         NOTRUN -> [SKIP][100] ([fdo#109284] / [fdo#111827]) +12 similar issues
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb3/igt@kms_color_chamelium@pipe-c-ctm-0-5.html
    - shard-glk:          NOTRUN -> [SKIP][101] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk2/igt@kms_color_chamelium@pipe-c-ctm-0-5.html
    - shard-apl:          NOTRUN -> [SKIP][102] ([fdo#109271] / [fdo#111827]) +5 similar issues
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-apl1/igt@kms_color_chamelium@pipe-c-ctm-0-5.html

  * igt@kms_color_chamelium@pipe-d-gamma:
    - shard-iclb:         NOTRUN -> [SKIP][103] ([fdo#109278] / [fdo#109284] / [fdo#111827]) +3 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb1/igt@kms_color_chamelium@pipe-d-gamma.html

  * igt@kms_content_protection@content_type_change:
    - shard-tglb:         NOTRUN -> [SKIP][104] ([i915#1063]) +1 similar issue
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@kms_content_protection@content_type_change.html

  * igt@kms_content_protection@legacy:
    - shard-iclb:         NOTRUN -> [SKIP][105] ([fdo#109300] / [fdo#111066]) +2 similar issues
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb3/igt@kms_content_protection@legacy.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x512-offscreen:
    - shard-iclb:         NOTRUN -> [SKIP][106] ([fdo#109278] / [fdo#109279]) +2 similar issues
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb4/igt@kms_cursor_crc@pipe-a-cursor-512x512-offscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][107] ([i915#180]) +4 similar issues
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x10-onscreen:
    - shard-iclb:         NOTRUN -> [SKIP][108] ([fdo#109278]) +31 similar issues
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb1/igt@kms_cursor_crc@pipe-b-cursor-32x10-onscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x32-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][109] ([i915#3319]) +1 similar issue
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@kms_cursor_crc@pipe-b-cursor-32x32-rapid-movement.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x170-onscreen:
    - shard-tglb:         NOTRUN -> [SKIP][110] ([fdo#109279] / [i915#3359]) +4 similar issues
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-512x170-onscreen.html

  * igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][111] ([i915#3359]) +6 similar issues
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb5/igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement.html

  * igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
    - shard-iclb:         NOTRUN -> [SKIP][112] ([fdo#109274] / [fdo#109278]) +3 similar issues
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb4/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
    - shard-tglb:         NOTRUN -> [SKIP][113] ([i915#4103])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html

  * igt@kms_dp_tiled_display@basic-test-pattern:
    - shard-iclb:         NOTRUN -> [SKIP][114] ([i915#426])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb1/igt@kms_dp_tiled_display@basic-test-pattern.html
    - shard-tglb:         NOTRUN -> [SKIP][115] ([i915#426])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb2/igt@kms_dp_tiled_display@basic-test-pattern.html

  * igt@kms_draw_crc@draw-method-rgb565-render-4tiled:
    - shard-iclb:         NOTRUN -> [SKIP][116] ([i915#5287]) +3 similar issues
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb4/igt@kms_draw_crc@draw-method-rgb565-render-4tiled.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-render-4tiled:
    - shard-tglb:         NOTRUN -> [SKIP][117] ([i915#5287]) +3 similar issues
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb7/igt@kms_draw_crc@draw-method-xrgb2101010-render-4tiled.html

  * igt@kms_flip@2x-flip-vs-rmfb-interruptible:
    - shard-iclb:         NOTRUN -> [SKIP][118] ([fdo#109274]) +6 similar issues
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb3/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][119] -> [FAIL][120] ([i915#2122])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-glk3/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-glk8/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-tglb:         NOTRUN -> [SKIP][121] ([fdo#109274] / [fdo#111825]) +11 similar issues
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb2/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip@flip-vs-suspend@b-vga1:
    - shard-snb:          [PASS][122] -> [INCOMPLETE][123] ([i915#4839])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-snb2/igt@kms_flip@flip-vs-suspend@b-vga1.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-snb5/igt@kms_flip@flip-vs-suspend@b-vga1.html

  * igt@kms_flip@flip-vs-suspend@c-dp1:
    - shard-kbl:          [PASS][124] -> [INCOMPLETE][125] ([i915#636])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6401/shard-kbl7/igt@kms_flip@flip-vs-suspend@c-dp1.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-kbl3/igt@kms_flip@flip-vs-suspend@c-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-tglb:         NOTRUN -> [SKIP][126] ([i915#2587])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_force_connector_basic@force-load-detect:
    - shard-iclb:         NOTRUN -> [SKIP][127] ([fdo#109285])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb2/igt@kms_force_connector_basic@force-load-detect.html
    - shard-tglb:         NOTRUN -> [SKIP][128] ([fdo#109285])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-tglb:         NOTRUN -> [SKIP][129] ([i915#5439])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-iclb:         NOTRUN -> [SKIP][130] ([fdo#109280]) +31 similar issues
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-tglb:         NOTRUN -> [SKIP][131] ([fdo#109280] / [fdo#111825]) +37 similar issues
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-tglb:         NOTRUN -> [SKIP][132] ([i915#3555]) +2 similar issues
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6847/shard-tglb1/igt@kms_hdr@static-toggle-dpms.html
    - shard-iclb:         NOTRUN

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t 2/2] lib/igt_kmod: Unload mei modules before unloading i915
  2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kmod: Unload mei modules before unloading i915 Daniele Ceraolo Spurio
@ 2022-03-31 21:54   ` Dixit, Ashutosh
  2022-04-01  1:23     ` Dixit, Ashutosh
  0 siblings, 1 reply; 15+ messages in thread
From: Dixit, Ashutosh @ 2022-03-31 21:54 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev, Alexander Usyskin

On Wed, 30 Mar 2022 11:32:59 -0700, Daniele Ceraolo Spurio wrote:
>
> mei_gsc binds to an aux device exposed by i915, so it depends on it and
> need to be removed before we can unload i915.
> On platforms with a GSC, the mei components (pxp, hdcp) depend on
> mei_gsc, so those need to be unloaded first.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Cc: Alexander Usyskin <alexander.usyskin@intel.com>
> ---
>  lib/igt_kmod.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index d2ac8a56..28ffe515 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -400,6 +400,10 @@ int __igt_i915_driver_unload(const char **who)
>	const char *aux[] = {
>		/* gen5: ips uses symbol_get() so only a soft module dependency */
>		"intel_ips",
> +		/* mei_gsc uses an i915 aux dev and the other mei mods depend on it */
> +		"mei_pxp",
> +		"mei_hdcp",
> +		"mei_gsc",
>		NULL,
>	};
>
> --
> 2.25.1
>

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it.
  2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it Daniele Ceraolo Spurio
@ 2022-03-31 22:52   ` Dixit, Ashutosh
  2022-03-31 23:09     ` Ceraolo Spurio, Daniele
  2022-04-01  2:03   ` Dixit, Ashutosh
  1 sibling, 1 reply; 15+ messages in thread
From: Dixit, Ashutosh @ 2022-03-31 22:52 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev, Alexander Usyskin

On Wed, 30 Mar 2022 11:32:58 -0700, Daniele Ceraolo Spurio wrote:
>
> Modprobing i915 can result in other dependent modules being loaded
> automatically as a follow up. This means that by the time the i915 load
> function returns these modules may still be going through their init, so
> if we try to immediately unload i915 again we will fail with an
> -EBUSY.

Can you explain a bit where we see this happening and if any tests fail
because of this? My expectation would be if module A depends on module B,
loading A will cause B to load, but loading B will not cause A to load. So
what is causing these dependent modules to load when we load i915? Is there
e.g. something in /etc/modprobe.d or udev which is causing this to happen?

Currently in IGT we maintain a list of modules depenedent on i915 which we
unload prior to unloading i915. An alternative approach to this patch may
be to maintain a similar list in igt_i915_driver_load() and load dependent
modules after loading i915 as long as they are present on the system. So we
would not need to wait for these dependent modules to complete loading when
we unload i915. Do you think this is feasible?

Thanks.

> To avoid this, if the module load is still in progress, wait for it to
> complete before unloading.

>
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> ---
>  lib/igt_kmod.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index cf7a3b22..d2ac8a56 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -143,6 +143,12 @@ out:
>	return ret;
>  }
>
> +static bool
> +igt_kmod_is_loading(struct kmod_module *kmod)
> +{
> +	return kmod_module_get_initstate(kmod) == KMOD_MODULE_COMING;
> +}
> +
>  static int modprobe(struct kmod_module *kmod, const char *options)
>  {
>	unsigned int flags;
> @@ -289,6 +295,16 @@ igt_kmod_unload(const char *mod_name, unsigned int flags)
>		goto out;
>	}
>
> +	if (igt_kmod_is_loading(kmod)) {
> +		igt_debug("%s still initializing\n", mod_name);
> +		err = igt_wait(!igt_kmod_is_loading(kmod), 10000, 100);
> +		if (err < 0) {
> +			igt_debug("%s failed to complete init within the timeout\n",
> +				  mod_name);
> +			goto out;
> +		}
> +	}
> +
>	err = igt_kmod_unload_r(kmod, flags);
>	if (err < 0) {
>		igt_debug("Could not remove module %s (%s)\n", mod_name,
> --
> 2.25.1
>

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it.
  2022-03-31 22:52   ` Dixit, Ashutosh
@ 2022-03-31 23:09     ` Ceraolo Spurio, Daniele
  2022-04-01  1:18       ` Dixit, Ashutosh
  0 siblings, 1 reply; 15+ messages in thread
From: Ceraolo Spurio, Daniele @ 2022-03-31 23:09 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev, Alexander Usyskin



On 3/31/2022 3:52 PM, Dixit, Ashutosh wrote:
> On Wed, 30 Mar 2022 11:32:58 -0700, Daniele Ceraolo Spurio wrote:
>> Modprobing i915 can result in other dependent modules being loaded
>> automatically as a follow up. This means that by the time the i915 load
>> function returns these modules may still be going through their init, so
>> if we try to immediately unload i915 again we will fail with an
>> -EBUSY.
> Can you explain a bit where we see this happening and if any tests fail
> because of this? My expectation would be if module A depends on module B,
> loading A will cause B to load, but loading B will not cause A to load. So
> what is causing these dependent modules to load when we load i915? Is there
> e.g. something in /etc/modprobe.d or udev which is causing this to happen?

This is a new scenario, introduced with the GSC series where i915 
exposes the GSC as an aux device and the mei-gsc module binds to it 
(link to the kernel series in the cover letter). The kernel handles the 
addition of an aux device similarly to a device hot-plug, with the 
relevant driver (mei-gsc in this case) being automatically probed, 
without requiring an explicit modprobe. This aux device probe happens 
separately from the parent device probe, which means that the i915 probe 
can complete and return before the mei-gsc probe is done. The fact that 
mei-gsc binds to an i915 aux device creates a dependency, even if 
mei-gsc doesn't actually explicitly use any function exported by i915, 
so we need to unload it to be able to unload i915.

> Currently in IGT we maintain a list of modules depenedent on i915 which we
> unload prior to unloading i915. An alternative approach to this patch may
> be to maintain a similar list in igt_i915_driver_load() and load dependent
> modules after loading i915 as long as they are present on the system. So we
> would not need to wait for these dependent modules to complete loading when
> we unload i915. Do you think this is feasible?

No, as mentioned above the module is loaded automatically.

Daniele

>
> Thanks.
>
>> To avoid this, if the module load is still in progress, wait for it to
>> complete before unloading.
>> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
>> ---
>>   lib/igt_kmod.c | 16 ++++++++++++++++
>>   1 file changed, 16 insertions(+)
>>
>> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
>> index cf7a3b22..d2ac8a56 100644
>> --- a/lib/igt_kmod.c
>> +++ b/lib/igt_kmod.c
>> @@ -143,6 +143,12 @@ out:
>> 	return ret;
>>   }
>>
>> +static bool
>> +igt_kmod_is_loading(struct kmod_module *kmod)
>> +{
>> +	return kmod_module_get_initstate(kmod) == KMOD_MODULE_COMING;
>> +}
>> +
>>   static int modprobe(struct kmod_module *kmod, const char *options)
>>   {
>> 	unsigned int flags;
>> @@ -289,6 +295,16 @@ igt_kmod_unload(const char *mod_name, unsigned int flags)
>> 		goto out;
>> 	}
>>
>> +	if (igt_kmod_is_loading(kmod)) {
>> +		igt_debug("%s still initializing\n", mod_name);
>> +		err = igt_wait(!igt_kmod_is_loading(kmod), 10000, 100);
>> +		if (err < 0) {
>> +			igt_debug("%s failed to complete init within the timeout\n",
>> +				  mod_name);
>> +			goto out;
>> +		}
>> +	}
>> +
>> 	err = igt_kmod_unload_r(kmod, flags);
>> 	if (err < 0) {
>> 		igt_debug("Could not remove module %s (%s)\n", mod_name,
>> --
>> 2.25.1
>>

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it.
  2022-03-31 23:09     ` Ceraolo Spurio, Daniele
@ 2022-04-01  1:18       ` Dixit, Ashutosh
  0 siblings, 0 replies; 15+ messages in thread
From: Dixit, Ashutosh @ 2022-04-01  1:18 UTC (permalink / raw)
  To: Ceraolo Spurio, Daniele; +Cc: igt-dev, Alexander Usyskin

On Thu, 31 Mar 2022 16:09:32 -0700, Ceraolo Spurio, Daniele wrote:
>
> On 3/31/2022 3:52 PM, Dixit, Ashutosh wrote:
> > On Wed, 30 Mar 2022 11:32:58 -0700, Daniele Ceraolo Spurio wrote:
> >> Modprobing i915 can result in other dependent modules being loaded
> >> automatically as a follow up. This means that by the time the i915 load
> >> function returns these modules may still be going through their init, so
> >> if we try to immediately unload i915 again we will fail with an
> >> -EBUSY.
> > Can you explain a bit where we see this happening and if any tests fail
> > because of this? My expectation would be if module A depends on module B,
> > loading A will cause B to load, but loading B will not cause A to load. So
> > what is causing these dependent modules to load when we load i915? Is there
> > e.g. something in /etc/modprobe.d or udev which is causing this to happen?
>
> This is a new scenario, introduced with the GSC series where i915 exposes
> the GSC as an aux device and the mei-gsc module binds to it (link to the
> kernel series in the cover letter). The kernel handles the addition of an
> aux device similarly to a device hot-plug, with the relevant driver
> (mei-gsc in this case) being automatically probed, without requiring an
> explicit modprobe. This aux device probe happens separately from the parent
> device probe, which means that the i915 probe can complete and return
> before the mei-gsc probe is done. The fact that mei-gsc binds to an i915
> aux device creates a dependency, even if mei-gsc doesn't actually
> explicitly use any function exported by i915, so we need to unload it to be
> able to unload i915.
>
> > Currently in IGT we maintain a list of modules depenedent on i915 which we
> > unload prior to unloading i915. An alternative approach to this patch may
> > be to maintain a similar list in igt_i915_driver_load() and load dependent
> > modules after loading i915 as long as they are present on the system. So we
> > would not need to wait for these dependent modules to complete loading when
> > we unload i915. Do you think this is feasible?
>
> No, as mentioned above the module is loaded automatically.

OK, thanks for the explanation, this corresponds to my understanding of how
these buses (in this case aux bus) work. I have a couple more questions
which let me ask separately. Thanks.

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

* Re: [igt-dev] [PATCH i-g-t 2/2] lib/igt_kmod: Unload mei modules before unloading i915
  2022-03-31 21:54   ` Dixit, Ashutosh
@ 2022-04-01  1:23     ` Dixit, Ashutosh
  2022-04-01  2:04       ` Ceraolo Spurio, Daniele
  0 siblings, 1 reply; 15+ messages in thread
From: Dixit, Ashutosh @ 2022-04-01  1:23 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev, Alexander Usyskin

On Thu, 31 Mar 2022 14:54:08 -0700, Dixit, Ashutosh wrote:
>
> On Wed, 30 Mar 2022 11:32:59 -0700, Daniele Ceraolo Spurio wrote:
> >
> > mei_gsc binds to an aux device exposed by i915, so it depends on it and
> > need to be removed before we can unload i915.
> > On platforms with a GSC, the mei components (pxp, hdcp) depend on
> > mei_gsc, so those need to be unloaded first.
>
> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
>
> > Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > Cc: Alexander Usyskin <alexander.usyskin@intel.com>
> > ---
> >  lib/igt_kmod.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> > index d2ac8a56..28ffe515 100644
> > --- a/lib/igt_kmod.c
> > +++ b/lib/igt_kmod.c
> > @@ -400,6 +400,10 @@ int __igt_i915_driver_unload(const char **who)
> >	const char *aux[] = {
> >		/* gen5: ips uses symbol_get() so only a soft module dependency */
> >		"intel_ips",
> > +		/* mei_gsc uses an i915 aux dev and the other mei mods depend on it */
> > +		"mei_pxp",
> > +		"mei_hdcp",
> > +		"mei_gsc",

Actually come to think of it now, why do we even have this list?
igt_kmod_unload_r() should automatically try to unload any modules which
depend on i915. See 1fbeb61e2695. Or does the aux bus make these modules an
exception?

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it.
  2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it Daniele Ceraolo Spurio
  2022-03-31 22:52   ` Dixit, Ashutosh
@ 2022-04-01  2:03   ` Dixit, Ashutosh
  2022-04-01  2:11     ` Ceraolo Spurio, Daniele
  1 sibling, 1 reply; 15+ messages in thread
From: Dixit, Ashutosh @ 2022-04-01  2:03 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev

On Wed, 30 Mar 2022 11:32:58 -0700, Daniele Ceraolo Spurio wrote:
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index cf7a3b22..d2ac8a56 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -143,6 +143,12 @@ out:
>	return ret;
>  }
>
> +static bool
> +igt_kmod_is_loading(struct kmod_module *kmod)
> +{
> +	return kmod_module_get_initstate(kmod) == KMOD_MODULE_COMING;

One idea would be to check for KMOD_MODULE_LIVE here which will basically
invert the logic in the loop but will be a more exact check? But anyway
it's equivalent so no need to change I guess.

>  static int modprobe(struct kmod_module *kmod, const char *options)
>  {
>	unsigned int flags;
> @@ -289,6 +295,16 @@ igt_kmod_unload(const char *mod_name, unsigned int flags)
>		goto out;
>	}
>
> +	if (igt_kmod_is_loading(kmod)) {
> +		igt_debug("%s still initializing\n", mod_name);
> +		err = igt_wait(!igt_kmod_is_loading(kmod), 10000, 100);
> +		if (err < 0) {
> +			igt_debug("%s failed to complete init within the timeout\n",
> +				  mod_name);
> +			goto out;
> +		}
> +	}
> +
>	err = igt_kmod_unload_r(kmod, flags);

I think it's better to add this code to igt_kmod_unload_r() (instead of
igt_kmod_unload()) since that calls itself recursively to remove dependent
modules?

Also it seems strange that we should explicitly have to wait for module
state to become LIVE and kmod_module_remove_module() (which in turn calls
the delete_module syscall) doesn't handle this itself? But 'man
delete_module' specifically mentions this:

  ERRORS
       EBUSY  The module is not "live" (i.e., it is still being initialized or
              is already marked for removal) ...

So a patch like this seems to be needed somewhere (in IGT or in
libkmod). So adding it to IGT for now is fine.

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

* Re: [igt-dev] [PATCH i-g-t 2/2] lib/igt_kmod: Unload mei modules before unloading i915
  2022-04-01  1:23     ` Dixit, Ashutosh
@ 2022-04-01  2:04       ` Ceraolo Spurio, Daniele
  0 siblings, 0 replies; 15+ messages in thread
From: Ceraolo Spurio, Daniele @ 2022-04-01  2:04 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev, Alexander Usyskin



On 3/31/2022 6:23 PM, Dixit, Ashutosh wrote:
> On Thu, 31 Mar 2022 14:54:08 -0700, Dixit, Ashutosh wrote:
>> On Wed, 30 Mar 2022 11:32:59 -0700, Daniele Ceraolo Spurio wrote:
>>> mei_gsc binds to an aux device exposed by i915, so it depends on it and
>>> need to be removed before we can unload i915.
>>> On platforms with a GSC, the mei components (pxp, hdcp) depend on
>>> mei_gsc, so those need to be unloaded first.
>> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
>>
>>> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
>>> Cc: Alexander Usyskin <alexander.usyskin@intel.com>
>>> ---
>>>   lib/igt_kmod.c | 4 ++++
>>>   1 file changed, 4 insertions(+)
>>>
>>> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
>>> index d2ac8a56..28ffe515 100644
>>> --- a/lib/igt_kmod.c
>>> +++ b/lib/igt_kmod.c
>>> @@ -400,6 +400,10 @@ int __igt_i915_driver_unload(const char **who)
>>> 	const char *aux[] = {
>>> 		/* gen5: ips uses symbol_get() so only a soft module dependency */
>>> 		"intel_ips",
>>> +		/* mei_gsc uses an i915 aux dev and the other mei mods depend on it */
>>> +		"mei_pxp",
>>> +		"mei_hdcp",
>>> +		"mei_gsc",
> Actually come to think of it now, why do we even have this list?
> igt_kmod_unload_r() should automatically try to unload any modules which
> depend on i915. See 1fbeb61e2695. Or does the aux bus make these modules an
> exception?

It does. There is no direct module-to-module dependency between i915 and 
mei_gsc, so the automatic unload via dependency tracking won't work. 
Similarly, mei_pxp and mei_hdcp bind to sub-components exposed by mei_gsc.

Daniele


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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it.
  2022-04-01  2:03   ` Dixit, Ashutosh
@ 2022-04-01  2:11     ` Ceraolo Spurio, Daniele
  2022-04-01  2:21       ` Dixit, Ashutosh
  0 siblings, 1 reply; 15+ messages in thread
From: Ceraolo Spurio, Daniele @ 2022-04-01  2:11 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev



On 3/31/2022 7:03 PM, Dixit, Ashutosh wrote:
> On Wed, 30 Mar 2022 11:32:58 -0700, Daniele Ceraolo Spurio wrote:
>> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
>> index cf7a3b22..d2ac8a56 100644
>> --- a/lib/igt_kmod.c
>> +++ b/lib/igt_kmod.c
>> @@ -143,6 +143,12 @@ out:
>> 	return ret;
>>   }
>>
>> +static bool
>> +igt_kmod_is_loading(struct kmod_module *kmod)
>> +{
>> +	return kmod_module_get_initstate(kmod) == KMOD_MODULE_COMING;
> One idea would be to check for KMOD_MODULE_LIVE here which will basically
> invert the logic in the loop but will be a more exact check? But anyway
> it's equivalent so no need to change I guess.

I was undecided myself, but decided to go with "COMING" because that 
matches the exact case I was looking for (i.e. init in progress). I can 
flip it to check for KMOD_MODULE_LIVE  if you think that works better 
and/or is more generic.

>
>>   static int modprobe(struct kmod_module *kmod, const char *options)
>>   {
>> 	unsigned int flags;
>> @@ -289,6 +295,16 @@ igt_kmod_unload(const char *mod_name, unsigned int flags)
>> 		goto out;
>> 	}
>>
>> +	if (igt_kmod_is_loading(kmod)) {
>> +		igt_debug("%s still initializing\n", mod_name);
>> +		err = igt_wait(!igt_kmod_is_loading(kmod), 10000, 100);
>> +		if (err < 0) {
>> +			igt_debug("%s failed to complete init within the timeout\n",
>> +				  mod_name);
>> +			goto out;
>> +		}
>> +	}
>> +
>> 	err = igt_kmod_unload_r(kmod, flags);
> I think it's better to add this code to igt_kmod_unload_r() (instead of
> igt_kmod_unload()) since that calls itself recursively to remove dependent
> modules?

I'll move it there.

Daniele

>
> Also it seems strange that we should explicitly have to wait for module
> state to become LIVE and kmod_module_remove_module() (which in turn calls
> the delete_module syscall) doesn't handle this itself? But 'man
> delete_module' specifically mentions this:
>
>    ERRORS
>         EBUSY  The module is not "live" (i.e., it is still being initialized or
>                is already marked for removal) ...
>
> So a patch like this seems to be needed somewhere (in IGT or in
> libkmod). So adding it to IGT for now is fine.

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it.
  2022-04-01  2:11     ` Ceraolo Spurio, Daniele
@ 2022-04-01  2:21       ` Dixit, Ashutosh
  0 siblings, 0 replies; 15+ messages in thread
From: Dixit, Ashutosh @ 2022-04-01  2:21 UTC (permalink / raw)
  To: Ceraolo Spurio, Daniele; +Cc: igt-dev

On Thu, 31 Mar 2022 19:11:23 -0700, Ceraolo Spurio, Daniele wrote:
>
> On 3/31/2022 7:03 PM, Dixit, Ashutosh wrote:
> > On Wed, 30 Mar 2022 11:32:58 -0700, Daniele Ceraolo Spurio wrote:
> >> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> >> index cf7a3b22..d2ac8a56 100644
> >> --- a/lib/igt_kmod.c
> >> +++ b/lib/igt_kmod.c
> >> @@ -143,6 +143,12 @@ out:
> >>	return ret;
> >>   }
> >>
> >> +static bool
> >> +igt_kmod_is_loading(struct kmod_module *kmod)
> >> +{
> >> +	return kmod_module_get_initstate(kmod) == KMOD_MODULE_COMING;
> > One idea would be to check for KMOD_MODULE_LIVE here which will basically
> > invert the logic in the loop but will be a more exact check? But anyway
> > it's equivalent so no need to change I guess.
>
> I was undecided myself, but decided to go with "COMING" because that
> matches the exact case I was looking for (i.e. init in progress). I can
> flip it to check for KMOD_MODULE_LIVE  if you think that works better
> and/or is more generic.

Leave as is. Or you decide, either is ok with me. Thanks.

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

end of thread, other threads:[~2022-04-01  2:21 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-30 18:32 [igt-dev] [PATCH i-g-t 0/2] Unload mei_gsc before i915 Daniele Ceraolo Spurio
2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_kmod: Wait for a kmod to finish its probe before unloding it Daniele Ceraolo Spurio
2022-03-31 22:52   ` Dixit, Ashutosh
2022-03-31 23:09     ` Ceraolo Spurio, Daniele
2022-04-01  1:18       ` Dixit, Ashutosh
2022-04-01  2:03   ` Dixit, Ashutosh
2022-04-01  2:11     ` Ceraolo Spurio, Daniele
2022-04-01  2:21       ` Dixit, Ashutosh
2022-03-30 18:32 ` [igt-dev] [PATCH i-g-t 2/2] lib/igt_kmod: Unload mei modules before unloading i915 Daniele Ceraolo Spurio
2022-03-31 21:54   ` Dixit, Ashutosh
2022-04-01  1:23     ` Dixit, Ashutosh
2022-04-01  2:04       ` Ceraolo Spurio, Daniele
2022-03-30 18:51 ` [igt-dev] ✗ GitLab.Pipeline: warning for Unload mei_gsc before i915 Patchwork
2022-03-30 19:25 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2022-03-30 22:33 ` [igt-dev] ✓ Fi.CI.IGT: " 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.