All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/2] Nuke unload_i915
@ 2021-10-25  9:23 Anshuman Gupta
  2021-10-25  9:23 ` [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload Anshuman Gupta
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Anshuman Gupta @ 2021-10-25  9:23 UTC (permalink / raw)
  To: igt-dev; +Cc: chris.p.wilson, badal.nilawar, Anshuman Gupta

Use a silent version of lib function __igt_i915_driver_unload()
instead.

Anshuman Gupta (2):
  lib: Add silent __igt_i915_driver_unload
  perf/perf_pmu: Nuke unload_i915

 lib/igt_kmod.c        | 86 +++++++++++++++++++++++++------------------
 lib/igt_kmod.h        |  1 +
 tests/i915/perf_pmu.c | 31 ++--------------
 3 files changed, 55 insertions(+), 63 deletions(-)

-- 
2.26.2

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

* [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload
  2021-10-25  9:23 [igt-dev] [PATCH i-g-t 0/2] Nuke unload_i915 Anshuman Gupta
@ 2021-10-25  9:23 ` Anshuman Gupta
  2022-02-12  4:20   ` Dixit, Ashutosh
  2021-10-25  9:23 ` [igt-dev] [PATCH i-g-t 2/2] perf/perf_pmu: Nuke unload_i915 Anshuman Gupta
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Anshuman Gupta @ 2021-10-25  9:23 UTC (permalink / raw)
  To: igt-dev; +Cc: chris.p.wilson, badal.nilawar, Anshuman Gupta

Add silent __igt_i915_driver_unload(), which will not
print any warning in case of passed argument is NULL.

Cc: Chris Wilson <chris.p.wilson@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 lib/igt_kmod.c | 86 ++++++++++++++++++++++++++++++--------------------
 lib/igt_kmod.h |  1 +
 2 files changed, 52 insertions(+), 35 deletions(-)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 10e983844..ce9bfc07a 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -369,56 +369,72 @@ igt_i915_driver_load(const char *opts)
 	return IGT_EXIT_SUCCESS;
 }
 
-/**
- * igt_i915_driver_unload:
- *
- * Unloads the i915 driver and its dependencies.
- *
- */
-int
-igt_i915_driver_unload(void)
+int __igt_i915_driver_unload(const char **whom)
 {
+	const char *sound[] = {
+		"snd_hda_intel",
+		"snd_hdmi_lpe_audio",
+		NULL,
+	};
+
+	const char *aux[] = {
+		/* gen5: ips uses symbol_get() so only a soft module dependency */
+		"intel_ips",
+		NULL,
+	};
+
 	/* unbind vt */
 	bind_fbcon(false);
 
-	if (igt_kmod_is_loaded("snd_hda_intel")) {
-		igt_terminate_process(SIGTERM, "alsactl");
-
-		/* unbind snd_hda_intel */
-		kick_snd_hda_intel();
-
-		if (igt_kmod_unload("snd_hda_intel", 0)) {
-			igt_warn("Could not unload snd_hda_intel\n");
-			igt_kmod_list_loaded();
-			igt_lsof("/dev/snd");
-			return IGT_EXIT_FAILURE;
+	for (const char **m = sound; *m; m++) {
+		if (igt_kmod_is_loaded(*m)) {
+			igt_terminate_process(SIGTERM, "alsactl");
+			kick_snd_hda_intel();
+			if (igt_kmod_unload(*m, 0)) {
+				if (whom)
+					*whom = *m;
+				return IGT_EXIT_FAILURE;
+			}
 		}
 	}
 
-	if (igt_kmod_is_loaded("snd_hdmi_lpe_audio")) {
-		igt_terminate_process(SIGTERM, "alsactl");
-
-		if (igt_kmod_unload("snd_hdmi_lpe_audio", 0)) {
-			igt_warn("Could not unload snd_hdmi_lpe_audio\n");
-			igt_kmod_list_loaded();
-			igt_lsof("/dev/snd");
-			return IGT_EXIT_FAILURE;
-		}
+	for (const char **m = aux; *m; m++) {
+		if (igt_kmod_is_loaded(*m))
+			igt_kmod_unload(*m, 0);
 	}
 
-	/* gen5: ips uses symbol_get() so only a soft module dependency */
-	if (igt_kmod_is_loaded("intel_ips"))
-		igt_kmod_unload("intel_ips", 0);
-
 	if (igt_kmod_is_loaded("i915")) {
 		if (igt_kmod_unload("i915", 0)) {
-			igt_warn("Could not unload i915\n");
-			igt_kmod_list_loaded();
-			igt_lsof("/dev/dri");
+			if (whom)
+				*whom = "i915";
 			return IGT_EXIT_SKIP;
 		}
 	}
 
+	return IGT_EXIT_SUCCESS;
+}
+
+/**
+ * igt_i915_driver_unload:
+ *
+ * Unloads the i915 driver and its dependencies.
+ *
+ */
+int
+igt_i915_driver_unload(void)
+{
+	const char *whom;
+	int ret;
+
+	ret = __igt_i915_driver_unload(&whom);
+	if (ret) {
+		igt_warn("Could not unload %s\n", whom);
+		igt_kmod_list_loaded();
+		igt_lsof("/dev/dri");
+		igt_lsof("/dev/snd");
+		return ret;
+	}
+
 	if (igt_kmod_is_loaded("intel-gtt"))
 		igt_kmod_unload("intel-gtt", 0);
 
diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h
index 04c87516f..0898122b3 100644
--- a/lib/igt_kmod.h
+++ b/lib/igt_kmod.h
@@ -38,6 +38,7 @@ int igt_kmod_unload(const char *mod_name, unsigned int flags);
 
 int igt_i915_driver_load(const char *opts);
 int igt_i915_driver_unload(void);
+int __igt_i915_driver_unload(const char **whom);
 
 int igt_amdgpu_driver_load(const char *opts);
 int igt_amdgpu_driver_unload(void);
-- 
2.26.2

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

* [igt-dev] [PATCH i-g-t 2/2] perf/perf_pmu: Nuke unload_i915
  2021-10-25  9:23 [igt-dev] [PATCH i-g-t 0/2] Nuke unload_i915 Anshuman Gupta
  2021-10-25  9:23 ` [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload Anshuman Gupta
@ 2021-10-25  9:23 ` Anshuman Gupta
  2021-10-25 10:19 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
  2021-10-25 12:54 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  3 siblings, 0 replies; 9+ messages in thread
From: Anshuman Gupta @ 2021-10-25  9:23 UTC (permalink / raw)
  To: igt-dev; +Cc: chris.p.wilson, badal.nilawar, Anshuman Gupta

Nuke unload_i915, instead use lib igt_i915_driver_unload()
and __igt_i915_driver_unload().

Cc: Chris Wilson <chris.p.wilson@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 tests/i915/perf_pmu.c | 31 +++----------------------------
 1 file changed, 3 insertions(+), 28 deletions(-)

diff --git a/tests/i915/perf_pmu.c b/tests/i915/perf_pmu.c
index 581da8483..9106f7193 100644
--- a/tests/i915/perf_pmu.c
+++ b/tests/i915/perf_pmu.c
@@ -2039,31 +2039,6 @@ static void faulting_read(int gem_fd, const struct mmap_offset *t)
 	munmap(ptr, 4096);
 }
 
-static int unload_i915(void)
-{
-	bind_fbcon(false);
-
-	if (igt_kmod_is_loaded("snd_hda_intel")) {
-		igt_terminate_process(SIGTERM, "alsactl");
-		kick_snd_hda_intel();
-		if (igt_kmod_unload("snd_hda_intel", 0))
-			return -EAGAIN;
-	}
-
-	if (igt_kmod_is_loaded("snd_hdmi_lpe_audio")) {
-		igt_terminate_process(SIGTERM, "alsactl");
-		if (igt_kmod_unload("snd_hdmi_lpe_audio", 0))
-			return -EAGAIN;
-	}
-
-	if (igt_kmod_is_loaded("i915")) {
-		if (igt_kmod_unload("i915", 0))
-			return -EBUSY;
-	}
-
-	return 0;
-}
-
 static void test_unload(unsigned int num_engines)
 {
 	igt_fork(child, 1) {
@@ -2126,7 +2101,7 @@ static void test_unload(unsigned int num_engines)
 
 		igt_debug("Read %d events from perf and trial unload\n", count);
 		pmu_read_multi(fd[0], count, buf);
-		igt_assert_eq(unload_i915(), -EBUSY);
+		igt_assert_eq(__igt_i915_driver_unload(NULL), IGT_EXIT_SKIP);
 		pmu_read_multi(fd[0], count, buf);
 
 		igt_debug("Close perf\n");
@@ -2139,7 +2114,7 @@ static void test_unload(unsigned int num_engines)
 	igt_waitchildren();
 
 	igt_debug("Final unload\n");
-	igt_assert_eq(unload_i915(), 0);
+	igt_assert_eq(__igt_i915_driver_unload(NULL), IGT_EXIT_SUCCESS);
 }
 
 #define test_each_engine(T, i915, ctx, e) \
@@ -2419,7 +2394,7 @@ igt_main
 	}
 
 	igt_subtest("module-unload") {
-		igt_require(unload_i915() == 0);
+		igt_require(igt_i915_driver_unload() == IGT_EXIT_SUCCESS);
 		for (int pass = 0; pass < 3; pass++)
 			test_unload(num_engines);
 	}
-- 
2.26.2

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

* [igt-dev] ✓ Fi.CI.BAT: success for Nuke unload_i915
  2021-10-25  9:23 [igt-dev] [PATCH i-g-t 0/2] Nuke unload_i915 Anshuman Gupta
  2021-10-25  9:23 ` [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload Anshuman Gupta
  2021-10-25  9:23 ` [igt-dev] [PATCH i-g-t 2/2] perf/perf_pmu: Nuke unload_i915 Anshuman Gupta
@ 2021-10-25 10:19 ` Patchwork
  2021-10-25 12:54 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  3 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2021-10-25 10:19 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

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

== Series Details ==

Series: Nuke unload_i915
URL   : https://patchwork.freedesktop.org/series/96238/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10783 -> IGTPW_6351
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (37 -> 34)
------------------------------

  Additional (1): fi-tgl-1115g4 
  Missing    (4): fi-ctg-p8600 fi-bsw-cyan bat-dg1-6 bat-adlp-4 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@query-info:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][1] ([fdo#109315])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@amdgpu/amd_basic@query-info.html

  * igt@amdgpu/amd_cs_nop@nop-gfx0:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][2] ([fdo#109315] / [i915#2575]) +16 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@amdgpu/amd_cs_nop@nop-gfx0.html

  * igt@gem_huc_copy@huc-copy:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][3] ([i915#2190])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@gem_huc_copy@huc-copy.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][4] ([i915#1155])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_selftest@live@execlists:
    - fi-bsw-kefka:       [PASS][5] -> [INCOMPLETE][6] ([i915#2940])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/fi-bsw-kefka/igt@i915_selftest@live@execlists.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-bsw-kefka/igt@i915_selftest@live@execlists.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][7] ([fdo#111827]) +8 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][8] ([i915#4103]) +1 similar issue
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][9] ([fdo#109285])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_psr@primary_mmap_gtt:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][10] ([i915#1072]) +3 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@kms_psr@primary_mmap_gtt.html

  * igt@prime_vgem@basic-userptr:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][11] ([i915#3301])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-tgl-1115g4/igt@prime_vgem@basic-userptr.html

  
#### Possible fixes ####

  * igt@kms_flip@basic-flip-vs-modeset@c-dp1:
    - fi-cfl-8109u:       [FAIL][12] ([i915#4165]) -> [PASS][13] +1 similar issue
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/fi-cfl-8109u/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-cfl-8109u/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b:
    - fi-cfl-8109u:       [DMESG-WARN][14] ([i915#295]) -> [PASS][15] +18 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html

  
  [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#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4165]: https://gitlab.freedesktop.org/drm/intel/issues/4165


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6260 -> IGTPW_6351

  CI-20190529: 20190529
  CI_DRM_10783: 4bcbd6854fa894352f74ae4164b88e7d378106a9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6351: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/index.html
  IGT_6260: 46994310410404a07d142f33fab220d718c27f64 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for Nuke unload_i915
  2021-10-25  9:23 [igt-dev] [PATCH i-g-t 0/2] Nuke unload_i915 Anshuman Gupta
                   ` (2 preceding siblings ...)
  2021-10-25 10:19 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
@ 2021-10-25 12:54 ` Patchwork
  3 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2021-10-25 12:54 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

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

== Series Details ==

Series: Nuke unload_i915
URL   : https://patchwork.freedesktop.org/series/96238/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10783_full -> IGTPW_6351_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (10 -> 7)
------------------------------

  Missing    (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@display-3x:
    - shard-tglb:         NOTRUN -> [SKIP][1] ([i915#1839])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb5/igt@feature_discovery@display-3x.html

  * igt@gem_ctx_persistence@many-contexts:
    - shard-tglb:         [PASS][2] -> [FAIL][3] ([i915#2410])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-tglb2/igt@gem_ctx_persistence@many-contexts.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb8/igt@gem_ctx_persistence@many-contexts.html

  * igt@gem_ctx_persistence@process:
    - shard-snb:          NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#1099])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-snb5/igt@gem_ctx_persistence@process.html

  * igt@gem_ctx_sseu@engines:
    - shard-tglb:         NOTRUN -> [SKIP][5] ([i915#280])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb5/igt@gem_ctx_sseu@engines.html

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         NOTRUN -> [TIMEOUT][6] ([i915#2369] / [i915#3063] / [i915#3648])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb6/igt@gem_eio@unwedge-stress.html
    - shard-iclb:         NOTRUN -> [TIMEOUT][7] ([i915#2369] / [i915#2481] / [i915#3070])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb1/igt@gem_eio@unwedge-stress.html
    - shard-snb:          NOTRUN -> [FAIL][8] ([i915#3354])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-snb7/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-kbl:          [PASS][9] -> [FAIL][10] ([i915#2846])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-kbl2/igt@gem_exec_fair@basic-deadline.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl6/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-iclb:         [PASS][11] -> [FAIL][12] ([i915#2842])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-iclb4/igt@gem_exec_fair@basic-none-share@rcs0.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb6/igt@gem_exec_fair@basic-none-share@rcs0.html
    - shard-tglb:         [PASS][13] -> [FAIL][14] ([i915#2842])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-tglb5/igt@gem_exec_fair@basic-none-share@rcs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb3/igt@gem_exec_fair@basic-none-share@rcs0.html
    - shard-apl:          [PASS][15] -> [SKIP][16] ([fdo#109271])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-apl4/igt@gem_exec_fair@basic-none-share@rcs0.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl2/igt@gem_exec_fair@basic-none-share@rcs0.html
    - shard-glk:          NOTRUN -> [FAIL][17] ([i915#2842])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk6/igt@gem_exec_fair@basic-none-share@rcs0.html

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

  * igt@gem_exec_fair@basic-none@rcs0:
    - shard-glk:          [PASS][19] -> [FAIL][20] ([i915#2842])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-glk5/igt@gem_exec_fair@basic-none@rcs0.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk8/igt@gem_exec_fair@basic-none@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [PASS][21] -> [FAIL][22] ([i915#2849])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_schedule@semaphore-codependency:
    - shard-snb:          NOTRUN -> [SKIP][23] ([fdo#109271]) +112 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-snb2/igt@gem_exec_schedule@semaphore-codependency.html

  * igt@gem_exec_suspend@basic-s0:
    - shard-tglb:         [PASS][24] -> [INCOMPLETE][25] ([i915#456])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-tglb1/igt@gem_exec_suspend@basic-s0.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb7/igt@gem_exec_suspend@basic-s0.html

  * igt@gem_exec_suspend@basic-s3:
    - shard-kbl:          [PASS][26] -> [DMESG-WARN][27] ([i915#180]) +4 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-kbl7/igt@gem_exec_suspend@basic-s3.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl4/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_exec_whisper@basic-forked-all:
    - shard-glk:          [PASS][28] -> [DMESG-WARN][29] ([i915#118]) +1 similar issue
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-glk2/igt@gem_exec_whisper@basic-forked-all.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk8/igt@gem_exec_whisper@basic-forked-all.html

  * igt@gem_media_vme:
    - shard-tglb:         NOTRUN -> [SKIP][30] ([i915#284])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb5/igt@gem_media_vme.html

  * igt@gem_pxp@verify-pxp-stale-ctx-execution:
    - shard-tglb:         NOTRUN -> [SKIP][31] ([i915#4270])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb7/igt@gem_pxp@verify-pxp-stale-ctx-execution.html

  * igt@gem_render_copy@linear-to-vebox-yf-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][32] ([i915#768]) +2 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb1/igt@gem_render_copy@linear-to-vebox-yf-tiled.html

  * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
    - shard-kbl:          NOTRUN -> [SKIP][33] ([fdo#109271]) +200 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl4/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html

  * igt@gem_userptr_blits@access-control:
    - shard-tglb:         NOTRUN -> [SKIP][34] ([i915#3297])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb6/igt@gem_userptr_blits@access-control.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-kbl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3323])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl6/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gen3_render_linear_blits:
    - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#109289]) +5 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb5/igt@gen3_render_linear_blits.html

  * igt@gen9_exec_parse@bb-chained:
    - shard-iclb:         NOTRUN -> [SKIP][37] ([i915#2856]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb6/igt@gen9_exec_parse@bb-chained.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-tglb:         NOTRUN -> [SKIP][38] ([i915#2856]) +1 similar issue
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb2/igt@gen9_exec_parse@shadow-peek.html

  * igt@i915_pm_backlight@bad-brightness:
    - shard-glk:          NOTRUN -> [SKIP][39] ([fdo#109271]) +134 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk9/igt@i915_pm_backlight@bad-brightness.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][40] -> [FAIL][41] ([i915#454])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-iclb8/igt@i915_pm_dc@dc6-psr.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb3/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
    - shard-kbl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#1937])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl3/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-tglb:         NOTRUN -> [SKIP][43] ([fdo#111644] / [i915#1397] / [i915#2411])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb5/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
    - shard-iclb:         NOTRUN -> [SKIP][44] ([fdo#110892])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb2/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_selftest@live@hangcheck:
    - shard-snb:          [PASS][45] -> [INCOMPLETE][46] ([i915#3921])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-snb5/igt@i915_selftest@live@hangcheck.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-snb2/igt@i915_selftest@live@hangcheck.html

  * igt@i915_suspend@forcewake:
    - shard-apl:          NOTRUN -> [DMESG-WARN][47] ([i915#180])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl6/igt@i915_suspend@forcewake.html

  * igt@i915_suspend@sysfs-reader:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][48] ([i915#180]) +1 similar issue
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl4/igt@i915_suspend@sysfs-reader.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-tglb:         NOTRUN -> [SKIP][49] ([i915#3826])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb8/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglb:         NOTRUN -> [SKIP][50] ([i915#404])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb8/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-iclb:         NOTRUN -> [SKIP][51] ([fdo#110725] / [fdo#111614]) +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb7/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
    - shard-tglb:         NOTRUN -> [SKIP][52] ([fdo#111614]) +2 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb5/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-kbl:          NOTRUN -> [SKIP][53] ([fdo#109271] / [i915#3777]) +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl3/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-apl:          NOTRUN -> [SKIP][54] ([fdo#109271] / [i915#3777])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl3/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

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

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-glk:          NOTRUN -> [SKIP][56] ([fdo#109271] / [i915#3777]) +2 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_joiner@invalid-modeset:
    - shard-tglb:         NOTRUN -> [SKIP][57] ([i915#2705])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb2/igt@kms_big_joiner@invalid-modeset.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-glk:          NOTRUN -> [SKIP][58] ([fdo#109271] / [i915#3886]) +2 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk8/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
    - shard-kbl:          NOTRUN -> [SKIP][59] ([fdo#109271] / [i915#3886]) +10 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl4/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#3886]) +5 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl4/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][61] ([i915#3689]) +11 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb2/igt@kms_ccs@pipe-c-missing-ccs-buffer-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][62] ([i915#3689] / [i915#3886]) +3 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb8/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109278] / [i915#3886])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb7/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_cdclk@plane-scaling:
    - shard-iclb:         NOTRUN -> [SKIP][64] ([i915#3742])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb6/igt@kms_cdclk@plane-scaling.html
    - shard-tglb:         NOTRUN -> [SKIP][65] ([i915#3742])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb3/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium@dp-frame-dump:
    - shard-iclb:         NOTRUN -> [SKIP][66] ([fdo#109284] / [fdo#111827]) +6 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb1/igt@kms_chamelium@dp-frame-dump.html
    - shard-glk:          NOTRUN -> [SKIP][67] ([fdo#109271] / [fdo#111827]) +9 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk6/igt@kms_chamelium@dp-frame-dump.html

  * igt@kms_chamelium@vga-hpd-enable-disable-mode:
    - shard-kbl:          NOTRUN -> [SKIP][68] ([fdo#109271] / [fdo#111827]) +17 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl6/igt@kms_chamelium@vga-hpd-enable-disable-mode.html

  * igt@kms_chamelium@vga-hpd-without-ddc:
    - shard-snb:          NOTRUN -> [SKIP][69] ([fdo#109271] / [fdo#111827]) +6 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-snb7/igt@kms_chamelium@vga-hpd-without-ddc.html

  * igt@kms_color@pipe-d-invalid-ctm-matrix-sizes:
    - shard-iclb:         NOTRUN -> [SKIP][70] ([fdo#109278]) +18 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb7/igt@kms_color@pipe-d-invalid-ctm-matrix-sizes.html

  * igt@kms_color_chamelium@pipe-a-ctm-0-5:
    - shard-apl:          NOTRUN -> [SKIP][71] ([fdo#109271] / [fdo#111827]) +7 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl6/igt@kms_color_chamelium@pipe-a-ctm-0-5.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-5:
    - shard-tglb:         NOTRUN -> [SKIP][72] ([fdo#109284] / [fdo#111827]) +13 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb3/igt@kms_color_chamelium@pipe-b-ctm-0-5.html

  * igt@kms_content_protection@atomic:
    - shard-iclb:         NOTRUN -> [SKIP][73] ([fdo#109300] / [fdo#111066])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb2/igt@kms_content_protection@atomic.html
    - shard-apl:          NOTRUN -> [TIMEOUT][74] ([i915#1319])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl7/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@type1:
    - shard-tglb:         NOTRUN -> [SKIP][75] ([fdo#111828]) +1 similar issue
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb3/igt@kms_content_protection@type1.html

  * igt@kms_cursor_crc@pipe-a-cursor-dpms:
    - shard-glk:          [PASS][76] -> [FAIL][77] ([i915#3444])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-glk1/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk4/igt@kms_cursor_crc@pipe-a-cursor-dpms.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x10-random:
    - shard-tglb:         NOTRUN -> [SKIP][78] ([i915#3359]) +6 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb8/igt@kms_cursor_crc@pipe-b-cursor-32x10-random.html

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

  * igt@kms_cursor_crc@pipe-c-cursor-512x170-random:
    - shard-iclb:         NOTRUN -> [SKIP][80] ([fdo#109278] / [fdo#109279])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb1/igt@kms_cursor_crc@pipe-c-cursor-512x170-random.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-apl:          [PASS][81] -> [DMESG-WARN][82] ([i915#180]) +3 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-apl3/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-d-cursor-512x512-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][83] ([fdo#109279] / [i915#3359]) +5 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb8/igt@kms_cursor_crc@pipe-d-cursor-512x512-offscreen.html

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

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
    - shard-tglb:         NOTRUN -> [SKIP][85] ([fdo#111825]) +36 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
    - shard-iclb:         NOTRUN -> [SKIP][86] ([fdo#109274] / [fdo#109278]) +1 similar issue
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb7/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html

  * igt@kms_cursor_legacy@pipe-d-single-bo:
    - shard-kbl:          NOTRUN -> [SKIP][87] ([fdo#109271] / [i915#533]) +2 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl6/igt@kms_cursor_legacy@pipe-d-single-bo.html

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

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs:
    - shard-iclb:         [PASS][89] -> [SKIP][90] ([i915#3701])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-iclb6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
    - shard-iclb:         NOTRUN -> [SKIP][91] ([fdo#109280]) +16 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_invalid_mode@clock-too-high:
    - shard-tglb:         NOTRUN -> [SKIP][92] ([i915#4278])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb8/igt@kms_invalid_mode@clock-too-high.html
    - shard-iclb:         NOTRUN -> [SKIP][93] ([i915#4278])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb7/igt@kms_invalid_mode@clock-too-high.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
    - shard-apl:          NOTRUN -> [SKIP][94] ([fdo#109271] / [i915#533])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl3/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html
    - shard-glk:          NOTRUN -> [SKIP][95] ([fdo#109271] / [i915#533]) +2 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk9/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
    - shard-tglb:         [PASS][96] -> [INCOMPLETE][97] ([i915#2828] / [i915#456])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-tglb5/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
    - shard-glk:          NOTRUN -> [FAIL][98] ([fdo#108145] / [i915#265])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk6/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max.html
    - shard-kbl:          NOTRUN -> [FAIL][99] ([fdo#108145] / [i915#265])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl6/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max.html
    - shard-apl:          NOTRUN -> [FAIL][100] ([fdo#108145] / [i915#265])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl2/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max.html

  * igt@kms_plane_lowres@pipe-b-tiling-y:
    - shard-tglb:         NOTRUN -> [SKIP][101] ([i915#3536])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb6/igt@kms_plane_lowres@pipe-b-tiling-y.html
    - shard-iclb:         NOTRUN -> [SKIP][102] ([i915#3536])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb1/igt@kms_plane_lowres@pipe-b-tiling-y.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3:
    - shard-kbl:          NOTRUN -> [SKIP][103] ([fdo#109271] / [i915#658]) +3 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl3/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4:
    - shard-glk:          NOTRUN -> [SKIP][104] ([fdo#109271] / [i915#658]) +2 similar issues
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk8/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4:
    - shard-tglb:         NOTRUN -> [SKIP][105] ([i915#2920])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb6/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area-3:
    - shard-apl:          NOTRUN -> [SKIP][106] ([fdo#109271] / [i915#658])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl7/igt@kms_psr2_sf@plane-move-sf-dmg-area-3.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [PASS][107] -> [SKIP][108] ([fdo#109642] / [fdo#111068] / [i915#658])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb8/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         [PASS][109] -> [SKIP][110] ([fdo#109441])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb6/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_psr@psr2_cursor_mmap_gtt:
    - shard-tglb:         NOTRUN -> [FAIL][111] ([i915#132] / [i915#3467]) +1 similar issue
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb2/igt@kms_psr@psr2_cursor_mmap_gtt.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         NOTRUN -> [SKIP][112] ([fdo#109441]) +1 similar issue
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb1/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_vblank@pipe-d-ts-continuation-idle:
    - shard-apl:          NOTRUN -> [SKIP][113] ([fdo#109271]) +117 similar issues
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl7/igt@kms_vblank@pipe-d-ts-continuation-idle.html

  * igt@kms_vrr@flip-basic:
    - shard-tglb:         NOTRUN -> [SKIP][114] ([fdo#109502])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb2/igt@kms_vrr@flip-basic.html
    - shard-iclb:         NOTRUN -> [SKIP][115] ([fdo#109502])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb5/igt@kms_vrr@flip-basic.html

  * igt@nouveau_crc@pipe-c-source-outp-inactive:
    - shard-tglb:         NOTRUN -> [SKIP][116] ([i915#2530]) +1 similar issue
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb3/igt@nouveau_crc@pipe-c-source-outp-inactive.html

  * igt@nouveau_crc@pipe-d-ctx-flip-skip-current-frame:
    - shard-iclb:         NOTRUN -> [SKIP][117] ([fdo#109278] / [i915#2530])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb1/igt@nouveau_crc@pipe-d-ctx-flip-skip-current-frame.html

  * igt@perf@unprivileged-single-ctx-counters:
    - shard-iclb:         NOTRUN -> [SKIP][118] ([fdo#109289]) +1 similar issue
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb4/igt@perf@unprivileged-single-ctx-counters.html

  * igt@prime_nv_api@nv_i915_import_twice_check_flink_name:
    - shard-iclb:         NOTRUN -> [SKIP][119] ([fdo#109291]) +1 similar issue
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb1/igt@prime_nv_api@nv_i915_import_twice_check_flink_name.html

  * igt@prime_nv_pcopy@test3_1:
    - shard-tglb:         NOTRUN -> [SKIP][120] ([fdo#109291]) +4 similar issues
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb6/igt@prime_nv_pcopy@test3_1.html

  * igt@prime_vgem@basic-userptr:
    - shard-tglb:         NOTRUN -> [SKIP][121] ([i915#3301])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb5/igt@prime_vgem@basic-userptr.html

  * igt@sysfs_clients@sema-10:
    - shard-tglb:         NOTRUN -> [SKIP][122] ([i915#2994]) +1 similar issue
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb2/igt@sysfs_clients@sema-10.html
    - shard-apl:          NOTRUN -> [SKIP][123] ([fdo#109271] / [i915#2994])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl7/igt@sysfs_clients@sema-10.html
    - shard-glk:          NOTRUN -> [SKIP][124] ([fdo#109271] / [i915#2994]) +1 similar issue
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk7/igt@sysfs_clients@sema-10.html
    - shard-iclb:         NOTRUN -> [SKIP][125] ([i915#2994])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb8/igt@sysfs_clients@sema-10.html

  * igt@sysfs_clients@split-50:
    - shard-kbl:          NOTRUN -> [SKIP][126] ([fdo#109271] / [i915#2994]) +2 similar issues
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-kbl3/igt@sysfs_clients@split-50.html

  
#### Possible fixes ####

  * igt@feature_discovery@psr2:
    - shard-iclb:         [SKIP][127] ([i915#658]) -> [PASS][128]
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-iclb4/igt@feature_discovery@psr2.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb2/igt@feature_discovery@psr2.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-apl:          [FAIL][129] ([i915#2842]) -> [PASS][130]
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-apl2/igt@gem_exec_fair@basic-none@vcs0.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-apl6/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [FAIL][131] ([i915#2842]) -> [PASS][132]
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-tglb7/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [FAIL][133] ([i915#2842]) -> [PASS][134] +2 similar issues
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-glk9/igt@gem_exec_fair@basic-throttle@rcs0.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-glk7/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-iclb:         [FAIL][135] ([fdo#103375]) -> [PASS][136]
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-iclb2/igt@i915_suspend@fence-restore-untiled.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-iclb3/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_cursor_crc@pipe-d-cursor-suspend:
    - shard-tglb:         [INCOMPLETE][137] ([i915#2411] / [i915#4211]) -> [PASS][138]
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10783/shard-tglb7/igt@kms_cursor_crc@pipe-d-cursor-suspend.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6351/shard-tglb6/igt@kms_cursor_crc@pipe-d-cursor-suspend.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          [INCOMPLETE][139] ([i915#180] / [i915#636])

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload
  2021-10-25  9:23 ` [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload Anshuman Gupta
@ 2022-02-12  4:20   ` Dixit, Ashutosh
  2022-02-14 10:23     ` Gupta, Anshuman
  2022-02-16 11:41     ` Gupta, Anshuman
  0 siblings, 2 replies; 9+ messages in thread
From: Dixit, Ashutosh @ 2022-02-12  4:20 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev, badal.nilawar, chris.p.wilson

On Mon, 25 Oct 2021 02:23:04 -0700, Anshuman Gupta wrote:
>
> Add silent __igt_i915_driver_unload(), which will not
> print any warning in case of passed argument is NULL.

I think we need to add a "why" to this commit message and that is "so that
we can test scenarios when module unload is expected to fail".

>
> Cc: Chris Wilson <chris.p.wilson@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
>  lib/igt_kmod.c | 86 ++++++++++++++++++++++++++++++--------------------
>  lib/igt_kmod.h |  1 +
>  2 files changed, 52 insertions(+), 35 deletions(-)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 10e983844..ce9bfc07a 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -369,56 +369,72 @@ igt_i915_driver_load(const char *opts)
>	return IGT_EXIT_SUCCESS;
>  }
>
> -/**
> - * igt_i915_driver_unload:
> - *
> - * Unloads the i915 driver and its dependencies.
> - *
> - */
> -int
> -igt_i915_driver_unload(void)
> +int __igt_i915_driver_unload(const char **whom)

I prefer s/whom/who/ as in "Who failed to unload?".

>  {
> +	const char *sound[] = {
> +		"snd_hda_intel",
> +		"snd_hdmi_lpe_audio",
> +		NULL,
> +	};
> +
> +	const char *aux[] = {
> +		/* gen5: ips uses symbol_get() so only a soft module dependency */
> +		"intel_ips",
> +		NULL,
> +	};
> +
>	/* unbind vt */
>	bind_fbcon(false);
>
> -	if (igt_kmod_is_loaded("snd_hda_intel")) {
> -		igt_terminate_process(SIGTERM, "alsactl");
> -
> -		/* unbind snd_hda_intel */
> -		kick_snd_hda_intel();
> -
> -		if (igt_kmod_unload("snd_hda_intel", 0)) {
> -			igt_warn("Could not unload snd_hda_intel\n");
> -			igt_kmod_list_loaded();
> -			igt_lsof("/dev/snd");
> -			return IGT_EXIT_FAILURE;
> +	for (const char **m = sound; *m; m++) {
> +		if (igt_kmod_is_loaded(*m)) {
> +			igt_terminate_process(SIGTERM, "alsactl");
> +			kick_snd_hda_intel();
> +			if (igt_kmod_unload(*m, 0)) {
> +				if (whom)
> +					*whom = *m;

This seems like a bug. The sound and aux arrays above should be static
otherwise these strings go out of scope after the function exits.

> +				return IGT_EXIT_FAILURE;
> +			}
>		}
>	}
>
> -	if (igt_kmod_is_loaded("snd_hdmi_lpe_audio")) {
> -		igt_terminate_process(SIGTERM, "alsactl");
> -
> -		if (igt_kmod_unload("snd_hdmi_lpe_audio", 0)) {
> -			igt_warn("Could not unload snd_hdmi_lpe_audio\n");
> -			igt_kmod_list_loaded();
> -			igt_lsof("/dev/snd");
> -			return IGT_EXIT_FAILURE;
> -		}
> +	for (const char **m = aux; *m; m++) {
> +		if (igt_kmod_is_loaded(*m))
> +			igt_kmod_unload(*m, 0);

This issue exists in previous code too but why not return an error here
(and also populate 'whom' or 'who')?

>	}
>
> -	/* gen5: ips uses symbol_get() so only a soft module dependency */
> -	if (igt_kmod_is_loaded("intel_ips"))
> -		igt_kmod_unload("intel_ips", 0);
> -
>	if (igt_kmod_is_loaded("i915")) {
>		if (igt_kmod_unload("i915", 0)) {
> -			igt_warn("Could not unload i915\n");
> -			igt_kmod_list_loaded();
> -			igt_lsof("/dev/dri");
> +			if (whom)
> +				*whom = "i915";
>			return IGT_EXIT_SKIP;
>		}
>	}
>
> +	return IGT_EXIT_SUCCESS;

The issue exists in previous code but to me it seems highly unusual that we
are using process exit codes as return values from these functions
(both load and unload).

Note that after we have introduced and populated 'whom' or 'who', we just
return the value retured from igt_kmod_unload() from here (and similarly in
igt_i915_driver_load()) and let the caller figure out who failed to unload
from 'whom' or 'who'. That is we don't need separate return values for
other drivers vs. i915. Thoughts?


> +}
> +
> +/**
> + * igt_i915_driver_unload:
> + *
> + * Unloads the i915 driver and its dependencies.
> + *
> + */
> +int
> +igt_i915_driver_unload(void)
> +{
> +	const char *whom;
> +	int ret;
> +
> +	ret = __igt_i915_driver_unload(&whom);
> +	if (ret) {
> +		igt_warn("Could not unload %s\n", whom);
> +		igt_kmod_list_loaded();
> +		igt_lsof("/dev/dri");
> +		igt_lsof("/dev/snd");
> +		return ret;
> +	}
> +
>	if (igt_kmod_is_loaded("intel-gtt"))
>		igt_kmod_unload("intel-gtt", 0);
>
> diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h
> index 04c87516f..0898122b3 100644
> --- a/lib/igt_kmod.h
> +++ b/lib/igt_kmod.h
> @@ -38,6 +38,7 @@ int igt_kmod_unload(const char *mod_name, unsigned int flags);
>
>  int igt_i915_driver_load(const char *opts);
>  int igt_i915_driver_unload(void);
> +int __igt_i915_driver_unload(const char **whom);
>
>  int igt_amdgpu_driver_load(const char *opts);
>  int igt_amdgpu_driver_unload(void);
> --
> 2.26.2
>

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload
  2022-02-12  4:20   ` Dixit, Ashutosh
@ 2022-02-14 10:23     ` Gupta, Anshuman
  2022-02-14 18:08       ` Dixit, Ashutosh
  2022-02-16 11:41     ` Gupta, Anshuman
  1 sibling, 1 reply; 9+ messages in thread
From: Gupta, Anshuman @ 2022-02-14 10:23 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev, Nilawar, Badal, Wilson, Chris P



> -----Original Message-----
> From: Dixit, Ashutosh <ashutosh.dixit@intel.com>
> Sent: Saturday, February 12, 2022 9:51 AM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>
> Cc: igt-dev@lists.freedesktop.org; Wilson, Chris P <chris.p.wilson@intel.com>;
> Nilawar, Badal <badal.nilawar@intel.com>; janusz.krzysztofik@linux.intel.com
> Subject: Re: [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload
> 
> On Mon, 25 Oct 2021 02:23:04 -0700, Anshuman Gupta wrote:
> >
> > Add silent __igt_i915_driver_unload(), which will not print any
> > warning in case of passed argument is NULL.
> 
> I think we need to add a "why" to this commit message and that is "so that we
> can test scenarios when module unload is expected to fail".
Thanks Ashutosh for review,  I will add reason for doing this.
> 
> >
> > Cc: Chris Wilson <chris.p.wilson@intel.com>
> > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> > ---
> >  lib/igt_kmod.c | 86
> > ++++++++++++++++++++++++++++++--------------------
> >  lib/igt_kmod.h |  1 +
> >  2 files changed, 52 insertions(+), 35 deletions(-)
> >
> > diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c index
> > 10e983844..ce9bfc07a 100644
> > --- a/lib/igt_kmod.c
> > +++ b/lib/igt_kmod.c
> > @@ -369,56 +369,72 @@ igt_i915_driver_load(const char *opts)
> >	return IGT_EXIT_SUCCESS;
> >  }
> >
> > -/**
> > - * igt_i915_driver_unload:
> > - *
> > - * Unloads the i915 driver and its dependencies.
> > - *
> > - */
> > -int
> > -igt_i915_driver_unload(void)
> > +int __igt_i915_driver_unload(const char **whom)
> 
> I prefer s/whom/who/ as in "Who failed to unload?".
I will fix this.
> 
> >  {
> > +	const char *sound[] = {
> > +		"snd_hda_intel",
> > +		"snd_hdmi_lpe_audio",
> > +		NULL,
> > +	};
> > +
> > +	const char *aux[] = {
> > +		/* gen5: ips uses symbol_get() so only a soft module
> dependency */
> > +		"intel_ips",
> > +		NULL,
> > +	};
> > +
> >	/* unbind vt */
> >	bind_fbcon(false);
> >
> > -	if (igt_kmod_is_loaded("snd_hda_intel")) {
> > -		igt_terminate_process(SIGTERM, "alsactl");
> > -
> > -		/* unbind snd_hda_intel */
> > -		kick_snd_hda_intel();
> > -
> > -		if (igt_kmod_unload("snd_hda_intel", 0)) {
> > -			igt_warn("Could not unload snd_hda_intel\n");
> > -			igt_kmod_list_loaded();
> > -			igt_lsof("/dev/snd");
> > -			return IGT_EXIT_FAILURE;
> > +	for (const char **m = sound; *m; m++) {
> > +		if (igt_kmod_is_loaded(*m)) {
> > +			igt_terminate_process(SIGTERM, "alsactl");
> > +			kick_snd_hda_intel();
> > +			if (igt_kmod_unload(*m, 0)) {
> > +				if (whom)
> > +					*whom = *m;
> 
> This seems like a bug. The sound and aux arrays above should be static
> otherwise these strings go out of scope after the function exits.
AFAIU all string literals (both local and global) are part of .rodata elf section, which is ultimately 
a file backed read-execute-private mapping (r-xp)  in process map (/proc/pid/maps).
This should not go out of scope. Please correct me if I am being wrong here.
> 
> > +				return IGT_EXIT_FAILURE;
> > +			}
> >		}
> >	}
> >
> > -	if (igt_kmod_is_loaded("snd_hdmi_lpe_audio")) {
> > -		igt_terminate_process(SIGTERM, "alsactl");
> > -
> > -		if (igt_kmod_unload("snd_hdmi_lpe_audio", 0)) {
> > -			igt_warn("Could not unload snd_hdmi_lpe_audio\n");
> > -			igt_kmod_list_loaded();
> > -			igt_lsof("/dev/snd");
> > -			return IGT_EXIT_FAILURE;
> > -		}
> > +	for (const char **m = aux; *m; m++) {
> > +		if (igt_kmod_is_loaded(*m))
> > +			igt_kmod_unload(*m, 0);
> 
> This issue exists in previous code too but why not return an error here (and also
> populate 'whom' or 'who')?
I will return the correct value and set the 'who' here.
> 
> >	}
> >
> > -	/* gen5: ips uses symbol_get() so only a soft module dependency */
> > -	if (igt_kmod_is_loaded("intel_ips"))
> > -		igt_kmod_unload("intel_ips", 0);
> > -
> >	if (igt_kmod_is_loaded("i915")) {
> >		if (igt_kmod_unload("i915", 0)) {
> > -			igt_warn("Could not unload i915\n");
> > -			igt_kmod_list_loaded();
> > -			igt_lsof("/dev/dri");
> > +			if (whom)
> > +				*whom = "i915";
> >			return IGT_EXIT_SKIP;
> >		}
> >	}
> >
> > +	return IGT_EXIT_SUCCESS;
> 
> The issue exists in previous code but to me it seems highly unusual that we are
> using process exit codes as return values from these functions (both load and
> unload).
Not sure about this issue, this series is aimed to fix perf_pmu@module-unload
Igt test by using correct library function. May by fixing this process exit code 
Return values can be sent as separate patch.
> 
> Note that after we have introduced and populated 'whom' or 'who', we just
> return the value retured from igt_kmod_unload() from here (and similarly in
> igt_i915_driver_load()) and let the caller figure out who failed to unload from
> 'whom' or 'who'. That is we don't need separate return values for other drivers
> vs. i915. Thoughts?
Yeah, we can use same return type either IGT_EXIT_FAILURE/ IGT_EXIT_SKIP or  in case of module unload failure. 
I will add a separate patch in this series to address this.

Thanks,
Anshuman Gupta.

> 
> 
> > +}
> > +
> > +/**
> > + * igt_i915_driver_unload:
> > + *
> > + * Unloads the i915 driver and its dependencies.
> > + *
> > + */
> > +int
> > +igt_i915_driver_unload(void)
> > +{
> > +	const char *whom;
> > +	int ret;
> > +
> > +	ret = __igt_i915_driver_unload(&whom);
> > +	if (ret) {
> > +		igt_warn("Could not unload %s\n", whom);
> > +		igt_kmod_list_loaded();
> > +		igt_lsof("/dev/dri");
> > +		igt_lsof("/dev/snd");
> > +		return ret;
> > +	}
> > +
> >	if (igt_kmod_is_loaded("intel-gtt"))
> >		igt_kmod_unload("intel-gtt", 0);
> >
> > diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h index
> > 04c87516f..0898122b3 100644
> > --- a/lib/igt_kmod.h
> > +++ b/lib/igt_kmod.h
> > @@ -38,6 +38,7 @@ int igt_kmod_unload(const char *mod_name, unsigned
> > int flags);
> >
> >  int igt_i915_driver_load(const char *opts);  int
> > igt_i915_driver_unload(void);
> > +int __igt_i915_driver_unload(const char **whom);
> >
> >  int igt_amdgpu_driver_load(const char *opts);  int
> > igt_amdgpu_driver_unload(void);
> > --
> > 2.26.2
> >

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload
  2022-02-14 10:23     ` Gupta, Anshuman
@ 2022-02-14 18:08       ` Dixit, Ashutosh
  0 siblings, 0 replies; 9+ messages in thread
From: Dixit, Ashutosh @ 2022-02-14 18:08 UTC (permalink / raw)
  To: Gupta, Anshuman; +Cc: igt-dev, Nilawar, Badal

On Mon, 14 Feb 2022 02:23:11 -0800, Gupta, Anshuman wrote:
>
> > This seems like a bug. The sound and aux arrays above should be static
> > otherwise these strings go out of scope after the function exits.
?
> AFAIU all string literals (both local and global) are part of .rodata elf
> section, which is ultimately a file backed read-execute-private mapping
> (r-xp) in process map (/proc/pid/maps).  This should not go out of
> scope. Please correct me if I am being wrong here.

Yup, if the file is mmap'd you are right.

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload
  2022-02-12  4:20   ` Dixit, Ashutosh
  2022-02-14 10:23     ` Gupta, Anshuman
@ 2022-02-16 11:41     ` Gupta, Anshuman
  1 sibling, 0 replies; 9+ messages in thread
From: Gupta, Anshuman @ 2022-02-16 11:41 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev, Nilawar, Badal, Wilson, Chris P



> -----Original Message-----
> From: Dixit, Ashutosh <ashutosh.dixit@intel.com>
> Sent: Saturday, February 12, 2022 9:51 AM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>
> Cc: igt-dev@lists.freedesktop.org; Wilson, Chris P <chris.p.wilson@intel.com>;
> Nilawar, Badal <badal.nilawar@intel.com>; janusz.krzysztofik@linux.intel.com
> Subject: Re: [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload
> 
> On Mon, 25 Oct 2021 02:23:04 -0700, Anshuman Gupta wrote:
> >
> > Add silent __igt_i915_driver_unload(), which will not print any
> > warning in case of passed argument is NULL.
> 
> I think we need to add a "why" to this commit message and that is "so that we
> can test scenarios when module unload is expected to fail".
> 
> >
> > Cc: Chris Wilson <chris.p.wilson@intel.com>
> > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> > ---
> >  lib/igt_kmod.c | 86
> > ++++++++++++++++++++++++++++++--------------------
> >  lib/igt_kmod.h |  1 +
> >  2 files changed, 52 insertions(+), 35 deletions(-)
> >
> > diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c index
> > 10e983844..ce9bfc07a 100644
> > --- a/lib/igt_kmod.c
> > +++ b/lib/igt_kmod.c
> > @@ -369,56 +369,72 @@ igt_i915_driver_load(const char *opts)
> >	return IGT_EXIT_SUCCESS;
> >  }
> >
> > -/**
> > - * igt_i915_driver_unload:
> > - *
> > - * Unloads the i915 driver and its dependencies.
> > - *
> > - */
> > -int
> > -igt_i915_driver_unload(void)
> > +int __igt_i915_driver_unload(const char **whom)
> 
> I prefer s/whom/who/ as in "Who failed to unload?".
> 
> >  {
> > +	const char *sound[] = {
> > +		"snd_hda_intel",
> > +		"snd_hdmi_lpe_audio",
> > +		NULL,
> > +	};
> > +
> > +	const char *aux[] = {
> > +		/* gen5: ips uses symbol_get() so only a soft module
> dependency */
> > +		"intel_ips",
> > +		NULL,
> > +	};
> > +
> >	/* unbind vt */
> >	bind_fbcon(false);
> >
> > -	if (igt_kmod_is_loaded("snd_hda_intel")) {
> > -		igt_terminate_process(SIGTERM, "alsactl");
> > -
> > -		/* unbind snd_hda_intel */
> > -		kick_snd_hda_intel();
> > -
> > -		if (igt_kmod_unload("snd_hda_intel", 0)) {
> > -			igt_warn("Could not unload snd_hda_intel\n");
> > -			igt_kmod_list_loaded();
> > -			igt_lsof("/dev/snd");
> > -			return IGT_EXIT_FAILURE;
> > +	for (const char **m = sound; *m; m++) {
> > +		if (igt_kmod_is_loaded(*m)) {
> > +			igt_terminate_process(SIGTERM, "alsactl");
> > +			kick_snd_hda_intel();
> > +			if (igt_kmod_unload(*m, 0)) {
> > +				if (whom)
> > +					*whom = *m;
> 
> This seems like a bug. The sound and aux arrays above should be static
> otherwise these strings go out of scope after the function exits.
> 
> > +				return IGT_EXIT_FAILURE;
> > +			}
> >		}
> >	}
> >
> > -	if (igt_kmod_is_loaded("snd_hdmi_lpe_audio")) {
> > -		igt_terminate_process(SIGTERM, "alsactl");
> > -
> > -		if (igt_kmod_unload("snd_hdmi_lpe_audio", 0)) {
> > -			igt_warn("Could not unload snd_hdmi_lpe_audio\n");
> > -			igt_kmod_list_loaded();
> > -			igt_lsof("/dev/snd");
> > -			return IGT_EXIT_FAILURE;
> > -		}
> > +	for (const char **m = aux; *m; m++) {
> > +		if (igt_kmod_is_loaded(*m))
> > +			igt_kmod_unload(*m, 0);
> 
> This issue exists in previous code too but why not return an error here (and also
> populate 'whom' or 'who')?
> 
> >	}
> >
> > -	/* gen5: ips uses symbol_get() so only a soft module dependency */
> > -	if (igt_kmod_is_loaded("intel_ips"))
> > -		igt_kmod_unload("intel_ips", 0);
> > -
> >	if (igt_kmod_is_loaded("i915")) {
> >		if (igt_kmod_unload("i915", 0)) {
> > -			igt_warn("Could not unload i915\n");
> > -			igt_kmod_list_loaded();
> > -			igt_lsof("/dev/dri");
> > +			if (whom)
> > +				*whom = "i915";
> >			return IGT_EXIT_SKIP;
> >		}
> >	}
> >
> > +	return IGT_EXIT_SUCCESS;
> 
> The issue exists in previous code but to me it seems highly unusual that we are
> using process exit codes as return values from these functions (both load and
> unload).
> 
> Note that after we have introduced and populated 'whom' or 'who', we just
> return the value retured from igt_kmod_unload() from here (and similarly in
> igt_i915_driver_load()) and let the caller figure out who failed to unload from
> 'whom' or 'who'. That is we don't need separate return values for other drivers
> vs. i915. Thoughts?
Actually I missed this earlier while sending v2, perf_pmu test expect i915 module to be busy in
certain cases and returning IGT_EXIT_FAILIURE will fail the perf_pmu test.
https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6626/shard-tglb8/igt@perf_pmu@module-unload.html
So in case of *who is NULL , __igt_i915_driver_unload() should return IGT_EXIT_SKIP,
whenever igt module fails to unload.
Thanks,
Anshuman Gupta.
> 
> 
> > +}
> > +
> > +/**
> > + * igt_i915_driver_unload:
> > + *
> > + * Unloads the i915 driver and its dependencies.
> > + *
> > + */
> > +int
> > +igt_i915_driver_unload(void)
> > +{
> > +	const char *whom;
> > +	int ret;
> > +
> > +	ret = __igt_i915_driver_unload(&whom);
> > +	if (ret) {
> > +		igt_warn("Could not unload %s\n", whom);
> > +		igt_kmod_list_loaded();
> > +		igt_lsof("/dev/dri");
> > +		igt_lsof("/dev/snd");
> > +		return ret;
> > +	}
> > +
> >	if (igt_kmod_is_loaded("intel-gtt"))
> >		igt_kmod_unload("intel-gtt", 0);
> >
> > diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h index
> > 04c87516f..0898122b3 100644
> > --- a/lib/igt_kmod.h
> > +++ b/lib/igt_kmod.h
> > @@ -38,6 +38,7 @@ int igt_kmod_unload(const char *mod_name, unsigned
> > int flags);
> >
> >  int igt_i915_driver_load(const char *opts);  int
> > igt_i915_driver_unload(void);
> > +int __igt_i915_driver_unload(const char **whom);
> >
> >  int igt_amdgpu_driver_load(const char *opts);  int
> > igt_amdgpu_driver_unload(void);
> > --
> > 2.26.2
> >

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

end of thread, other threads:[~2022-02-16 11:41 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-25  9:23 [igt-dev] [PATCH i-g-t 0/2] Nuke unload_i915 Anshuman Gupta
2021-10-25  9:23 ` [igt-dev] [PATCH i-g-t 1/2] lib: Add silent __igt_i915_driver_unload Anshuman Gupta
2022-02-12  4:20   ` Dixit, Ashutosh
2022-02-14 10:23     ` Gupta, Anshuman
2022-02-14 18:08       ` Dixit, Ashutosh
2022-02-16 11:41     ` Gupta, Anshuman
2021-10-25  9:23 ` [igt-dev] [PATCH i-g-t 2/2] perf/perf_pmu: Nuke unload_i915 Anshuman Gupta
2021-10-25 10:19 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2021-10-25 12:54 ` [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.