All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
@ 2024-01-25 16:52 ` Janusz Krzysztofik
  0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-25 16:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Kamil Konieczny, Janusz Krzysztofik, Lucas De Marchi, intel-xe

Instead of wasting resources on reloading the base Kunit module each time
a different set of filter parameters is needed, try to write the required
values to sysfs representation of those parameters.  If that fails (e.g.
on older LTS kernels with read-only filter parameters), fall back to
reloading the module.

This change also provides a workaround for the issue of impossibility to
unload the base Kunit module on Xe platforms, available as soon as the
module supports writable filter parameters.

While being at it, fine tune processing of skips on errors during test
case list collection phase.

Janusz Krzysztofik (3):
  lib/kunit: Support writable filter* parameters of kunit module
  lib/kunit: Report early kernel taints explicitly
  lib/kunit: Process module remove error after list errors

 lib/igt_kmod.c | 152 +++++++++++++++++++++++++++++++++++--------------
 1 file changed, 110 insertions(+), 42 deletions(-)

-- 
2.43.0


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

* [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
@ 2024-01-25 16:52 ` Janusz Krzysztofik
  0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-25 16:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, intel-xe

Instead of wasting resources on reloading the base Kunit module each time
a different set of filter parameters is needed, try to write the required
values to sysfs representation of those parameters.  If that fails (e.g.
on older LTS kernels with read-only filter parameters), fall back to
reloading the module.

This change also provides a workaround for the issue of impossibility to
unload the base Kunit module on Xe platforms, available as soon as the
module supports writable filter parameters.

While being at it, fine tune processing of skips on errors during test
case list collection phase.

Janusz Krzysztofik (3):
  lib/kunit: Support writable filter* parameters of kunit module
  lib/kunit: Report early kernel taints explicitly
  lib/kunit: Process module remove error after list errors

 lib/igt_kmod.c | 152 +++++++++++++++++++++++++++++++++++--------------
 1 file changed, 110 insertions(+), 42 deletions(-)

-- 
2.43.0


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

* [PATCH i-g-t 1/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 16:52 ` Janusz Krzysztofik
@ 2024-01-25 16:52   ` Janusz Krzysztofik
  -1 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-25 16:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Kamil Konieczny, Janusz Krzysztofik, Lucas De Marchi, intel-xe

Instead of wasting resources on reloading the base Kunit module each time
a different set of filter parameters is needed, try to write the required
values to sysfs representation of those parameters.  If that fails (e.g.
on older LTS kernels with read-only filter parameters), fall back to
reloading the module.

This change also provides a workaround for the issue of impossibility to
unload the base Kunit module on Xe platforms, available as soon as the
module supports writable filter parameters.

Since the base Kunit module is now unloaded from kunit_set_params() when
needed, drop other attempts to unload it.

To reuse an existing open_parameters() helper, moved it up in the source
file to avoid a forward declaration.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
---
 lib/igt_kmod.c | 147 +++++++++++++++++++++++++++++++++++--------------
 1 file changed, 107 insertions(+), 40 deletions(-)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 250ab2107b..4f96dafe01 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -803,6 +803,78 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
 	kmod_module_info_free_list(pre);
 }
 
+static int open_parameters(const char *module_name)
+{
+	char path[256];
+
+	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
+	return open(path, O_RDONLY);
+}
+
+static bool kunit_set_params(const char **name, const char **value, int count)
+{
+	static bool writable = true;
+	int i, ret, params;
+	char *opts = NULL;
+
+	if (!writable) {
+		if (count)
+			if (igt_debug_on(asprintf(&opts, "%s=%s",
+						  name[0], value[0]) < 0)) {
+				free(opts);
+				return false;
+			}
+
+		for (i = 1; i < count; i++) {
+			char *head = opts;
+
+			opts = NULL;
+			ret = asprintf(&opts, "%s %s=%s", head, name[i], value[i]);
+			free(head);
+			if (igt_debug_on(ret < 0)) {
+				free(opts);
+				return false;
+			}
+		}
+
+		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
+	}
+
+	ret = igt_debug_on(igt_kmod_load("kunit", opts));
+	free(opts);
+
+	if (ret && !writable)
+		return false;
+
+	params = open_parameters("kunit");
+	ret = igt_debug_on(params < 0);
+
+	for (i = 0; !ret && i < count; i++) {
+		char *param = igt_sysfs_get(params, name[i]);
+
+		if (igt_debug_on_f(!param, "param: %s\n", name[i])) {
+			ret = -1;
+			continue;
+		}
+
+		ret = strcmp(param, value[i]);
+		free(param);
+		if (ret)
+			ret = !igt_sysfs_set(params, name[i], value[i]);
+	}
+
+	if (params >= 0)
+		close(params);
+
+	if (!ret)
+		return true;
+	if (!writable)
+		return false;
+
+	writable = false;
+	return kunit_set_params(name, value, count);
+}
+
 struct modprobe_data {
 	struct kmod_module *kmod;
 	const char *opts;
@@ -814,11 +886,17 @@ struct modprobe_data {
 
 static void *modprobe_task(void *arg)
 {
+	const char *param[3] = { "filter_glob", "filter", "filter_action", };
+	const char *value[3] = { "*", "", "", };
 	struct modprobe_data *data = arg;
+	bool ret;
+
+	ret = kunit_set_params(param, value, ARRAY_SIZE(param));
 
-	data->err = modprobe(data->kmod, data->opts);
+	if (ret)
+		data->err = modprobe(data->kmod, data->opts);
 
-	if (igt_debug_on(data->err)) {
+	if (igt_debug_on(!ret || data->err)) {
 		bool once = false;
 		int err;
 
@@ -1092,9 +1170,20 @@ static void kunit_get_tests(struct igt_list_head *tests,
 			    const char *filter,
 			    const char *opts)
 {
+	/*
+	 * To get a list of test cases provided by a kunit test module, ask the
+	 * generic kunit module to respond with SKIP result for each test found.
+	 * We could also try to use action=list kunit parameter to get the
+	 * listing, however, parsing a KTAP report -- something that we already
+	 * can do perfectly -- seems to be more safe than extracting a test case
+	 * list of unknown length from /dev/kmsg.
+	 */
+	const char *param[3] = { "filter_glob", "filter", "filter_action", };
+	const char *value[3] = { "*", "module=none", "skip", };
 	char *suite_name = NULL, *case_name = NULL;
 	struct igt_ktap_result *r, *rn;
 	struct igt_ktap_results *ktap;
+	unsigned long taints;
 	int flags, err;
 
 	igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
@@ -1105,26 +1194,23 @@ static void kunit_get_tests(struct igt_list_head *tests,
 
 	igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
 
-	/*
-	 * To get a list of test cases provided by a kunit test module, ask the
-	 * generic kunit module to respond with SKIP result for each test found.
-	 * We could also use action=list kunit parameter to get the listing,
-	 * however, parsing a KTAP report -- something that we already can do
-	 * perfectly -- seems to be more safe than extracting a test case list
-	 * of unknown length from /dev/kmsg.
-	 *
-	 * TODO: drop the following workaround, which is required by LTS kernel
-	 *       v6.1 not capable of listing test cases when built as a module.
-	 * If loading the kunit module with required parameters fails then
-	 * assume that we are running on a kernel with missing test case listing
-	 * capabilities.  Dont's skip but just return with empty list of test
-	 * cases, that should tell the caller to use a legacy method of
-	 * iterating over KTAP results collected from blind execution of all
-	 * Kunit test cases provided by a Kunit test module.
-	 */
-	if (igt_debug_on(igt_kmod_load("kunit",
-				       "filter=module=none filter_action=skip")))
+	if (igt_debug_on(!kunit_set_params(param, value, ARRAY_SIZE(param)))) {
+		/*
+		 * TODO: drop the following workaround, required by LTS kernel
+		 *       v6.1 not capable of listing test cases when built as as
+		 *       module, when no longer needed.
+		 * If updating writable filter parameters of the kunit base
+		 * module with required values or reloading that module with
+		 * those parameters specified fails then assume that we are
+		 * running on a kernel with missing test case listing
+		 * capabilities.  Dont skip but just return with empty list of
+		 * test cases, which should tell the caller to use a legacy
+		 * method of iterating over KTAP results collected from blind
+		 * execution of all Kunit test cases provided by a Kunit test
+		 * module.
+		 */
 		return;
+	}
 
 	igt_skip_on(modprobe(tst->kmod, opts));
 
@@ -1159,7 +1245,6 @@ static void kunit_get_tests(struct igt_list_head *tests,
 	}
 
 	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
-	igt_skip_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
 
 	igt_skip_on_f(err,
 		      "KTAP parser failed while getting a list of test cases\n");
@@ -1355,15 +1440,6 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
 		igt_skip_on(igt_ktest_init(&tst, module_name));
 		igt_skip_on(igt_ktest_begin(&tst));
 
-		/*
-		 * Since we need to load kunit base module with specific
-		 * options in order to get a list of test cases, make
-		 * sure that the module is not loaded.  However, since
-		 * unload may fail if kunit base module is not loaded,
-		 * ignore any failures, we'll fail later if still loaded.
-		 */
-		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
-
 		igt_assert(igt_list_empty(&tests));
 	}
 
@@ -1395,20 +1471,11 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
 		kunit_results_free(&tests, &suite_name, &case_name);
 
 		igt_ktest_end(&tst);
-		igt_debug_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
 	}
 
 	igt_ktest_fini(&tst);
 }
 
-static int open_parameters(const char *module_name)
-{
-	char path[256];
-
-	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
-	return open(path, O_RDONLY);
-}
-
 int igt_ktest_init(struct igt_ktest *tst,
 		   const char *module_name)
 {
-- 
2.43.0


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

* [PATCH i-g-t 1/3] lib/kunit: Support writable filter* parameters of kunit module
@ 2024-01-25 16:52   ` Janusz Krzysztofik
  0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-25 16:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, intel-xe

Instead of wasting resources on reloading the base Kunit module each time
a different set of filter parameters is needed, try to write the required
values to sysfs representation of those parameters.  If that fails (e.g.
on older LTS kernels with read-only filter parameters), fall back to
reloading the module.

This change also provides a workaround for the issue of impossibility to
unload the base Kunit module on Xe platforms, available as soon as the
module supports writable filter parameters.

Since the base Kunit module is now unloaded from kunit_set_params() when
needed, drop other attempts to unload it.

To reuse an existing open_parameters() helper, moved it up in the source
file to avoid a forward declaration.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
---
 lib/igt_kmod.c | 147 +++++++++++++++++++++++++++++++++++--------------
 1 file changed, 107 insertions(+), 40 deletions(-)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 250ab2107b..4f96dafe01 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -803,6 +803,78 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
 	kmod_module_info_free_list(pre);
 }
 
+static int open_parameters(const char *module_name)
+{
+	char path[256];
+
+	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
+	return open(path, O_RDONLY);
+}
+
+static bool kunit_set_params(const char **name, const char **value, int count)
+{
+	static bool writable = true;
+	int i, ret, params;
+	char *opts = NULL;
+
+	if (!writable) {
+		if (count)
+			if (igt_debug_on(asprintf(&opts, "%s=%s",
+						  name[0], value[0]) < 0)) {
+				free(opts);
+				return false;
+			}
+
+		for (i = 1; i < count; i++) {
+			char *head = opts;
+
+			opts = NULL;
+			ret = asprintf(&opts, "%s %s=%s", head, name[i], value[i]);
+			free(head);
+			if (igt_debug_on(ret < 0)) {
+				free(opts);
+				return false;
+			}
+		}
+
+		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
+	}
+
+	ret = igt_debug_on(igt_kmod_load("kunit", opts));
+	free(opts);
+
+	if (ret && !writable)
+		return false;
+
+	params = open_parameters("kunit");
+	ret = igt_debug_on(params < 0);
+
+	for (i = 0; !ret && i < count; i++) {
+		char *param = igt_sysfs_get(params, name[i]);
+
+		if (igt_debug_on_f(!param, "param: %s\n", name[i])) {
+			ret = -1;
+			continue;
+		}
+
+		ret = strcmp(param, value[i]);
+		free(param);
+		if (ret)
+			ret = !igt_sysfs_set(params, name[i], value[i]);
+	}
+
+	if (params >= 0)
+		close(params);
+
+	if (!ret)
+		return true;
+	if (!writable)
+		return false;
+
+	writable = false;
+	return kunit_set_params(name, value, count);
+}
+
 struct modprobe_data {
 	struct kmod_module *kmod;
 	const char *opts;
@@ -814,11 +886,17 @@ struct modprobe_data {
 
 static void *modprobe_task(void *arg)
 {
+	const char *param[3] = { "filter_glob", "filter", "filter_action", };
+	const char *value[3] = { "*", "", "", };
 	struct modprobe_data *data = arg;
+	bool ret;
+
+	ret = kunit_set_params(param, value, ARRAY_SIZE(param));
 
-	data->err = modprobe(data->kmod, data->opts);
+	if (ret)
+		data->err = modprobe(data->kmod, data->opts);
 
-	if (igt_debug_on(data->err)) {
+	if (igt_debug_on(!ret || data->err)) {
 		bool once = false;
 		int err;
 
@@ -1092,9 +1170,20 @@ static void kunit_get_tests(struct igt_list_head *tests,
 			    const char *filter,
 			    const char *opts)
 {
+	/*
+	 * To get a list of test cases provided by a kunit test module, ask the
+	 * generic kunit module to respond with SKIP result for each test found.
+	 * We could also try to use action=list kunit parameter to get the
+	 * listing, however, parsing a KTAP report -- something that we already
+	 * can do perfectly -- seems to be more safe than extracting a test case
+	 * list of unknown length from /dev/kmsg.
+	 */
+	const char *param[3] = { "filter_glob", "filter", "filter_action", };
+	const char *value[3] = { "*", "module=none", "skip", };
 	char *suite_name = NULL, *case_name = NULL;
 	struct igt_ktap_result *r, *rn;
 	struct igt_ktap_results *ktap;
+	unsigned long taints;
 	int flags, err;
 
 	igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
@@ -1105,26 +1194,23 @@ static void kunit_get_tests(struct igt_list_head *tests,
 
 	igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
 
-	/*
-	 * To get a list of test cases provided by a kunit test module, ask the
-	 * generic kunit module to respond with SKIP result for each test found.
-	 * We could also use action=list kunit parameter to get the listing,
-	 * however, parsing a KTAP report -- something that we already can do
-	 * perfectly -- seems to be more safe than extracting a test case list
-	 * of unknown length from /dev/kmsg.
-	 *
-	 * TODO: drop the following workaround, which is required by LTS kernel
-	 *       v6.1 not capable of listing test cases when built as a module.
-	 * If loading the kunit module with required parameters fails then
-	 * assume that we are running on a kernel with missing test case listing
-	 * capabilities.  Dont's skip but just return with empty list of test
-	 * cases, that should tell the caller to use a legacy method of
-	 * iterating over KTAP results collected from blind execution of all
-	 * Kunit test cases provided by a Kunit test module.
-	 */
-	if (igt_debug_on(igt_kmod_load("kunit",
-				       "filter=module=none filter_action=skip")))
+	if (igt_debug_on(!kunit_set_params(param, value, ARRAY_SIZE(param)))) {
+		/*
+		 * TODO: drop the following workaround, required by LTS kernel
+		 *       v6.1 not capable of listing test cases when built as as
+		 *       module, when no longer needed.
+		 * If updating writable filter parameters of the kunit base
+		 * module with required values or reloading that module with
+		 * those parameters specified fails then assume that we are
+		 * running on a kernel with missing test case listing
+		 * capabilities.  Dont skip but just return with empty list of
+		 * test cases, which should tell the caller to use a legacy
+		 * method of iterating over KTAP results collected from blind
+		 * execution of all Kunit test cases provided by a Kunit test
+		 * module.
+		 */
 		return;
+	}
 
 	igt_skip_on(modprobe(tst->kmod, opts));
 
@@ -1159,7 +1245,6 @@ static void kunit_get_tests(struct igt_list_head *tests,
 	}
 
 	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
-	igt_skip_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
 
 	igt_skip_on_f(err,
 		      "KTAP parser failed while getting a list of test cases\n");
@@ -1355,15 +1440,6 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
 		igt_skip_on(igt_ktest_init(&tst, module_name));
 		igt_skip_on(igt_ktest_begin(&tst));
 
-		/*
-		 * Since we need to load kunit base module with specific
-		 * options in order to get a list of test cases, make
-		 * sure that the module is not loaded.  However, since
-		 * unload may fail if kunit base module is not loaded,
-		 * ignore any failures, we'll fail later if still loaded.
-		 */
-		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
-
 		igt_assert(igt_list_empty(&tests));
 	}
 
@@ -1395,20 +1471,11 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
 		kunit_results_free(&tests, &suite_name, &case_name);
 
 		igt_ktest_end(&tst);
-		igt_debug_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
 	}
 
 	igt_ktest_fini(&tst);
 }
 
-static int open_parameters(const char *module_name)
-{
-	char path[256];
-
-	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
-	return open(path, O_RDONLY);
-}
-
 int igt_ktest_init(struct igt_ktest *tst,
 		   const char *module_name)
 {
-- 
2.43.0


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

* [PATCH i-g-t 2/3] lib/kunit: Report early kernel taints explicitly
  2024-01-25 16:52 ` Janusz Krzysztofik
@ 2024-01-25 16:52   ` Janusz Krzysztofik
  -1 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-25 16:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Kamil Konieczny, Janusz Krzysztofik, Lucas De Marchi, intel-xe

When we find the kernel tainted after loading our kunit test module in
list only mode, report that taint immediately as the reason for skip
instead of executing and blaming our ktap parser.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
---
 lib/igt_kmod.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 4f96dafe01..01198e75dc 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -1213,6 +1213,7 @@ static void kunit_get_tests(struct igt_list_head *tests,
 	}
 
 	igt_skip_on(modprobe(tst->kmod, opts));
+	igt_skip_on(igt_kernel_tainted(&taints));
 
 	ktap = igt_ktap_alloc(tests);
 	igt_require(ktap);
-- 
2.43.0


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

* [PATCH i-g-t 2/3] lib/kunit: Report early kernel taints explicitly
@ 2024-01-25 16:52   ` Janusz Krzysztofik
  0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-25 16:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, intel-xe

When we find the kernel tainted after loading our kunit test module in
list only mode, report that taint immediately as the reason for skip
instead of executing and blaming our ktap parser.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
---
 lib/igt_kmod.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 4f96dafe01..01198e75dc 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -1213,6 +1213,7 @@ static void kunit_get_tests(struct igt_list_head *tests,
 	}
 
 	igt_skip_on(modprobe(tst->kmod, opts));
+	igt_skip_on(igt_kernel_tainted(&taints));
 
 	ktap = igt_ktap_alloc(tests);
 	igt_require(ktap);
-- 
2.43.0


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

* [PATCH i-g-t 3/3] lib/kunit: Process module remove error after list errors
  2024-01-25 16:52 ` Janusz Krzysztofik
@ 2024-01-25 16:52   ` Janusz Krzysztofik
  -1 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-25 16:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Kamil Konieczny, Janusz Krzysztofik, Lucas De Marchi, intel-xe

Skip on any error from test case list gathering phase first, then, in
preparation for executing those test cases, from unloading the test module
loaded in list only mode, so it is more clear if listing the test cases
was successful or not.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
---
 lib/igt_kmod.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 01198e75dc..436aad58b3 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -1245,10 +1245,10 @@ static void kunit_get_tests(struct igt_list_head *tests,
 		free(case_name);
 	}
 
-	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
-
 	igt_skip_on_f(err,
 		      "KTAP parser failed while getting a list of test cases\n");
+
+	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
 }
 
 static void __igt_kunit(struct igt_ktest *tst,
-- 
2.43.0


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

* [PATCH i-g-t 3/3] lib/kunit: Process module remove error after list errors
@ 2024-01-25 16:52   ` Janusz Krzysztofik
  0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-25 16:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, intel-xe

Skip on any error from test case list gathering phase first, then, in
preparation for executing those test cases, from unloading the test module
loaded in list only mode, so it is more clear if listing the test cases
was successful or not.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
---
 lib/igt_kmod.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 01198e75dc..436aad58b3 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -1245,10 +1245,10 @@ static void kunit_get_tests(struct igt_list_head *tests,
 		free(case_name);
 	}
 
-	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
-
 	igt_skip_on_f(err,
 		      "KTAP parser failed while getting a list of test cases\n");
+
+	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
 }
 
 static void __igt_kunit(struct igt_ktest *tst,
-- 
2.43.0


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

* Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 16:52 ` Janusz Krzysztofik
@ 2024-01-25 17:25   ` Lucas De Marchi
  -1 siblings, 0 replies; 29+ messages in thread
From: Lucas De Marchi @ 2024-01-25 17:25 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: igt-dev, Kamil Konieczny, intel-xe

On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
>Instead of wasting resources on reloading the base Kunit module each time
>a different set of filter parameters is needed, try to write the required
>values to sysfs representation of those parameters.  If that fails (e.g.
>on older LTS kernels with read-only filter parameters), fall back to

we can't really execute anything on LTS kernel. I don't think think it's
worth keeping the multiple fallbacks we have now.

I think trying to maintain compat is good, but I'm not sure it makes
sense for these tightly coupled tests with the kernel.

Lucas De Marchi

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

* Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
@ 2024-01-25 17:25   ` Lucas De Marchi
  0 siblings, 0 replies; 29+ messages in thread
From: Lucas De Marchi @ 2024-01-25 17:25 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: igt-dev, intel-xe

On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
>Instead of wasting resources on reloading the base Kunit module each time
>a different set of filter parameters is needed, try to write the required
>values to sysfs representation of those parameters.  If that fails (e.g.
>on older LTS kernels with read-only filter parameters), fall back to

we can't really execute anything on LTS kernel. I don't think think it's
worth keeping the multiple fallbacks we have now.

I think trying to maintain compat is good, but I'm not sure it makes
sense for these tightly coupled tests with the kernel.

Lucas De Marchi

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

* ✗ CI.xeBAT: failure for lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 16:52 ` Janusz Krzysztofik
                   ` (4 preceding siblings ...)
  (?)
@ 2024-01-25 17:36 ` Patchwork
  -1 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2024-01-25 17:36 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: igt-dev

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

== Series Details ==

Series: lib/kunit: Support writable filter* parameters of kunit module
URL   : https://patchwork.freedesktop.org/series/129174/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_7692_BAT -> XEIGTPW_10590_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_10590_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_10590_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (4 -> 4)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@xe_live_ktest@bo@xe_bo-xe_bo_evict_kunit:
    - bat-pvc-2:          [PASS][1] -> [SKIP][2] +6 other tests skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-pvc-2/igt@xe_live_ktest@bo@xe_bo-xe_bo_evict_kunit.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-pvc-2/igt@xe_live_ktest@bo@xe_bo-xe_bo_evict_kunit.html

  * igt@xe_live_ktest@bo@xe_bo-xe_ccs_migrate_kunit:
    - bat-dg2-oem2:       [PASS][3] -> [SKIP][4]
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-dg2-oem2/igt@xe_live_ktest@bo@xe_bo-xe_ccs_migrate_kunit.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-dg2-oem2/igt@xe_live_ktest@bo@xe_bo-xe_ccs_migrate_kunit.html
    - bat-atsm-2:         [PASS][5] -> [SKIP][6]
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-atsm-2/igt@xe_live_ktest@bo@xe_bo-xe_ccs_migrate_kunit.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-atsm-2/igt@xe_live_ktest@bo@xe_bo-xe_ccs_migrate_kunit.html
    - bat-adlp-7:         [PASS][7] -> [SKIP][8]
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-adlp-7/igt@xe_live_ktest@bo@xe_bo-xe_ccs_migrate_kunit.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-adlp-7/igt@xe_live_ktest@bo@xe_bo-xe_ccs_migrate_kunit.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@xe_live_ktest@bo:
    - bat-adlp-7:         [PASS][9] -> [SKIP][10] ([Intel XE#455]) +5 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-adlp-7/igt@xe_live_ktest@bo.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-adlp-7/igt@xe_live_ktest@bo.html

  * igt@xe_live_ktest@bo@xe_bo-xe_bo_evict_kunit:
    - bat-dg2-oem2:       [PASS][11] -> [SKIP][12] ([Intel XE#455]) +5 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-dg2-oem2/igt@xe_live_ktest@bo@xe_bo-xe_bo_evict_kunit.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-dg2-oem2/igt@xe_live_ktest@bo@xe_bo-xe_bo_evict_kunit.html
    - bat-atsm-2:         [PASS][13] -> [SKIP][14] ([Intel XE#455]) +5 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-atsm-2/igt@xe_live_ktest@bo@xe_bo-xe_bo_evict_kunit.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-atsm-2/igt@xe_live_ktest@bo@xe_bo-xe_bo_evict_kunit.html

  
#### Warnings ####

  * igt@kms_dsc@dsc-basic:
    - bat-dg2-oem2:       [SKIP][15] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][16] ([Intel XE#455])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
    - bat-adlp-7:         [SKIP][17] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][18] ([Intel XE#455])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7692/bat-adlp-7/igt@kms_dsc@dsc-basic.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/bat-adlp-7/igt@kms_dsc@dsc-basic.html

  
  [Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455


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

  * IGT: IGT_7692 -> IGTPW_10590
  * Linux: xe-684-cad255f28ccca6529104b9497a8d7302ae7eb88a -> xe-685-38a58d4231067e1b548c12ee521b73ffc0ebb73a

  IGTPW_10590: 10590
  IGT_7692: 5d9c29c620701497323bf3721146da57efa50952 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-684-cad255f28ccca6529104b9497a8d7302ae7eb88a: cad255f28ccca6529104b9497a8d7302ae7eb88a
  xe-685-38a58d4231067e1b548c12ee521b73ffc0ebb73a: 38a58d4231067e1b548c12ee521b73ffc0ebb73a

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10590/index.html

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

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

* ✓ Fi.CI.BAT: success for lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 16:52 ` Janusz Krzysztofik
                   ` (5 preceding siblings ...)
  (?)
@ 2024-01-25 17:46 ` Patchwork
  -1 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2024-01-25 17:46 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: igt-dev

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

== Series Details ==

Series: lib/kunit: Support writable filter* parameters of kunit module
URL   : https://patchwork.freedesktop.org/series/129174/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_14179 -> IGTPW_10590
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (37 -> 33)
------------------------------

  Missing    (4): bat-dg2-8 bat-rpls-2 fi-snb-2520m fi-pnv-d510 


Changes
-------

  No changes found


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7692 -> IGTPW_10590

  CI-20190529: 20190529
  CI_DRM_14179: 38a58d4231067e1b548c12ee521b73ffc0ebb73a @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_10590: 10590
  IGT_7692: 5d9c29c620701497323bf3721146da57efa50952 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

-igt@xe_pm@d3-mmap-system
-igt@xe_pm@d3-mmap-vram

== Logs ==

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

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

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

* ✗ CI.Patch_applied: failure for lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 16:52 ` Janusz Krzysztofik
                   ` (6 preceding siblings ...)
  (?)
@ 2024-01-25 18:14 ` Patchwork
  -1 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2024-01-25 18:14 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: intel-xe

== Series Details ==

Series: lib/kunit: Support writable filter* parameters of kunit module
URL   : https://patchwork.freedesktop.org/series/129175/
State : failure

== Summary ==

=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: 38a58d423 drm-tip: 2024y-01m-25d-13h-32m-19s UTC integration manifest
=== git am output follows ===
error: lib/igt_kmod.c: does not exist in index
hint: Use 'git am --show-current-patch' to see the failed patch
Applying: lib/kunit: Support writable filter* parameters of kunit module
Patch failed at 0001 lib/kunit: Support writable filter* parameters of kunit module
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".



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

* ✗ Fi.CI.IGT: failure for lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 16:52 ` Janusz Krzysztofik
                   ` (7 preceding siblings ...)
  (?)
@ 2024-01-25 19:03 ` Patchwork
  -1 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2024-01-25 19:03 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: igt-dev

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

== Series Details ==

Series: lib/kunit: Support writable filter* parameters of kunit module
URL   : https://patchwork.freedesktop.org/series/129174/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_14179_full -> IGTPW_10590_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_10590_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_10590_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-snb:          [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-snb2/igt@core_hotunplug@unbind-rebind.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-snb2/igt@core_hotunplug@unbind-rebind.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-glk:          NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk8/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_damage_not_visible:
    - shard-rkl:          NOTRUN -> [SKIP][4] +20 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-7/igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_damage_not_visible.html

  * igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_single_damage:
    - shard-mtlp:         [PASS][5] -> [SKIP][6] +63 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-mtlp-2/igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_single_damage.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_single_damage.html

  * igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_single_damage_fractional_src:
    - shard-dg1:          NOTRUN -> [SKIP][7] +20 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-18/igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_single_damage_fractional_src.html

  * igt@kms_selftest@drm_dp_mst_helper@drm_test_dp_mst_calc_pbn_div:
    - shard-tglu:         NOTRUN -> [SKIP][8] +2 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-3/igt@kms_selftest@drm_dp_mst_helper@drm_test_dp_mst_calc_pbn_div.html

  * igt@kms_selftest@drm_dp_mst_helper@drm_test_dp_mst_sideband_msg_req_decode:
    - shard-dg2:          NOTRUN -> [SKIP][9] +23 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_selftest@drm_dp_mst_helper@drm_test_dp_mst_sideband_msg_req_decode.html

  * igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_8bpp:
    - shard-rkl:          [PASS][10] -> [SKIP][11] +40 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-1/igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_8bpp.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_8bpp.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb1555:
    - shard-dg2:          [PASS][12] -> [SKIP][13] +34 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb1555.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb1555.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_gray8:
    - shard-dg1:          [PASS][14] -> [SKIP][15] +85 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-16/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_gray8.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-14/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_gray8.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb888:
    - shard-tglu:         [PASS][16] -> [SKIP][17] +58 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-4/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb888.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-8/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb888.html

  
#### Warnings ####

  * igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit:
    - shard-tglu:         [DMESG-WARN][18] ([i915#10140]) -> [SKIP][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-4/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
    - shard-mtlp:         [DMESG-WARN][20] ([i915#10140]) -> [SKIP][21] +1 other test skip
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-mtlp-7/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-1/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
    - shard-dg2:          [DMESG-WARN][22] ([i915#10140]) -> [SKIP][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-5/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-6/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
    - shard-rkl:          [DMESG-WARN][24] ([i915#10140]) -> [SKIP][25]
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-5/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html

  * igt@drm_mm@drm_mm@drm_test_mm_init:
    - shard-dg1:          [DMESG-WARN][26] ([i915#10140]) -> [SKIP][27] +1 other test skip
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-14/igt@drm_mm@drm_mm@drm_test_mm_init.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@drm_mm@drm_mm@drm_test_mm_init.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list:
    - shard-rkl:          [FAIL][28] ([i915#10136]) -> [SKIP][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
    - shard-dg1:          [FAIL][30] ([i915#10136]) -> [SKIP][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-16/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-14/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
    - shard-tglu:         [FAIL][32] ([i915#10136]) -> [SKIP][33]
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-4/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-8/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
    - shard-mtlp:         [FAIL][34] ([i915#10136]) -> [SKIP][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-mtlp-7/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-4/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
    - shard-dg2:          [FAIL][36] ([i915#10136]) -> [SKIP][37]
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_swab:
    - shard-dg2:          [DMESG-WARN][38] ([i915#10143]) -> [SKIP][39] +1 other test skip
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_swab.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_swab.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_abgr8888:
    - shard-rkl:          [DMESG-WARN][40] ([i915#10143]) -> [SKIP][41] +1 other test skip
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_abgr8888.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_abgr8888.html
    - shard-tglu:         [DMESG-WARN][42] ([i915#10143]) -> [SKIP][43] +1 other test skip
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-4/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_abgr8888.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-8/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_abgr8888.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb2101010:
    - shard-dg1:          [DMESG-WARN][44] ([i915#10143]) -> [SKIP][45] +1 other test skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-16/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb2101010.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-14/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb2101010.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xbgr8888:
    - shard-mtlp:         [DMESG-WARN][46] ([i915#10143]) -> [SKIP][47] +4 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-mtlp-7/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xbgr8888.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-4/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xbgr8888.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@blit-reloc-purge-cache:
    - shard-dg1:          NOTRUN -> [SKIP][48] ([i915#8411])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@api_intel_bb@blit-reloc-purge-cache.html
    - shard-mtlp:         NOTRUN -> [SKIP][49] ([i915#8411])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@api_intel_bb@blit-reloc-purge-cache.html
    - shard-dg2:          NOTRUN -> [SKIP][50] ([i915#8411])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@api_intel_bb@blit-reloc-purge-cache.html

  * igt@api_intel_bb@crc32:
    - shard-tglu:         NOTRUN -> [SKIP][51] ([i915#6230])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-5/igt@api_intel_bb@crc32.html

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-rkl:          NOTRUN -> [SKIP][52] ([i915#8411]) +1 other test skip
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@api_intel_bb@object-reloc-keep-cache.html

  * igt@device_reset@unbind-cold-reset-rebind:
    - shard-rkl:          NOTRUN -> [SKIP][53] ([i915#7701])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@device_reset@unbind-cold-reset-rebind.html

  * igt@drm_fdinfo@busy-hang@rcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][54] ([i915#8414]) +6 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-7/igt@drm_fdinfo@busy-hang@rcs0.html

  * igt@drm_fdinfo@idle@rcs0:
    - shard-rkl:          [PASS][55] -> [FAIL][56] ([i915#7742])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-5/igt@drm_fdinfo@idle@rcs0.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@drm_fdinfo@idle@rcs0.html

  * igt@gem_busy@semaphore:
    - shard-mtlp:         NOTRUN -> [SKIP][57] ([i915#3936])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@gem_busy@semaphore.html

  * igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0:
    - shard-dg2:          [PASS][58] -> [INCOMPLETE][59] ([i915#7297])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-5/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-6/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html

  * igt@gem_close_race@multigpu-basic-process:
    - shard-mtlp:         NOTRUN -> [SKIP][60] ([i915#7697])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@gem_close_race@multigpu-basic-process.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-rkl:          [PASS][61] -> [FAIL][62] ([i915#6268])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-4/igt@gem_ctx_exec@basic-nohangcheck.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_ctx_persistence@hang:
    - shard-dg2:          NOTRUN -> [SKIP][63] ([i915#8555])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@gem_ctx_persistence@hang.html

  * igt@gem_ctx_sseu@invalid-sseu:
    - shard-dg2:          NOTRUN -> [SKIP][64] ([i915#280])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@gem_ctx_sseu@invalid-sseu.html

  * igt@gem_eio@hibernate:
    - shard-rkl:          NOTRUN -> [ABORT][65] ([i915#7975] / [i915#8213])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-7/igt@gem_eio@hibernate.html

  * igt@gem_eio@reset-stress:
    - shard-dg1:          [PASS][66] -> [FAIL][67] ([i915#5784])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-18/igt@gem_eio@reset-stress.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-12/igt@gem_eio@reset-stress.html

  * igt@gem_exec_balancer@bonded-dual:
    - shard-mtlp:         NOTRUN -> [SKIP][68] ([i915#4771])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@gem_exec_balancer@bonded-dual.html

  * igt@gem_exec_balancer@bonded-semaphore:
    - shard-dg2:          NOTRUN -> [SKIP][69] ([i915#4812]) +1 other test skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@gem_exec_balancer@bonded-semaphore.html

  * igt@gem_exec_balancer@hog:
    - shard-dg1:          NOTRUN -> [SKIP][70] ([i915#4812]) +1 other test skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-14/igt@gem_exec_balancer@hog.html

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-tglu:         NOTRUN -> [FAIL][71] ([i915#6117])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-7/igt@gem_exec_balancer@parallel-ordering.html

  * igt@gem_exec_capture@capture-invisible@smem0:
    - shard-glk:          NOTRUN -> [SKIP][72] ([fdo#109271] / [i915#6334])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk5/igt@gem_exec_capture@capture-invisible@smem0.html

  * igt@gem_exec_capture@many-4k-zero:
    - shard-glk:          NOTRUN -> [FAIL][73] ([i915#9606])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk4/igt@gem_exec_capture@many-4k-zero.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-glk:          NOTRUN -> [FAIL][74] ([i915#2846])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk9/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-flow:
    - shard-mtlp:         NOTRUN -> [SKIP][75] ([i915#4473] / [i915#4771])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-8/igt@gem_exec_fair@basic-flow.html

  * igt@gem_exec_fair@basic-none-rrul@rcs0:
    - shard-glk:          [PASS][76] -> [FAIL][77] ([i915#2842])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-glk5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk9/igt@gem_exec_fair@basic-none-rrul@rcs0.html
    - shard-rkl:          NOTRUN -> [FAIL][78] ([i915#2842])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
    - shard-tglu:         NOTRUN -> [FAIL][79] ([i915#2842])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-9/igt@gem_exec_fair@basic-none-rrul@rcs0.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-tglu:         [PASS][80] -> [FAIL][81] ([i915#2842])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-6/igt@gem_exec_fair@basic-none-share@rcs0.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-2/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-glk:          NOTRUN -> [FAIL][82] ([i915#2842])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk1/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-rkl:          [PASS][83] -> [FAIL][84] ([i915#2842]) +1 other test fail
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-2/igt@gem_exec_fair@basic-none@vcs0.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-pace:
    - shard-dg1:          NOTRUN -> [SKIP][85] ([i915#3539])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@gem_exec_fair@basic-pace.html

  * igt@gem_exec_fair@basic-pace-solo:
    - shard-mtlp:         NOTRUN -> [SKIP][86] ([i915#4473])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@gem_exec_fair@basic-pace-solo.html

  * igt@gem_exec_fair@basic-sync:
    - shard-dg2:          NOTRUN -> [SKIP][87] ([i915#3539])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@gem_exec_fair@basic-sync.html

  * igt@gem_exec_flush@basic-wb-ro-before-default:
    - shard-dg2:          NOTRUN -> [SKIP][88] ([i915#3539] / [i915#4852]) +2 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@gem_exec_flush@basic-wb-ro-before-default.html
    - shard-dg1:          NOTRUN -> [SKIP][89] ([i915#3539] / [i915#4852])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-12/igt@gem_exec_flush@basic-wb-ro-before-default.html

  * igt@gem_exec_reloc@basic-cpu-gtt-noreloc:
    - shard-dg2:          NOTRUN -> [SKIP][90] ([i915#3281]) +10 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@gem_exec_reloc@basic-cpu-gtt-noreloc.html

  * igt@gem_exec_reloc@basic-cpu-noreloc:
    - shard-rkl:          NOTRUN -> [SKIP][91] ([i915#3281]) +7 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@gem_exec_reloc@basic-cpu-noreloc.html

  * igt@gem_exec_reloc@basic-wc-cpu-noreloc:
    - shard-dg1:          NOTRUN -> [SKIP][92] ([i915#3281]) +6 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-16/igt@gem_exec_reloc@basic-wc-cpu-noreloc.html

  * igt@gem_exec_reloc@basic-write-wc-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][93] ([i915#3281]) +3 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-4/igt@gem_exec_reloc@basic-write-wc-noreloc.html

  * igt@gem_exec_schedule@reorder-wide:
    - shard-dg2:          NOTRUN -> [SKIP][94] ([i915#4537] / [i915#4812]) +1 other test skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@gem_exec_schedule@reorder-wide.html

  * igt@gem_exec_suspend@basic-s4-devices@lmem0:
    - shard-dg2:          NOTRUN -> [ABORT][95] ([i915#7975] / [i915#8213])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@gem_exec_suspend@basic-s4-devices@lmem0.html

  * igt@gem_fenced_exec_thrash@no-spare-fences:
    - shard-dg1:          NOTRUN -> [SKIP][96] ([i915#4860])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@gem_fenced_exec_thrash@no-spare-fences.html

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-rkl:          NOTRUN -> [SKIP][97] ([i915#4613] / [i915#7582])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@gem_lmem_evict@dontneed-evict-race.html
    - shard-mtlp:         NOTRUN -> [SKIP][98] ([i915#4613])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-7/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-rkl:          NOTRUN -> [SKIP][99] ([i915#4613]) +3 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_lmem_swapping@heavy-verify-random-ccs@lmem0:
    - shard-dg1:          NOTRUN -> [SKIP][100] ([i915#4565])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-15/igt@gem_lmem_swapping@heavy-verify-random-ccs@lmem0.html

  * igt@gem_lmem_swapping@massive-random:
    - shard-glk:          NOTRUN -> [SKIP][101] ([fdo#109271] / [i915#4613]) +3 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk4/igt@gem_lmem_swapping@massive-random.html

  * igt@gem_lmem_swapping@parallel-random-verify-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][102] ([i915#4613]) +1 other test skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-2/igt@gem_lmem_swapping@parallel-random-verify-ccs.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg1:          [PASS][103] -> [TIMEOUT][104] ([i915#5493])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_mmap_gtt@basic-short:
    - shard-mtlp:         NOTRUN -> [SKIP][105] ([i915#4077]) +11 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-1/igt@gem_mmap_gtt@basic-short.html

  * igt@gem_mmap_gtt@coherency:
    - shard-tglu:         NOTRUN -> [SKIP][106] ([fdo#111656])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-10/igt@gem_mmap_gtt@coherency.html

  * igt@gem_mmap_wc@copy:
    - shard-dg2:          NOTRUN -> [SKIP][107] ([i915#4083]) +3 other tests skip
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@gem_mmap_wc@copy.html

  * igt@gem_mmap_wc@write-cpu-read-wc-unflushed:
    - shard-mtlp:         NOTRUN -> [SKIP][108] ([i915#4083]) +2 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-4/igt@gem_mmap_wc@write-cpu-read-wc-unflushed.html

  * igt@gem_pread@display:
    - shard-mtlp:         NOTRUN -> [SKIP][109] ([i915#3282]) +1 other test skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@gem_pread@display.html

  * igt@gem_pread@snoop:
    - shard-dg2:          NOTRUN -> [SKIP][110] ([i915#3282]) +4 other tests skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@gem_pread@snoop.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-rkl:          NOTRUN -> [SKIP][111] ([i915#3282]) +6 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@gem_pwrite@basic-exhaustion.html
    - shard-dg1:          NOTRUN -> [SKIP][112] ([i915#3282])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-16/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@create-regular-buffer:
    - shard-dg2:          NOTRUN -> [SKIP][113] ([i915#4270]) +3 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@gem_pxp@create-regular-buffer.html

  * igt@gem_pxp@create-regular-context-2:
    - shard-tglu:         NOTRUN -> [SKIP][114] ([i915#4270])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-5/igt@gem_pxp@create-regular-context-2.html

  * igt@gem_pxp@reject-modify-context-protection-off-1:
    - shard-mtlp:         NOTRUN -> [SKIP][115] ([i915#4270]) +1 other test skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@gem_pxp@reject-modify-context-protection-off-1.html

  * igt@gem_pxp@reject-modify-context-protection-on:
    - shard-rkl:          NOTRUN -> [SKIP][116] ([i915#4270]) +1 other test skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@gem_pxp@reject-modify-context-protection-on.html
    - shard-dg1:          NOTRUN -> [SKIP][117] ([i915#4270]) +1 other test skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@gem_pxp@reject-modify-context-protection-on.html

  * igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][118] ([i915#8428]) +2 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-8/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html

  * igt@gem_softpin@evict-snoop-interruptible:
    - shard-mtlp:         NOTRUN -> [SKIP][119] ([i915#4885])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@gem_softpin@evict-snoop-interruptible.html

  * igt@gem_tiled_blits@basic:
    - shard-dg1:          NOTRUN -> [SKIP][120] ([i915#4077]) +2 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-14/igt@gem_tiled_blits@basic.html

  * igt@gem_tiled_partial_pwrite_pread@writes:
    - shard-dg2:          NOTRUN -> [SKIP][121] ([i915#4077]) +4 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@gem_tiled_partial_pwrite_pread@writes.html

  * igt@gem_tiled_pread_basic:
    - shard-mtlp:         NOTRUN -> [SKIP][122] ([i915#4079])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-2/igt@gem_tiled_pread_basic.html

  * igt@gem_unfence_active_buffers:
    - shard-dg1:          NOTRUN -> [SKIP][123] ([i915#4879])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-12/igt@gem_unfence_active_buffers.html

  * igt@gem_userptr_blits@access-control:
    - shard-dg2:          NOTRUN -> [SKIP][124] ([i915#3297])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-3/igt@gem_userptr_blits@access-control.html
    - shard-tglu:         NOTRUN -> [SKIP][125] ([i915#3297])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@gem_userptr_blits@access-control.html

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

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap:
    - shard-mtlp:         NOTRUN -> [SKIP][127] ([i915#3297])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-4/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html

  * igt@gen3_render_linear_blits:
    - shard-mtlp:         NOTRUN -> [SKIP][128] ([fdo#109289]) +1 other test skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@gen3_render_linear_blits.html

  * igt@gen3_render_tiledy_blits:
    - shard-dg1:          NOTRUN -> [SKIP][129] ([fdo#109289]) +1 other test skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@gen3_render_tiledy_blits.html

  * igt@gen7_exec_parse@batch-without-end:
    - shard-rkl:          NOTRUN -> [SKIP][130] ([fdo#109289]) +3 other tests skip
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@gen7_exec_parse@batch-without-end.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-mtlp:         NOTRUN -> [SKIP][131] ([i915#2856]) +1 other test skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@gen9_exec_parse@allowed-all.html
    - shard-glk:          NOTRUN -> [ABORT][132] ([i915#5566])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk1/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-dg2:          NOTRUN -> [SKIP][133] ([i915#2856])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@batch-without-end:
    - shard-dg1:          NOTRUN -> [SKIP][134] ([i915#2527]) +1 other test skip
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-15/igt@gen9_exec_parse@batch-without-end.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-rkl:          NOTRUN -> [SKIP][135] ([i915#2527]) +3 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@gen9_exec_parse@bb-oversize.html
    - shard-tglu:         NOTRUN -> [SKIP][136] ([i915#2527] / [i915#2856])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-6/igt@gen9_exec_parse@bb-oversize.html

  * igt@i915_module_load@load:
    - shard-glk:          NOTRUN -> [SKIP][137] ([fdo#109271] / [i915#6227])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk1/igt@i915_module_load@load.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][138] ([i915#10137] / [i915#9820] / [i915#9849])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@i915_module_load@reload-with-fault-injection.html
    - shard-snb:          [PASS][139] -> [INCOMPLETE][140] ([i915#10137] / [i915#9200] / [i915#9849])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-snb2/igt@i915_module_load@reload-with-fault-injection.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-snb2/igt@i915_module_load@reload-with-fault-injection.html
    - shard-tglu:         [PASS][141] -> [INCOMPLETE][142] ([i915#10137] / [i915#9200])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-2/igt@i915_module_load@reload-with-fault-injection.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0:
    - shard-dg1:          [PASS][143] -> [FAIL][144] ([i915#3591]) +1 other test fail
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html

  * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
    - shard-mtlp:         NOTRUN -> [SKIP][145] ([fdo#109293])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html

  * igt@i915_pm_rps@thresholds-idle-park@gt0:
    - shard-dg2:          NOTRUN -> [SKIP][146] ([i915#8925]) +1 other test skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@i915_pm_rps@thresholds-idle-park@gt0.html
    - shard-dg1:          NOTRUN -> [SKIP][147] ([i915#8925])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@i915_pm_rps@thresholds-idle-park@gt0.html

  * igt@i915_pm_rps@thresholds@gt0:
    - shard-mtlp:         NOTRUN -> [SKIP][148] ([i915#8925])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@i915_pm_rps@thresholds@gt0.html

  * igt@i915_pm_rps@thresholds@gt1:
    - shard-mtlp:         NOTRUN -> [SKIP][149] ([i915#3555] / [i915#8925])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@i915_pm_rps@thresholds@gt1.html

  * igt@i915_power@sanity:
    - shard-mtlp:         [PASS][150] -> [SKIP][151] ([i915#7984])
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-mtlp-4/igt@i915_power@sanity.html
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@i915_power@sanity.html

  * igt@i915_query@query-topology-known-pci-ids:
    - shard-mtlp:         NOTRUN -> [SKIP][152] ([fdo#109303])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@i915_query@query-topology-known-pci-ids.html
    - shard-rkl:          NOTRUN -> [SKIP][153] ([fdo#109303])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@i915_query@query-topology-known-pci-ids.html

  * igt@i915_selftest@mock@memory_region:
    - shard-glk:          NOTRUN -> [DMESG-WARN][154] ([i915#9311])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk8/igt@i915_selftest@mock@memory_region.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - shard-dg2:          NOTRUN -> [SKIP][155] ([i915#4212])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-2/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html
    - shard-dg1:          NOTRUN -> [SKIP][156] ([i915#4212])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html
    - shard-mtlp:         NOTRUN -> [SKIP][157] ([i915#4212])
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-1/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

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

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-y-rc-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][159] ([i915#8709]) +7 other tests skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-y-rc-ccs.html

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-2-4-mc-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][160] ([i915#8709]) +11 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-2/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-2-4-mc-ccs.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-tglu:         NOTRUN -> [SKIP][161] ([i915#1769] / [i915#3555])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-90:
    - shard-dg2:          NOTRUN -> [SKIP][162] ([fdo#111614]) +2 other tests skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-180:
    - shard-tglu:         NOTRUN -> [SKIP][163] ([fdo#111615] / [i915#5286]) +1 other test skip
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-8/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-rkl:          NOTRUN -> [SKIP][164] ([i915#5286]) +4 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0.html
    - shard-dg1:          NOTRUN -> [SKIP][165] ([i915#4538] / [i915#5286]) +1 other test skip
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-19/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-mtlp:         [PASS][166] -> [FAIL][167] ([i915#5138])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][168] ([fdo#111614] / [i915#3638]) +4 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@linear-64bpp-rotate-90:
    - shard-tglu:         NOTRUN -> [SKIP][169] ([fdo#111614])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-2/igt@kms_big_fb@linear-64bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0:
    - shard-mtlp:         NOTRUN -> [DMESG-WARN][170] ([i915#9157])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-2/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-270:
    - shard-mtlp:         NOTRUN -> [SKIP][171] ([fdo#111614])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-8/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-tglu:         [PASS][172] -> [FAIL][173] ([i915#3743]) +1 other test fail
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-5/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-2/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-180:
    - shard-mtlp:         NOTRUN -> [SKIP][174] ([fdo#111615]) +8 other tests skip
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-dg2:          NOTRUN -> [SKIP][175] ([i915#5190]) +6 other tests skip
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
    - shard-dg1:          NOTRUN -> [SKIP][176] ([i915#3638]) +1 other test skip
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-15/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
    - shard-dg1:          NOTRUN -> [SKIP][177] ([i915#4538]) +1 other test skip
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
    - shard-dg2:          NOTRUN -> [SKIP][178] ([i915#4538] / [i915#5190]) +6 other tests skip
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-rkl:          NOTRUN -> [SKIP][179] ([fdo#111615])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-tglu:         NOTRUN -> [SKIP][180] ([fdo#111615]) +3 other tests skip
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-rkl:          NOTRUN -> [SKIP][181] ([fdo#110723]) +4 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y-tiled-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][182] ([i915#5354] / [i915#6095]) +25 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y-tiled-ccs.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y-tiled-gen12-mc-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][183] ([i915#5354]) +61 other tests skip
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-3/igt@kms_ccs@pipe-b-ccs-on-another-bo-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4-tiled-mtl-rc-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][184] ([i915#5354] / [i915#6095]) +21 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@pipe-b-random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-tglu:         NOTRUN -> [SKIP][185] ([i915#5354] / [i915#6095]) +25 other tests skip
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@kms_ccs@pipe-b-random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@pipe-d-ccs-on-another-bo-yf-tiled-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][186] ([i915#5354] / [i915#6095]) +31 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@kms_ccs@pipe-d-ccs-on-another-bo-yf-tiled-ccs.html

  * igt@kms_ccs@pipe-d-random-ccs-data-4-tiled-mtl-rc-ccs-cc:
    - shard-rkl:          NOTRUN -> [SKIP][187] ([i915#5354]) +29 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_ccs@pipe-d-random-ccs-data-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-mtlp:         NOTRUN -> [SKIP][188] ([i915#7213])
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-7/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_cdclk@mode-transition@pipe-b-hdmi-a-2:
    - shard-dg2:          NOTRUN -> [SKIP][189] ([i915#7213]) +3 other tests skip
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-3/igt@kms_cdclk@mode-transition@pipe-b-hdmi-a-2.html

  * igt@kms_chamelium_color@ctm-0-50:
    - shard-tglu:         NOTRUN -> [SKIP][190] ([fdo#111827])
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-2/igt@kms_chamelium_color@ctm-0-50.html
    - shard-rkl:          NOTRUN -> [SKIP][191] ([fdo#111827])
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@kms_chamelium_color@ctm-0-50.html

  * igt@kms_chamelium_color@ctm-max:
    - shard-mtlp:         NOTRUN -> [SKIP][192] ([fdo#111827]) +1 other test skip
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-7/igt@kms_chamelium_color@ctm-max.html

  * igt@kms_chamelium_color@ctm-red-to-blue:
    - shard-dg1:          NOTRUN -> [SKIP][193] ([fdo#111827])
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@kms_chamelium_color@ctm-red-to-blue.html

  * igt@kms_chamelium_frames@dp-crc-single:
    - shard-dg1:          NOTRUN -> [SKIP][194] ([i915#7828]) +2 other tests skip
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@kms_chamelium_frames@dp-crc-single.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][195] ([i915#7828]) +3 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-8/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
    - shard-dg2:          NOTRUN -> [SKIP][196] ([i915#7828]) +3 other tests skip
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode:
    - shard-rkl:          NOTRUN -> [SKIP][197] ([i915#7828]) +6 other tests skip
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode.html

  * igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][198] ([i915#7828]) +5 other tests skip
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-4/igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-rkl:          NOTRUN -> [SKIP][199] ([i915#3116]) +1 other test skip
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_content_protection@dp-mst-type-0.html
    - shard-tglu:         NOTRUN -> [SKIP][200] ([i915#3116] / [i915#3299])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-9/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@mei-interface:
    - shard-dg2:          NOTRUN -> [SKIP][201] ([i915#9424])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@uevent:
    - shard-dg2:          NOTRUN -> [SKIP][202] ([i915#7118])
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-3/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-offscreen-128x42:
    - shard-mtlp:         NOTRUN -> [SKIP][203] ([i915#8814]) +2 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-1/igt@kms_cursor_crc@cursor-offscreen-128x42.html

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-mtlp:         NOTRUN -> [SKIP][204] ([i915#3359])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-512x170:
    - shard-dg2:          NOTRUN -> [SKIP][205] ([i915#3359]) +3 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-6/igt@kms_cursor_crc@cursor-random-512x170.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][206] ([i915#3359]) +1 other test skip
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@kms_cursor_crc@cursor-random-512x512.html
    - shard-dg1:          NOTRUN -> [SKIP][207] ([i915#3359])
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-16/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x32:
    - shard-tglu:         NOTRUN -> [SKIP][208] ([i915#3555])
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-6/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html

  * igt@kms_cursor_crc@cursor-sliding-32x10:
    - shard-mtlp:         NOTRUN -> [SKIP][209] ([i915#3555] / [i915#8814])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@kms_cursor_crc@cursor-sliding-32x10.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-tglu:         NOTRUN -> [SKIP][210] ([i915#3359])
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
    - shard-rkl:          NOTRUN -> [SKIP][211] ([fdo#111767] / [fdo#111825])
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
    - shard-mtlp:         NOTRUN -> [SKIP][212] ([fdo#111767]) +1 other test skip
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-mtlp:         NOTRUN -> [SKIP][213] ([i915#9809]) +1 other test skip
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-2/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
    - shard-tglu:         NOTRUN -> [SKIP][214] ([fdo#109274]) +1 other test skip
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][215] ([i915#4103] / [i915#4213])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - shard-dg1:          NOTRUN -> [SKIP][216] ([i915#4103] / [i915#4213])
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-18/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
    - shard-dg2:          NOTRUN -> [SKIP][217] ([fdo#109274] / [i915#5354])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
    - shard-snb:          [PASS][218] -> [SKIP][219] ([fdo#109271] / [fdo#111767])
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-snb7/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-snb5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-glk:          [PASS][220] -> [FAIL][221] ([i915#2346])
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
    - shard-rkl:          NOTRUN -> [SKIP][222] ([i915#9067])
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-dg1:          NOTRUN -> [SKIP][223] ([i915#9067])
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-16/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-mtlp:         NOTRUN -> [SKIP][224] ([i915#4213])
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][225] ([i915#9723]) +1 other test skip
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-hdmi-a-1.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-dg2:          NOTRUN -> [SKIP][226] ([i915#3555]) +5 other tests skip
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-2/igt@kms_display_modes@extended-mode-basic.html
    - shard-rkl:          NOTRUN -> [SKIP][227] ([i915#3555]) +4 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_display_modes@extended-mode-basic.html
    - shard-dg1:          NOTRUN -> [SKIP][228] ([i915#3555]) +1 other test skip
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_display_modes@mst-extended-mode-negative:
    - shard-dg2:          NOTRUN -> [SKIP][229] ([i915#8588])
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-6/igt@kms_display_modes@mst-extended-mode-negative.html
    - shard-rkl:          NOTRUN -> [SKIP][230] ([i915#8588])
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@kms_display_modes@mst-extended-mode-negative.html
    - shard-dg1:          NOTRUN -> [SKIP][231] ([i915#8588])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-16/igt@kms_display_modes@mst-extended-mode-negative.html
    - shard-mtlp:         NOTRUN -> [SKIP][232] ([i915#8588])
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-8/igt@kms_display_modes@mst-extended-mode-negative.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][233] ([i915#3804])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html

  * igt@kms_dsc@dsc-with-formats:
    - shard-dg1:          NOTRUN -> [SKIP][234] ([i915#3555] / [i915#3840])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-18/igt@kms_dsc@dsc-with-formats.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-mtlp:         NOTRUN -> [SKIP][235] ([i915#3555] / [i915#3840] / [i915#9053])
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-4/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
    - shard-rkl:          NOTRUN -> [SKIP][236] ([i915#3840] / [i915#9053])
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][237] ([fdo#110189] / [i915#3955])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@kms_fbcon_fbt@psr-suspend.html
    - shard-tglu:         NOTRUN -> [SKIP][238] ([i915#3469])
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@chamelium:
    - shard-dg2:          NOTRUN -> [SKIP][239] ([i915#4854])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-2x:
    - shard-mtlp:         NOTRUN -> [SKIP][240] ([i915#1839])
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@kms_feature_discovery@display-2x.html
    - shard-dg2:          NOTRUN -> [SKIP][241] ([i915#1839])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_feature_discovery@display-2x.html
    - shard-rkl:          NOTRUN -> [SKIP][242] ([i915#1839])
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@kms_feature_discovery@display-2x.html
    - shard-tglu:         NOTRUN -> [SKIP][243] ([i915#1839])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-2/igt@kms_feature_discovery@display-2x.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][244] ([fdo#109274]) +7 other tests skip
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@2x-flip-vs-rmfb:
    - shard-mtlp:         NOTRUN -> [SKIP][245] ([i915#3637]) +2 other tests skip
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@kms_flip@2x-flip-vs-rmfb.html

  * igt@kms_flip@2x-plain-flip:
    - shard-rkl:          NOTRUN -> [SKIP][246] ([fdo#111825]) +13 other tests skip
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_flip@2x-plain-flip.html
    - shard-tglu:         NOTRUN -> [SKIP][247] ([fdo#109274] / [i915#3637])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-8/igt@kms_flip@2x-plain-flip.html

  * igt@kms_flip@2x-plain-flip-interruptible:
    - shard-dg1:          NOTRUN -> [SKIP][248] ([fdo#111825] / [i915#9934]) +3 other tests skip
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@kms_flip@2x-plain-flip-interruptible.html

  * igt@kms_flip@flip-vs-fences-interruptible:
    - shard-mtlp:         NOTRUN -> [SKIP][249] ([i915#8381])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@kms_flip@flip-vs-fences-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
    - shard-dg1:          NOTRUN -> [SKIP][250] ([i915#2587] / [i915#2672])
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][251] ([i915#2672])
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode:
    - shard-tglu:         NOTRUN -> [SKIP][252] ([i915#2587] / [i915#2672]) +2 other tests skip
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-10/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][253] ([i915#2672]) +2 other tests skip
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][254] ([i915#3555] / [i915#8810]) +2 other tests skip
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
    - shard-dg2:          [PASS][255] -> [FAIL][256] ([i915#6880])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][257] ([i915#8708]) +11 other tests skip
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][258] ([i915#8708]) +7 other tests skip
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-12/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][259] ([i915#3458]) +16 other tests skip
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-dg1:          NOTRUN -> [SKIP][260] ([fdo#111825]) +8 other tests skip
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt:
    - shard-glk:          NOTRUN -> [SKIP][261] ([fdo#109271]) +401 other tests skip
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
    - shard-mtlp:         NOTRUN -> [SKIP][262] ([i915#1825]) +17 other tests skip
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy:
    - shard-tglu:         NOTRUN -> [SKIP][263] ([fdo#110189]) +8 other tests skip
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-3/igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
    - shard-rkl:          NOTRUN -> [SKIP][264] ([i915#3023]) +20 other tests skip
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][265] ([i915#8708]) +11 other tests skip
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
    - shard-dg1:          NOTRUN -> [SKIP][266] ([i915#3458]) +7 other tests skip
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
    - shard-tglu:         NOTRUN -> [SKIP][267] ([fdo#109280]) +16 other tests skip
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][268] ([fdo#111825] / [i915#1825]) +37 other tests skip
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-rkl:          NOTRUN -> [SKIP][269] ([i915#3555] / [i915#8228]) +1 other test skip
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@kms_hdr@invalid-metadata-sizes.html
    - shard-dg1:          NOTRUN -> [SKIP][270] ([i915#3555] / [i915#8228])
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-12/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-dg2:          NOTRUN -> [SKIP][271] ([i915#4816])
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-6/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
    - shard-dg1:          NOTRUN -> [SKIP][272] ([i915#1839]) +1 other test skip
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-13/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-dg2:          NOTRUN -> [SKIP][273] ([i915#6301])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c:
    - shard-dg2:          NOTRUN -> [SKIP][274] ([fdo#109289]) +3 other tests skip
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-3/igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c.html

  * igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c:
    - shard-tglu:         NOTRUN -> [SKIP][275] ([fdo#109289])
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-3/igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c.html

  * igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][276] ([i915#4573]) +1 other test fail
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk7/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html

  * igt@kms_plane_lowres@tiling-y:
    - shard-mtlp:         NOTRUN -> [SKIP][277] ([i915#3555] / [i915#8821])
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-7/igt@kms_plane_lowres@tiling-y.html

  * igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [FAIL][278] ([i915#8292])
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-18/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-4.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][279] ([i915#9423]) +7 other tests skip
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-a-hdmi-a-3.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][280] ([i915#9423]) +7 other tests skip
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-hdmi-a-2.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][281] ([i915#5176]) +3 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-8/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-a-edp-1.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][282] ([i915#9423]) +19 other tests skip
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-19/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d-hdmi-a-4.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-a-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [SKIP][283] ([i915#5176] / [i915#9423]) +3 other tests skip
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-12/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-a-hdmi-a-3.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][284] ([i915#5176] / [i915#9423]) +1 other test skip
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][285] ([i915#5235]) +13 other tests skip
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][286] ([i915#5235]) +8 other tests skip
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-1/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-b-edp-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][287] ([i915#5235]) +11 other tests skip
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-14/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-hdmi-a-4.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][288] ([i915#5235] / [i915#9423]) +19 other tests skip
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-3.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-d-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][289] ([i915#3555] / [i915#5235]) +2 other tests skip
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-d-edp-1.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][290] ([i915#3361])
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg1:          NOTRUN -> [SKIP][291] ([i915#9340])
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-15/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg2:          [PASS][292] -> [SKIP][293] ([i915#9519])
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-10/igt@kms_pm_rpm@modeset-lpsp.html
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-1/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-tglu:         NOTRUN -> [SKIP][294] ([i915#9519])
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-rkl:          NOTRUN -> [SKIP][295] ([i915#9519])
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@modeset-pc8-residency-stress:
    - shard-dg2:          NOTRUN -> [SKIP][296] ([fdo#109293] / [fdo#109506])
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@kms_pm_rpm@modeset-pc8-residency-stress.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf:
    - shard-rkl:          NOTRUN -> [SKIP][297] ([i915#9683]) +2 other tests skip
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
    - shard-dg2:          NOTRUN -> [SKIP][298] ([i915#9683]) +1 other test skip
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
    - shard-tglu:         NOTRUN -> [SKIP][299] ([i915#9683])
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
    - shard-dg1:          NOTRUN -> [SKIP][300] ([i915#9683])
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-18/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][301] ([fdo#111068] / [i915#9683])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
    - shard-tglu:         NOTRUN -> [SKIP][302] ([fdo#111068] / [i915#9683])
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-mtlp:         NOTRUN -> [SKIP][303] ([i915#4348])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-rkl:          NOTRUN -> [SKIP][304] ([i915#9685])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
    - shard-dg2:          NOTRUN -> [SKIP][305] ([i915#4235] / [i915#5190])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-mtlp:         NOTRUN -> [SKIP][306] ([i915#5289])
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-dg2:          NOTRUN -> [SKIP][307] ([i915#4235])
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_single_damage_intersect_fractional_src:
    - shard-glk:          [PASS][308] -> [SKIP][309] ([fdo#109271]) +30 other tests skip
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-glk1/igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_single_damage_intersect_fractional_src.html
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk3/igt@kms_selftest@drm_damage_helper@drm_test_damage_iter_single_damage_intersect_fractional_src.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_memcpy:
    - shard-snb:          [PASS][310] -> [SKIP][311] ([fdo#109271]) +68 other tests skip
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-snb2/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_memcpy.html
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-snb5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_memcpy.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-mtlp:         NOTRUN -> [SKIP][312] ([i915#8623])
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-1/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-rkl:          NOTRUN -> [SKIP][313] ([i915#8623]) +1 other test skip
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
    - shard-tglu:         NOTRUN -> [SKIP][314] ([i915#8623])
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-3/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
    - shard-dg2:          NOTRUN -> [SKIP][315] ([i915#8623])
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_writeback@writeback-check-output-xrgb2101010:
    - shard-glk:          NOTRUN -> [SKIP][316] ([fdo#109271] / [i915#2437])
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk8/igt@kms_writeback@writeback-check-output-xrgb2101010.html

  * igt@kms_writeback@writeback-fb-id:
    - shard-rkl:          NOTRUN -> [SKIP][317] ([i915#2437])
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_writeback@writeback-fb-id.html
    - shard-dg1:          NOTRUN -> [SKIP][318] ([i915#2437])
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-16/igt@kms_writeback@writeback-fb-id.html

  * igt@kms_writeback@writeback-fb-id-xrgb2101010:
    - shard-rkl:          NOTRUN -> [SKIP][319] ([i915#2437] / [i915#9412])
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-5/igt@kms_writeback@writeback-fb-id-xrgb2101010.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
    - shard-dg2:          NOTRUN -> [SKIP][320] ([i915#2436])
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@perf@gen8-unprivileged-single-ctx-counters.html
    - shard-rkl:          NOTRUN -> [SKIP][321] ([i915#2436])
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@perf@gen8-unprivileged-single-ctx-counters.html

  * igt@perf@mi-rpc:
    - shard-mtlp:         NOTRUN -> [SKIP][322] ([i915#2434])
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@perf@mi-rpc.html

  * igt@perf_pmu@busy-double-start@vecs1:
    - shard-dg2:          NOTRUN -> [FAIL][323] ([i915#4349]) +3 other tests fail
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@perf_pmu@busy-double-start@vecs1.html

  * igt@perf_pmu@module-unload:
    - shard-dg2:          NOTRUN -> [FAIL][324] ([i915#5793])
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-6/igt@perf_pmu@module-unload.html

  * igt@perf_pmu@most-busy-idle-check-all@rcs0:
    - shard-dg1:          [PASS][325] -> [FAIL][326] ([i915#9593])
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-13/igt@perf_pmu@most-busy-idle-check-all@rcs0.html
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-12/igt@perf_pmu@most-busy-idle-check-all@rcs0.html

  * igt@prime_vgem@basic-write:
    - shard-rkl:          NOTRUN -> [SKIP][327] ([fdo#109295] / [i915#3291] / [i915#3708])
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@prime_vgem@basic-write.html

  * igt@prime_vgem@fence-flip-hang:
    - shard-mtlp:         NOTRUN -> [SKIP][328] ([i915#3708])
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-6/igt@prime_vgem@fence-flip-hang.html
    - shard-rkl:          NOTRUN -> [SKIP][329] ([fdo#109295] / [i915#3708])
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@prime_vgem@fence-flip-hang.html

  * igt@sriov_basic@bind-unbind-vf:
    - shard-dg2:          NOTRUN -> [SKIP][330] ([i915#9917])
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-6/igt@sriov_basic@bind-unbind-vf.html
    - shard-rkl:          NOTRUN -> [SKIP][331] ([i915#9917]) +1 other test skip
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@sriov_basic@bind-unbind-vf.html
    - shard-dg1:          NOTRUN -> [SKIP][332] ([i915#9917])
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-16/igt@sriov_basic@bind-unbind-vf.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-tglu:         NOTRUN -> [SKIP][333] ([i915#9917])
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-10/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@syncobj_timeline@invalid-wait-zero-handles:
    - shard-glk:          NOTRUN -> [FAIL][334] ([i915#9781])
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk1/igt@syncobj_timeline@invalid-wait-zero-handles.html

  * igt@syncobj_wait@invalid-wait-zero-handles:
    - shard-rkl:          NOTRUN -> [FAIL][335] ([i915#9779])
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-3/igt@syncobj_wait@invalid-wait-zero-handles.html

  * igt@tools_test@sysfs_l3_parity:
    - shard-dg2:          NOTRUN -> [SKIP][336] ([i915#4818])
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@tools_test@sysfs_l3_parity.html

  * igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync:
    - shard-mtlp:         NOTRUN -> [SKIP][337] ([i915#2575]) +8 other tests skip
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-8/igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync.html

  * igt@v3d/v3d_perfmon@get-values-valid-perfmon:
    - shard-rkl:          NOTRUN -> [SKIP][338] ([fdo#109315]) +12 other tests skip
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@v3d/v3d_perfmon@get-values-valid-perfmon.html

  * igt@v3d/v3d_submit_csd@bad-bo:
    - shard-dg2:          NOTRUN -> [SKIP][339] ([i915#2575]) +4 other tests skip
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@v3d/v3d_submit_csd@bad-bo.html

  * igt@v3d/v3d_submit_csd@bad-pad:
    - shard-tglu:         NOTRUN -> [SKIP][340] ([fdo#109315] / [i915#2575]) +4 other tests skip
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-2/igt@v3d/v3d_submit_csd@bad-pad.html

  * igt@v3d/v3d_submit_csd@valid-submission:
    - shard-dg1:          NOTRUN -> [SKIP][341] ([i915#2575]) +5 other tests skip
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-12/igt@v3d/v3d_submit_csd@valid-submission.html

  * igt@vc4/vc4_create_bo@create-bo-4096:
    - shard-mtlp:         NOTRUN -> [SKIP][342] ([i915#7711]) +4 other tests skip
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-1/igt@vc4/vc4_create_bo@create-bo-4096.html

  * igt@vc4/vc4_perfmon@create-two-perfmon:
    - shard-rkl:          NOTRUN -> [SKIP][343] ([i915#7711]) +7 other tests skip
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-1/igt@vc4/vc4_perfmon@create-two-perfmon.html
    - shard-tglu:         NOTRUN -> [SKIP][344] ([i915#2575]) +3 other tests skip
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-3/igt@vc4/vc4_perfmon@create-two-perfmon.html

  * igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem:
    - shard-dg1:          NOTRUN -> [SKIP][345] ([i915#7711]) +1 other test skip
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-19/igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem.html

  * igt@vc4/vc4_wait_bo@bad-pad:
    - shard-dg2:          NOTRUN -> [SKIP][346] ([i915#7711]) +5 other tests skip
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@vc4/vc4_wait_bo@bad-pad.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@most-busy-idle-check-all@rcs0:
    - shard-rkl:          [FAIL][347] ([i915#7742]) -> [PASS][348] +1 other test pass
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-1/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-2/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-rkl:          [FAIL][349] ([i915#2842]) -> [PASS][350] +1 other test pass
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-2/igt@gem_exec_fair@basic-none@vecs0.html
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-6/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [FAIL][351] ([i915#2842]) -> [PASS][352]
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-glk3/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk3/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_suspend@basic-s4-devices@lmem0:
    - shard-dg1:          [ABORT][353] ([i915#7975] / [i915#8213]) -> [PASS][354]
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-14/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-18/igt@gem_exec_suspend@basic-s4-devices@lmem0.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-dg1:          [INCOMPLETE][355] ([i915#10137] / [i915#9820] / [i915#9849]) -> [PASS][356]
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-19/igt@i915_module_load@reload-with-fault-injection.html
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@i915_module_load@reload-with-fault-injection.html
    - shard-glk:          [INCOMPLETE][357] ([i915#10137] / [i915#9200] / [i915#9849]) -> [PASS][358]
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-glk9/igt@i915_module_load@reload-with-fault-injection.html
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk4/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_rpm@system-suspend-devices:
    - shard-tglu:         [ABORT][359] -> [PASS][360]
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-9/igt@i915_pm_rpm@system-suspend-devices.html
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-4/igt@i915_pm_rpm@system-suspend-devices.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-180:
    - shard-mtlp:         [FAIL][361] ([i915#5138]) -> [PASS][362] +1 other test pass
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-mtlp-6/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-2/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-tglu:         [FAIL][363] ([i915#3743]) -> [PASS][364] +1 other test pass
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-5/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
    - shard-snb:          [SKIP][365] ([fdo#109271]) -> [PASS][366] +10 other tests pass
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-snb6/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-snb7/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-tglu:         [INCOMPLETE][367] ([i915#8797] / [i915#9878]) -> [PASS][368]
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-tglu-2/igt@kms_fbcon_fbt@fbc-suspend.html
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-tglu-10/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-dg2:          [FAIL][369] ([i915#6880]) -> [PASS][370] +1 other test pass
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite.html
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
    - shard-rkl:          [SKIP][371] ([i915#9519]) -> [PASS][372]
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-1/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@perf_pmu@busy-double-start@ccs0:
    - shard-mtlp:         [FAIL][373] ([i915#4349]) -> [PASS][374] +1 other test pass
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-mtlp-2/igt@perf_pmu@busy-double-start@ccs0.html
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-mtlp-5/igt@perf_pmu@busy-double-start@ccs0.html

  
#### Warnings ####

  * igt@device_reset@unbind-reset-rebind:
    - shard-dg1:          [INCOMPLETE][375] ([i915#10137] / [i915#9408] / [i915#9618]) -> [INCOMPLETE][376] ([i915#10137] / [i915#9618])
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg1-19/igt@device_reset@unbind-reset-rebind.html
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg1-17/igt@device_reset@unbind-reset-rebind.html

  * igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit:
    - shard-snb:          [DMESG-WARN][377] ([i915#10140]) -> [SKIP][378] ([fdo#109271])
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-snb2/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-snb1/igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit.html

  * igt@drm_mm@drm_mm@drm_test_mm_init:
    - shard-glk:          [DMESG-WARN][379] ([i915#10140]) -> [SKIP][380] ([fdo#109271])
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-glk1/igt@drm_mm@drm_mm@drm_test_mm_init.html
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-glk4/igt@drm_mm@drm_mm@drm_test_mm_init.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-dg2:          [INCOMPLETE][381] ([i915#10137] / [i915#9849]) -> [INCOMPLETE][382] ([i915#10137] / [i915#9820] / [i915#9849])
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-dg2-10/igt@i915_module_load@reload-with-fault-injection.html
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-dg2-5/igt@i915_module_load@reload-with-fault-injection.html

  * igt@kms_fbcon_fbt@psr:
    - shard-rkl:          [SKIP][383] ([fdo#110189] / [i915#3955]) -> [SKIP][384] ([i915#3955])
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-rkl-1/igt@kms_fbcon_fbt@psr.html
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-rkl-4/igt@kms_fbcon_fbt@psr.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list:
    - shard-snb:          [FAIL][385] ([i915#10136]) -> [SKIP][386] ([fdo#109271])
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-snb2/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-snb5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_abgr8888:
    - shard-snb:          [DMESG-WARN][387] ([i915#10143]) -> [SKIP][388] ([fdo#109271]) +1 other test skip
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14179/shard-snb2/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_abgr8888.html
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10590/shard-snb5/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_abgr8888.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111767]: https://bugs.freedesktop.org/show_bug.cgi?id=111767
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#10136]: https://gitlab.freedesktop.org/drm/intel/issues/10136
  [i915#10137]: https://gitlab.freedesktop.org/drm/intel/issues/10137
  [i915#10140]: https://gitlab.freedesktop.org/drm/intel/issues/10140
  [i915#10143]: https://gitlab.freedesktop.org/drm/intel/issues/10143
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4348]: https://gitlab.freedesktop.org/drm/intel/issues/4348
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4473]: https://gitlab.freedesktop.org/drm/intel/issues/4473
  [i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
  [i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#5793]: https://gitlab.freedesktop.org/drm/intel/issues/5793
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7213]: https://gitlab.freedesktop.org/drm/intel/issues/7213
  [i915#7297]: https://gitlab.freedesktop.org/drm/intel/issues/7297
  [i915#7582]: https://gitlab.freedesktop.org/drm/intel/issues/7582
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984
  [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
  [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
  [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
  [i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
  [i915#8411]: https://gitlab.freedesktop.org/drm/intel/issues/8411
  [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
  [i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
  [i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
  [i915#8588]: https://gitlab.freedesktop.org/drm/intel/issues/8588
  [i915#8623]: https://gitlab.freedesktop.org/drm/intel/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
  [i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709
  [i915#8797]: https://gitlab.freedesktop.org/drm/intel/issues/8797
  [i915#8810]: https://gitlab.freedesktop.org/drm/intel/issues/8810
  [i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814
  [i915#8821]: https://gitlab.freedesktop.org/drm/intel/issues/8821
  [i915#8925]: https://gitlab.freedesktop.org/drm/intel/issues/8925
  [i915#9053]: https://gitlab.freedesktop.org/drm/intel/issues/9053
  [i915#9067]: https://gitlab.freedesktop.org/drm/intel/issues/9067
  [i915#9157]: https://gitlab.freedesktop.org/drm/intel/issues/9157
  [i915#9200]: https://gitlab.freedesktop.org/drm/intel/issues/9200
  [i915#9311]: https://gitlab.freedesktop.org/drm/intel/

== Logs ==

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

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

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

* Re: [PATCH i-g-t 2/3] lib/kunit: Report early kernel taints explicitly
  2024-01-25 16:52   ` Janusz Krzysztofik
@ 2024-01-26  9:35     ` Kamil Konieczny
  -1 siblings, 0 replies; 29+ messages in thread
From: Kamil Konieczny @ 2024-01-26  9:35 UTC (permalink / raw)
  To: igt-dev; +Cc: Janusz Krzysztofik, Lucas De Marchi, intel-xe

Hi Janusz,
On 2024-01-25 at 17:52:11 +0100, Janusz Krzysztofik wrote:
> When we find the kernel tainted after loading our kunit test module in
> list only mode, report that taint immediately as the reason for skip
> instead of executing and blaming our ktap parser.
> 
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

> ---
>  lib/igt_kmod.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 4f96dafe01..01198e75dc 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -1213,6 +1213,7 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  	}
>  
>  	igt_skip_on(modprobe(tst->kmod, opts));
> +	igt_skip_on(igt_kernel_tainted(&taints));
>  
>  	ktap = igt_ktap_alloc(tests);
>  	igt_require(ktap);
> -- 
> 2.43.0
> 

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

* Re: [PATCH i-g-t 2/3] lib/kunit: Report early kernel taints explicitly
@ 2024-01-26  9:35     ` Kamil Konieczny
  0 siblings, 0 replies; 29+ messages in thread
From: Kamil Konieczny @ 2024-01-26  9:35 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, intel-xe

Hi Janusz,
On 2024-01-25 at 17:52:11 +0100, Janusz Krzysztofik wrote:
> When we find the kernel tainted after loading our kunit test module in
> list only mode, report that taint immediately as the reason for skip
> instead of executing and blaming our ktap parser.
> 
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

> ---
>  lib/igt_kmod.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 4f96dafe01..01198e75dc 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -1213,6 +1213,7 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  	}
>  
>  	igt_skip_on(modprobe(tst->kmod, opts));
> +	igt_skip_on(igt_kernel_tainted(&taints));
>  
>  	ktap = igt_ktap_alloc(tests);
>  	igt_require(ktap);
> -- 
> 2.43.0
> 

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

* Re: [PATCH i-g-t 3/3] lib/kunit: Process module remove error after list errors
  2024-01-25 16:52   ` Janusz Krzysztofik
@ 2024-01-26  9:35     ` Kamil Konieczny
  -1 siblings, 0 replies; 29+ messages in thread
From: Kamil Konieczny @ 2024-01-26  9:35 UTC (permalink / raw)
  To: igt-dev; +Cc: Janusz Krzysztofik, Lucas De Marchi, intel-xe

Hi Janusz,
On 2024-01-25 at 17:52:12 +0100, Janusz Krzysztofik wrote:
> Skip on any error from test case list gathering phase first, then, in
> preparation for executing those test cases, from unloading the test module
> loaded in list only mode, so it is more clear if listing the test cases
> was successful or not.
> 
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

> ---
>  lib/igt_kmod.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 01198e75dc..436aad58b3 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -1245,10 +1245,10 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  		free(case_name);
>  	}
>  
> -	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
> -
>  	igt_skip_on_f(err,
>  		      "KTAP parser failed while getting a list of test cases\n");
> +
> +	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
>  }
>  
>  static void __igt_kunit(struct igt_ktest *tst,
> -- 
> 2.43.0
> 

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

* Re: [PATCH i-g-t 3/3] lib/kunit: Process module remove error after list errors
@ 2024-01-26  9:35     ` Kamil Konieczny
  0 siblings, 0 replies; 29+ messages in thread
From: Kamil Konieczny @ 2024-01-26  9:35 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, intel-xe

Hi Janusz,
On 2024-01-25 at 17:52:12 +0100, Janusz Krzysztofik wrote:
> Skip on any error from test case list gathering phase first, then, in
> preparation for executing those test cases, from unloading the test module
> loaded in list only mode, so it is more clear if listing the test cases
> was successful or not.
> 
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

> ---
>  lib/igt_kmod.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 01198e75dc..436aad58b3 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -1245,10 +1245,10 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  		free(case_name);
>  	}
>  
> -	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
> -
>  	igt_skip_on_f(err,
>  		      "KTAP parser failed while getting a list of test cases\n");
> +
> +	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
>  }
>  
>  static void __igt_kunit(struct igt_ktest *tst,
> -- 
> 2.43.0
> 

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

* Re: [PATCH i-g-t 1/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 16:52   ` Janusz Krzysztofik
@ 2024-01-26  9:37     ` Kamil Konieczny
  -1 siblings, 0 replies; 29+ messages in thread
From: Kamil Konieczny @ 2024-01-26  9:37 UTC (permalink / raw)
  To: igt-dev; +Cc: Janusz Krzysztofik, Lucas De Marchi, intel-xe

Hi Janusz,
On 2024-01-25 at 17:52:10 +0100, Janusz Krzysztofik wrote:
> Instead of wasting resources on reloading the base Kunit module each time
> a different set of filter parameters is needed, try to write the required
> values to sysfs representation of those parameters.  If that fails (e.g.
> on older LTS kernels with read-only filter parameters), fall back to
> reloading the module.
> 
> This change also provides a workaround for the issue of impossibility to
> unload the base Kunit module on Xe platforms, available as soon as the
> module supports writable filter parameters.
> 
> Since the base Kunit module is now unloaded from kunit_set_params() when
> needed, drop other attempts to unload it.
> 
> To reuse an existing open_parameters() helper, moved it up in the source
> file to avoid a forward declaration.

Could you split your patch into smaller parts? You described four
actions you did, maybe four patches?

Regards,
Kamil

> 
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> ---
>  lib/igt_kmod.c | 147 +++++++++++++++++++++++++++++++++++--------------
>  1 file changed, 107 insertions(+), 40 deletions(-)
> 
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 250ab2107b..4f96dafe01 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -803,6 +803,78 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
>  	kmod_module_info_free_list(pre);
>  }
>  
> +static int open_parameters(const char *module_name)
> +{
> +	char path[256];
> +
> +	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
> +	return open(path, O_RDONLY);
> +}
> +
> +static bool kunit_set_params(const char **name, const char **value, int count)
> +{
> +	static bool writable = true;
> +	int i, ret, params;
> +	char *opts = NULL;
> +
> +	if (!writable) {
> +		if (count)
> +			if (igt_debug_on(asprintf(&opts, "%s=%s",
> +						  name[0], value[0]) < 0)) {
> +				free(opts);
> +				return false;
> +			}
> +
> +		for (i = 1; i < count; i++) {
> +			char *head = opts;
> +
> +			opts = NULL;
> +			ret = asprintf(&opts, "%s %s=%s", head, name[i], value[i]);
> +			free(head);
> +			if (igt_debug_on(ret < 0)) {
> +				free(opts);
> +				return false;
> +			}
> +		}
> +
> +		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
> +	}
> +
> +	ret = igt_debug_on(igt_kmod_load("kunit", opts));
> +	free(opts);
> +
> +	if (ret && !writable)
> +		return false;
> +
> +	params = open_parameters("kunit");
> +	ret = igt_debug_on(params < 0);
> +
> +	for (i = 0; !ret && i < count; i++) {
> +		char *param = igt_sysfs_get(params, name[i]);
> +
> +		if (igt_debug_on_f(!param, "param: %s\n", name[i])) {
> +			ret = -1;
> +			continue;
> +		}
> +
> +		ret = strcmp(param, value[i]);
> +		free(param);
> +		if (ret)
> +			ret = !igt_sysfs_set(params, name[i], value[i]);
> +	}
> +
> +	if (params >= 0)
> +		close(params);
> +
> +	if (!ret)
> +		return true;
> +	if (!writable)
> +		return false;
> +
> +	writable = false;
> +	return kunit_set_params(name, value, count);
> +}
> +
>  struct modprobe_data {
>  	struct kmod_module *kmod;
>  	const char *opts;
> @@ -814,11 +886,17 @@ struct modprobe_data {
>  
>  static void *modprobe_task(void *arg)
>  {
> +	const char *param[3] = { "filter_glob", "filter", "filter_action", };
> +	const char *value[3] = { "*", "", "", };
>  	struct modprobe_data *data = arg;
> +	bool ret;
> +
> +	ret = kunit_set_params(param, value, ARRAY_SIZE(param));
>  
> -	data->err = modprobe(data->kmod, data->opts);
> +	if (ret)
> +		data->err = modprobe(data->kmod, data->opts);
>  
> -	if (igt_debug_on(data->err)) {
> +	if (igt_debug_on(!ret || data->err)) {
>  		bool once = false;
>  		int err;
>  
> @@ -1092,9 +1170,20 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  			    const char *filter,
>  			    const char *opts)
>  {
> +	/*
> +	 * To get a list of test cases provided by a kunit test module, ask the
> +	 * generic kunit module to respond with SKIP result for each test found.
> +	 * We could also try to use action=list kunit parameter to get the
> +	 * listing, however, parsing a KTAP report -- something that we already
> +	 * can do perfectly -- seems to be more safe than extracting a test case
> +	 * list of unknown length from /dev/kmsg.
> +	 */
> +	const char *param[3] = { "filter_glob", "filter", "filter_action", };
> +	const char *value[3] = { "*", "module=none", "skip", };
>  	char *suite_name = NULL, *case_name = NULL;
>  	struct igt_ktap_result *r, *rn;
>  	struct igt_ktap_results *ktap;
> +	unsigned long taints;
>  	int flags, err;
>  
>  	igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
> @@ -1105,26 +1194,23 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  
>  	igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
>  
> -	/*
> -	 * To get a list of test cases provided by a kunit test module, ask the
> -	 * generic kunit module to respond with SKIP result for each test found.
> -	 * We could also use action=list kunit parameter to get the listing,
> -	 * however, parsing a KTAP report -- something that we already can do
> -	 * perfectly -- seems to be more safe than extracting a test case list
> -	 * of unknown length from /dev/kmsg.
> -	 *
> -	 * TODO: drop the following workaround, which is required by LTS kernel
> -	 *       v6.1 not capable of listing test cases when built as a module.
> -	 * If loading the kunit module with required parameters fails then
> -	 * assume that we are running on a kernel with missing test case listing
> -	 * capabilities.  Dont's skip but just return with empty list of test
> -	 * cases, that should tell the caller to use a legacy method of
> -	 * iterating over KTAP results collected from blind execution of all
> -	 * Kunit test cases provided by a Kunit test module.
> -	 */
> -	if (igt_debug_on(igt_kmod_load("kunit",
> -				       "filter=module=none filter_action=skip")))
> +	if (igt_debug_on(!kunit_set_params(param, value, ARRAY_SIZE(param)))) {
> +		/*
> +		 * TODO: drop the following workaround, required by LTS kernel
> +		 *       v6.1 not capable of listing test cases when built as as
> +		 *       module, when no longer needed.
> +		 * If updating writable filter parameters of the kunit base
> +		 * module with required values or reloading that module with
> +		 * those parameters specified fails then assume that we are
> +		 * running on a kernel with missing test case listing
> +		 * capabilities.  Dont skip but just return with empty list of
> +		 * test cases, which should tell the caller to use a legacy
> +		 * method of iterating over KTAP results collected from blind
> +		 * execution of all Kunit test cases provided by a Kunit test
> +		 * module.
> +		 */
>  		return;
> +	}
>  
>  	igt_skip_on(modprobe(tst->kmod, opts));
>  
> @@ -1159,7 +1245,6 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  	}
>  
>  	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
> -	igt_skip_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
>  
>  	igt_skip_on_f(err,
>  		      "KTAP parser failed while getting a list of test cases\n");
> @@ -1355,15 +1440,6 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
>  		igt_skip_on(igt_ktest_init(&tst, module_name));
>  		igt_skip_on(igt_ktest_begin(&tst));
>  
> -		/*
> -		 * Since we need to load kunit base module with specific
> -		 * options in order to get a list of test cases, make
> -		 * sure that the module is not loaded.  However, since
> -		 * unload may fail if kunit base module is not loaded,
> -		 * ignore any failures, we'll fail later if still loaded.
> -		 */
> -		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
> -
>  		igt_assert(igt_list_empty(&tests));
>  	}
>  
> @@ -1395,20 +1471,11 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
>  		kunit_results_free(&tests, &suite_name, &case_name);
>  
>  		igt_ktest_end(&tst);
> -		igt_debug_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
>  	}
>  
>  	igt_ktest_fini(&tst);
>  }
>  
> -static int open_parameters(const char *module_name)
> -{
> -	char path[256];
> -
> -	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
> -	return open(path, O_RDONLY);
> -}
> -
>  int igt_ktest_init(struct igt_ktest *tst,
>  		   const char *module_name)
>  {
> -- 
> 2.43.0
> 

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

* Re: [PATCH i-g-t 1/3] lib/kunit: Support writable filter* parameters of kunit module
@ 2024-01-26  9:37     ` Kamil Konieczny
  0 siblings, 0 replies; 29+ messages in thread
From: Kamil Konieczny @ 2024-01-26  9:37 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, intel-xe

Hi Janusz,
On 2024-01-25 at 17:52:10 +0100, Janusz Krzysztofik wrote:
> Instead of wasting resources on reloading the base Kunit module each time
> a different set of filter parameters is needed, try to write the required
> values to sysfs representation of those parameters.  If that fails (e.g.
> on older LTS kernels with read-only filter parameters), fall back to
> reloading the module.
> 
> This change also provides a workaround for the issue of impossibility to
> unload the base Kunit module on Xe platforms, available as soon as the
> module supports writable filter parameters.
> 
> Since the base Kunit module is now unloaded from kunit_set_params() when
> needed, drop other attempts to unload it.
> 
> To reuse an existing open_parameters() helper, moved it up in the source
> file to avoid a forward declaration.

Could you split your patch into smaller parts? You described four
actions you did, maybe four patches?

Regards,
Kamil

> 
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> ---
>  lib/igt_kmod.c | 147 +++++++++++++++++++++++++++++++++++--------------
>  1 file changed, 107 insertions(+), 40 deletions(-)
> 
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 250ab2107b..4f96dafe01 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -803,6 +803,78 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
>  	kmod_module_info_free_list(pre);
>  }
>  
> +static int open_parameters(const char *module_name)
> +{
> +	char path[256];
> +
> +	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
> +	return open(path, O_RDONLY);
> +}
> +
> +static bool kunit_set_params(const char **name, const char **value, int count)
> +{
> +	static bool writable = true;
> +	int i, ret, params;
> +	char *opts = NULL;
> +
> +	if (!writable) {
> +		if (count)
> +			if (igt_debug_on(asprintf(&opts, "%s=%s",
> +						  name[0], value[0]) < 0)) {
> +				free(opts);
> +				return false;
> +			}
> +
> +		for (i = 1; i < count; i++) {
> +			char *head = opts;
> +
> +			opts = NULL;
> +			ret = asprintf(&opts, "%s %s=%s", head, name[i], value[i]);
> +			free(head);
> +			if (igt_debug_on(ret < 0)) {
> +				free(opts);
> +				return false;
> +			}
> +		}
> +
> +		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
> +	}
> +
> +	ret = igt_debug_on(igt_kmod_load("kunit", opts));
> +	free(opts);
> +
> +	if (ret && !writable)
> +		return false;
> +
> +	params = open_parameters("kunit");
> +	ret = igt_debug_on(params < 0);
> +
> +	for (i = 0; !ret && i < count; i++) {
> +		char *param = igt_sysfs_get(params, name[i]);
> +
> +		if (igt_debug_on_f(!param, "param: %s\n", name[i])) {
> +			ret = -1;
> +			continue;
> +		}
> +
> +		ret = strcmp(param, value[i]);
> +		free(param);
> +		if (ret)
> +			ret = !igt_sysfs_set(params, name[i], value[i]);
> +	}
> +
> +	if (params >= 0)
> +		close(params);
> +
> +	if (!ret)
> +		return true;
> +	if (!writable)
> +		return false;
> +
> +	writable = false;
> +	return kunit_set_params(name, value, count);
> +}
> +
>  struct modprobe_data {
>  	struct kmod_module *kmod;
>  	const char *opts;
> @@ -814,11 +886,17 @@ struct modprobe_data {
>  
>  static void *modprobe_task(void *arg)
>  {
> +	const char *param[3] = { "filter_glob", "filter", "filter_action", };
> +	const char *value[3] = { "*", "", "", };
>  	struct modprobe_data *data = arg;
> +	bool ret;
> +
> +	ret = kunit_set_params(param, value, ARRAY_SIZE(param));
>  
> -	data->err = modprobe(data->kmod, data->opts);
> +	if (ret)
> +		data->err = modprobe(data->kmod, data->opts);
>  
> -	if (igt_debug_on(data->err)) {
> +	if (igt_debug_on(!ret || data->err)) {
>  		bool once = false;
>  		int err;
>  
> @@ -1092,9 +1170,20 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  			    const char *filter,
>  			    const char *opts)
>  {
> +	/*
> +	 * To get a list of test cases provided by a kunit test module, ask the
> +	 * generic kunit module to respond with SKIP result for each test found.
> +	 * We could also try to use action=list kunit parameter to get the
> +	 * listing, however, parsing a KTAP report -- something that we already
> +	 * can do perfectly -- seems to be more safe than extracting a test case
> +	 * list of unknown length from /dev/kmsg.
> +	 */
> +	const char *param[3] = { "filter_glob", "filter", "filter_action", };
> +	const char *value[3] = { "*", "module=none", "skip", };
>  	char *suite_name = NULL, *case_name = NULL;
>  	struct igt_ktap_result *r, *rn;
>  	struct igt_ktap_results *ktap;
> +	unsigned long taints;
>  	int flags, err;
>  
>  	igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
> @@ -1105,26 +1194,23 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  
>  	igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
>  
> -	/*
> -	 * To get a list of test cases provided by a kunit test module, ask the
> -	 * generic kunit module to respond with SKIP result for each test found.
> -	 * We could also use action=list kunit parameter to get the listing,
> -	 * however, parsing a KTAP report -- something that we already can do
> -	 * perfectly -- seems to be more safe than extracting a test case list
> -	 * of unknown length from /dev/kmsg.
> -	 *
> -	 * TODO: drop the following workaround, which is required by LTS kernel
> -	 *       v6.1 not capable of listing test cases when built as a module.
> -	 * If loading the kunit module with required parameters fails then
> -	 * assume that we are running on a kernel with missing test case listing
> -	 * capabilities.  Dont's skip but just return with empty list of test
> -	 * cases, that should tell the caller to use a legacy method of
> -	 * iterating over KTAP results collected from blind execution of all
> -	 * Kunit test cases provided by a Kunit test module.
> -	 */
> -	if (igt_debug_on(igt_kmod_load("kunit",
> -				       "filter=module=none filter_action=skip")))
> +	if (igt_debug_on(!kunit_set_params(param, value, ARRAY_SIZE(param)))) {
> +		/*
> +		 * TODO: drop the following workaround, required by LTS kernel
> +		 *       v6.1 not capable of listing test cases when built as as
> +		 *       module, when no longer needed.
> +		 * If updating writable filter parameters of the kunit base
> +		 * module with required values or reloading that module with
> +		 * those parameters specified fails then assume that we are
> +		 * running on a kernel with missing test case listing
> +		 * capabilities.  Dont skip but just return with empty list of
> +		 * test cases, which should tell the caller to use a legacy
> +		 * method of iterating over KTAP results collected from blind
> +		 * execution of all Kunit test cases provided by a Kunit test
> +		 * module.
> +		 */
>  		return;
> +	}
>  
>  	igt_skip_on(modprobe(tst->kmod, opts));
>  
> @@ -1159,7 +1245,6 @@ static void kunit_get_tests(struct igt_list_head *tests,
>  	}
>  
>  	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
> -	igt_skip_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
>  
>  	igt_skip_on_f(err,
>  		      "KTAP parser failed while getting a list of test cases\n");
> @@ -1355,15 +1440,6 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
>  		igt_skip_on(igt_ktest_init(&tst, module_name));
>  		igt_skip_on(igt_ktest_begin(&tst));
>  
> -		/*
> -		 * Since we need to load kunit base module with specific
> -		 * options in order to get a list of test cases, make
> -		 * sure that the module is not loaded.  However, since
> -		 * unload may fail if kunit base module is not loaded,
> -		 * ignore any failures, we'll fail later if still loaded.
> -		 */
> -		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
> -
>  		igt_assert(igt_list_empty(&tests));
>  	}
>  
> @@ -1395,20 +1471,11 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
>  		kunit_results_free(&tests, &suite_name, &case_name);
>  
>  		igt_ktest_end(&tst);
> -		igt_debug_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
>  	}
>  
>  	igt_ktest_fini(&tst);
>  }
>  
> -static int open_parameters(const char *module_name)
> -{
> -	char path[256];
> -
> -	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
> -	return open(path, O_RDONLY);
> -}
> -
>  int igt_ktest_init(struct igt_ktest *tst,
>  		   const char *module_name)
>  {
> -- 
> 2.43.0
> 

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

* Re: [PATCH i-g-t 1/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-26  9:37     ` Kamil Konieczny
  (?)
@ 2024-01-26 13:04     ` Janusz Krzysztofik
  -1 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-26 13:04 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Janusz Krzysztofik, intel-xe,
	Mauro Carvalho Chehab, Lucas De Marchi

Hi Kamil,

Thanks for review.

On Friday, 26 January 2024 10:37:28 CET Kamil Konieczny wrote:
> Hi Janusz,
> On 2024-01-25 at 17:52:10 +0100, Janusz Krzysztofik wrote:
> > Instead of wasting resources on reloading the base Kunit module each time
> > a different set of filter parameters is needed, try to write the required
> > values to sysfs representation of those parameters.  If that fails (e.g.
> > on older LTS kernels with read-only filter parameters), fall back to
> > reloading the module.
> > 
> > This change also provides a workaround for the issue of impossibility to
> > unload the base Kunit module on Xe platforms, available as soon as the
> > module supports writable filter parameters.
> > 
> > Since the base Kunit module is now unloaded from kunit_set_params() when
> > needed, drop other attempts to unload it.
> > 
> > To reuse an existing open_parameters() helper, moved it up in the source
> > file to avoid a forward declaration.
> 
> Could you split your patch into smaller parts? You described four
> actions you did, maybe four patches?

Regarding the first two paragraphs, they don't describe two separate changes 
to the code, one each, only two benefits provided by one atomic change:
- optimization of resource usage by avoiding expensive module reloading,
- workaround for the unusual dependency of the Xe driver on the base kunit 
  module.
Then I can't see how I could split that into two patches.

Regarding the third paragraph, I don't agree because I think that trying to 
keep the base KUnit module loaded is an integral part of the solution.  We 
can't stop unloading the module via a separate patch before we teach the code 
how to modify module parameters via sysfs.  OTOH, if we kept unloading the 
module then trying to update module parameters via sysfs with the module not 
loaded would obviously fail, and the code would have to be modified to take 
such conflicting while easily avoidable condition into account.  That would 
make the code sub-optimal, and a follow-up patch that drops those unneeded 
module unloads would have to optimize that code.  IOW, that paragraph 
shouldn't be read as describing a separate action, only providing a 
justification for an integral part of the change which purpose could be 
potentially non-obvious at a first glance.

Regarding the last paragraph, OK, I can put that part in a separate patch in 
front of the main one if that's important to you, though I don't believe in a 
scenario where that main patch is reverted while the helper is still needed in 
the new place by some other code added later.  Besides, that's only 7 lines of 
simple code being moved, pretty easy to verify if correct, not affecting 
readability of other code changes in any way, I believe.

If you think that my commit description can be misleading, suggesting that 4 
unrelated changes have been mixed here then could please give me some ideas on 
how I could improve that description?  Please note that if I just omitted the 
last two paragraphs then the description would be missing explanations of some 
not necessarily obvious parts of the change, and that's why I added them 
before sending to my initial version with only the first two paragraphs.

> 
> Regards,
> Kamil
> 
> > 
> > Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> > ---
> >  lib/igt_kmod.c | 147 +++++++++++++++++++++++++++++++++++--------------
> >  1 file changed, 107 insertions(+), 40 deletions(-)
> > 
> > diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> > index 250ab2107b..4f96dafe01 100644
> > --- a/lib/igt_kmod.c
> > +++ b/lib/igt_kmod.c
> > @@ -803,6 +803,78 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
> >  	kmod_module_info_free_list(pre);
> >  }
> >  
> > +static int open_parameters(const char *module_name)
> > +{
> > +	char path[256];
> > +
> > +	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
> > +	return open(path, O_RDONLY);
> > +}
> > +
> > +static bool kunit_set_params(const char **name, const char **value, int count)
> > +{
> > +	static bool writable = true;
> > +	int i, ret, params;
> > +	char *opts = NULL;
> > +
> > +	if (!writable) {
> > +		if (count)
> > +			if (igt_debug_on(asprintf(&opts, "%s=%s",
> > +						  name[0], value[0]) < 0)) {
> > +				free(opts);
> > +				return false;
> > +			}
> > +
> > +		for (i = 1; i < count; i++) {
> > +			char *head = opts;
> > +
> > +			opts = NULL;
> > +			ret = asprintf(&opts, "%s %s=%s", head, name[i], value[i]);
> > +			free(head);
> > +			if (igt_debug_on(ret < 0)) {
> > +				free(opts);
> > +				return false;
> > +			}
> > +		}
> > +
> > +		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
> > +	}
> > +
> > +	ret = igt_debug_on(igt_kmod_load("kunit", opts));
> > +	free(opts);
> > +
> > +	if (ret && !writable)
> > +		return false;
> > +
> > +	params = open_parameters("kunit");
> > +	ret = igt_debug_on(params < 0);
> > +
> > +	for (i = 0; !ret && i < count; i++) {
> > +		char *param = igt_sysfs_get(params, name[i]);
> > +
> > +		if (igt_debug_on_f(!param, "param: %s\n", name[i])) {
> > +			ret = -1;
> > +			continue;
> > +		}
> > +
> > +		ret = strcmp(param, value[i]);
> > +		free(param);
> > +		if (ret)
> > +			ret = !igt_sysfs_set(params, name[i], value[i]);
> > +	}
> > +
> > +	if (params >= 0)
> > +		close(params);
> > +
> > +	if (!ret)
> > +		return true;
> > +	if (!writable)
> > +		return false;
> > +
> > +	writable = false;
> > +	return kunit_set_params(name, value, count);
> > +}
> > +
> >  struct modprobe_data {
> >  	struct kmod_module *kmod;
> >  	const char *opts;
> > @@ -814,11 +886,17 @@ struct modprobe_data {
> >  
> >  static void *modprobe_task(void *arg)
> >  {
> > +	const char *param[3] = { "filter_glob", "filter", "filter_action", };
> > +	const char *value[3] = { "*", "", "", };
> >  	struct modprobe_data *data = arg;
> > +	bool ret;
> > +
> > +	ret = kunit_set_params(param, value, ARRAY_SIZE(param));
> >  
> > -	data->err = modprobe(data->kmod, data->opts);
> > +	if (ret)
> > +		data->err = modprobe(data->kmod, data->opts);
> >  
> > -	if (igt_debug_on(data->err)) {
> > +	if (igt_debug_on(!ret || data->err)) {
> >  		bool once = false;
> >  		int err;
> >  
> > @@ -1092,9 +1170,20 @@ static void kunit_get_tests(struct igt_list_head *tests,
> >  			    const char *filter,
> >  			    const char *opts)
> >  {
> > +	/*
> > +	 * To get a list of test cases provided by a kunit test module, ask the
> > +	 * generic kunit module to respond with SKIP result for each test found.
> > +	 * We could also try to use action=list kunit parameter to get the
> > +	 * listing, however, parsing a KTAP report -- something that we already
> > +	 * can do perfectly -- seems to be more safe than extracting a test case
> > +	 * list of unknown length from /dev/kmsg.
> > +	 */
> > +	const char *param[3] = { "filter_glob", "filter", "filter_action", };
> > +	const char *value[3] = { "*", "module=none", "skip", };
> >  	char *suite_name = NULL, *case_name = NULL;
> >  	struct igt_ktap_result *r, *rn;
> >  	struct igt_ktap_results *ktap;
> > +	unsigned long taints;

Auto-correction: that line belongs to patch 2/3 "lib/kunit: Report early 
kernel taints explicitly", and I'll move it there.

Thanks,
Janusz

> >  	int flags, err;
> >  
> >  	igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
> > @@ -1105,26 +1194,23 @@ static void kunit_get_tests(struct igt_list_head *tests,
> >  
> >  	igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
> >  
> > -	/*
> > -	 * To get a list of test cases provided by a kunit test module, ask the
> > -	 * generic kunit module to respond with SKIP result for each test found.
> > -	 * We could also use action=list kunit parameter to get the listing,
> > -	 * however, parsing a KTAP report -- something that we already can do
> > -	 * perfectly -- seems to be more safe than extracting a test case list
> > -	 * of unknown length from /dev/kmsg.
> > -	 *
> > -	 * TODO: drop the following workaround, which is required by LTS kernel
> > -	 *       v6.1 not capable of listing test cases when built as a module.
> > -	 * If loading the kunit module with required parameters fails then
> > -	 * assume that we are running on a kernel with missing test case listing
> > -	 * capabilities.  Dont's skip but just return with empty list of test
> > -	 * cases, that should tell the caller to use a legacy method of
> > -	 * iterating over KTAP results collected from blind execution of all
> > -	 * Kunit test cases provided by a Kunit test module.
> > -	 */
> > -	if (igt_debug_on(igt_kmod_load("kunit",
> > -				       "filter=module=none filter_action=skip")))
> > +	if (igt_debug_on(!kunit_set_params(param, value, ARRAY_SIZE(param)))) {
> > +		/*
> > +		 * TODO: drop the following workaround, required by LTS kernel
> > +		 *       v6.1 not capable of listing test cases when built as as
> > +		 *       module, when no longer needed.
> > +		 * If updating writable filter parameters of the kunit base
> > +		 * module with required values or reloading that module with
> > +		 * those parameters specified fails then assume that we are
> > +		 * running on a kernel with missing test case listing
> > +		 * capabilities.  Dont skip but just return with empty list of
> > +		 * test cases, which should tell the caller to use a legacy
> > +		 * method of iterating over KTAP results collected from blind
> > +		 * execution of all Kunit test cases provided by a Kunit test
> > +		 * module.
> > +		 */
> >  		return;
> > +	}
> >  
> >  	igt_skip_on(modprobe(tst->kmod, opts));
> >  
> > @@ -1159,7 +1245,6 @@ static void kunit_get_tests(struct igt_list_head *tests,
> >  	}
> >  
> >  	igt_skip_on(kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE));
> > -	igt_skip_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
> >  
> >  	igt_skip_on_f(err,
> >  		      "KTAP parser failed while getting a list of test cases\n");
> > @@ -1355,15 +1440,6 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
> >  		igt_skip_on(igt_ktest_init(&tst, module_name));
> >  		igt_skip_on(igt_ktest_begin(&tst));
> >  
> > -		/*
> > -		 * Since we need to load kunit base module with specific
> > -		 * options in order to get a list of test cases, make
> > -		 * sure that the module is not loaded.  However, since
> > -		 * unload may fail if kunit base module is not loaded,
> > -		 * ignore any failures, we'll fail later if still loaded.
> > -		 */
> > -		igt_ignore_warn(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
> > -
> >  		igt_assert(igt_list_empty(&tests));
> >  	}
> >  
> > @@ -1395,20 +1471,11 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
> >  		kunit_results_free(&tests, &suite_name, &case_name);
> >  
> >  		igt_ktest_end(&tst);
> > -		igt_debug_on(igt_kmod_unload("kunit", KMOD_REMOVE_FORCE));
> >  	}
> >  
> >  	igt_ktest_fini(&tst);
> >  }
> >  
> > -static int open_parameters(const char *module_name)
> > -{
> > -	char path[256];
> > -
> > -	snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name);
> > -	return open(path, O_RDONLY);
> > -}
> > -
> >  int igt_ktest_init(struct igt_ktest *tst,
> >  		   const char *module_name)
> >  {
> 





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

* Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 17:25   ` Lucas De Marchi
@ 2024-01-26 13:14     ` Janusz Krzysztofik
  -1 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-26 13:14 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: igt-dev, Kamil Konieczny, Janusz Krzysztofik, intel-xe

Hi Lucas,

Thanks for looking at this.

On Thursday, 25 January 2024 18:25:55 CET Lucas De Marchi wrote:
> On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
> >Instead of wasting resources on reloading the base Kunit module each time
> >a different set of filter parameters is needed, try to write the required
> >values to sysfs representation of those parameters.  If that fails (e.g.
> >on older LTS kernels with read-only filter parameters), fall back to
> 
> we can't really execute anything on LTS kernel. 

Yes, we can, and we do, since modules of DRM generic selftests like drm_buddy 
or drm_mm and a couple of KMS related ones were converted from i915 selftest 
format to KUnit and our IGT counterparts that load those modules and execute 
those tests were updated accordingly.  Maybe our CI no longer exercises IGT 
tests on LTS kernels, but the community may still do, I believe.

Thanks,
Janusz


> I don't think think it's
> worth keeping the multiple fallbacks we have now.
> 
> I think trying to maintain compat is good, but I'm not sure it makes
> sense for these tightly coupled tests with the kernel.
> 
> Lucas De Marchi
> 





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

* Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
@ 2024-01-26 13:14     ` Janusz Krzysztofik
  0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-26 13:14 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: igt-dev, intel-xe

Hi Lucas,

Thanks for looking at this.

On Thursday, 25 January 2024 18:25:55 CET Lucas De Marchi wrote:
> On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
> >Instead of wasting resources on reloading the base Kunit module each time
> >a different set of filter parameters is needed, try to write the required
> >values to sysfs representation of those parameters.  If that fails (e.g.
> >on older LTS kernels with read-only filter parameters), fall back to
> 
> we can't really execute anything on LTS kernel. 

Yes, we can, and we do, since modules of DRM generic selftests like drm_buddy 
or drm_mm and a couple of KMS related ones were converted from i915 selftest 
format to KUnit and our IGT counterparts that load those modules and execute 
those tests were updated accordingly.  Maybe our CI no longer exercises IGT 
tests on LTS kernels, but the community may still do, I believe.

Thanks,
Janusz


> I don't think think it's
> worth keeping the multiple fallbacks we have now.
> 
> I think trying to maintain compat is good, but I'm not sure it makes
> sense for these tightly coupled tests with the kernel.
> 
> Lucas De Marchi
> 





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

* Re: Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-25 17:25   ` Lucas De Marchi
  (?)
  (?)
@ 2024-01-26 14:46   ` Lucas De Marchi
  2024-01-26 16:31       ` Janusz Krzysztofik
  -1 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2024-01-26 14:46 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: igt-dev, intel-xe

On Thu, Jan 25, 2024 at 11:25:55AM -0600, Lucas De Marchi wrote:
>On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
>>Instead of wasting resources on reloading the base Kunit module each time
>>a different set of filter parameters is needed, try to write the required
>>values to sysfs representation of those parameters.  If that fails (e.g.
>>on older LTS kernels with read-only filter parameters), fall back to
>
>we can't really execute anything on LTS kernel. I don't think think it's
>worth keeping the multiple fallbacks we have now.
>q
>I think trying to maintain compat is good, but I'm not sure it makes
>sense for these tightly coupled tests with the kernel.

I gave it a try and it doesn't really work for me. It seems that after
you list the tests, the filter_action remains on skip, so the tests just
skips.

$ sudo ./build/tests/xe_live_ktest --r dmabuf
...
Subtest dmabuf: SKIP (0.078s)
$ sudo grep . /sys/module/kunit/parameters/*
/sys/module/kunit/parameters/action:(null)
/sys/module/kunit/parameters/filter:module=none
/sys/module/kunit/parameters/filter_action:skip
/sys/module/kunit/parameters/filter_glob:*
/sys/module/kunit/parameters/stats_enabled:1

This works for me (with my additional patch to rename the module):

# # list tests
# modprobe xe_live_test
# echo -n 'skip' > /sys/module/kunit/parameters/filter_action
# echo -n '*' > /sys/module/kunit/parameters/filter_glob
# modprobe xe_live_test

# # run just xe_dma_buf
# modprobe -r xe_live_test
# echo -ne '0x00' > /sys/module/kunit/parameters/filter_action
# echo -n 'xe_dma_buf' > /sys/module/kunit/parameters/filter_glob
# modprobe xe_live_test

I  think the main issue is that kunit have some different code paths for
not param == NULL and also that writting an empty string is not really
working as it doesn't issue a write() syscall. If you force a \0 and use
len + 1, then I think it might work, but I didn't test it completely.
I may have to enhance the patch on the kernel side to handle that more
effectively.

Lucas De Marchi

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

* Re: Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-26 13:14     ` Janusz Krzysztofik
  (?)
@ 2024-01-26 14:55     ` Lucas De Marchi
  -1 siblings, 0 replies; 29+ messages in thread
From: Lucas De Marchi @ 2024-01-26 14:55 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: igt-dev, intel-xe

On Fri, Jan 26, 2024 at 02:14:34PM +0100, Janusz Krzysztofik wrote:
>Hi Lucas,
>
>Thanks for looking at this.
>
>On Thursday, 25 January 2024 18:25:55 CET Lucas De Marchi wrote:
>> On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
>> >Instead of wasting resources on reloading the base Kunit module each time
>> >a different set of filter parameters is needed, try to write the required
>> >values to sysfs representation of those parameters.  If that fails (e.g.
>> >on older LTS kernels with read-only filter parameters), fall back to
>>
>> we can't really execute anything on LTS kernel.
>
>Yes, we can, and we do, since modules of DRM generic selftests like drm_buddy
>or drm_mm and a couple of KMS related ones were converted from i915 selftest
>format to KUnit and our IGT counterparts that load those modules and execute
>those tests were updated accordingly.  Maybe our CI no longer exercises IGT
>tests on LTS kernels, but the community may still do, I believe.

there's very little benefit on that IMO as these are tightly coupled to the
kernel side.  Distros don't even ship kunit enabled so people would have
to build an lts kernel for that.

The way this compatibility is coded intermixed makes it
much harder to get it right.  I'd rather just add simple skips or add a
compat layer that takes a totally different path if compat is desired.

Lucas De Marchi

>
>Thanks,
>Janusz
>
>
>> I don't think think it's
>> worth keeping the multiple fallbacks we have now.
>>
>> I think trying to maintain compat is good, but I'm not sure it makes
>> sense for these tightly coupled tests with the kernel.
>>
>> Lucas De Marchi
>>
>
>
>
>

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

* Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-26 14:46   ` Lucas De Marchi
@ 2024-01-26 16:31       ` Janusz Krzysztofik
  0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-26 16:31 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: igt-dev, Janusz Krzysztofik, intel-xe

On Friday, 26 January 2024 15:46:54 CET Lucas De Marchi wrote:
> On Thu, Jan 25, 2024 at 11:25:55AM -0600, Lucas De Marchi wrote:
> >On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
> >>Instead of wasting resources on reloading the base Kunit module each time
> >>a different set of filter parameters is needed, try to write the required
> >>values to sysfs representation of those parameters.  If that fails (e.g.
> >>on older LTS kernels with read-only filter parameters), fall back to
> >
> >we can't really execute anything on LTS kernel. I don't think think it's
> >worth keeping the multiple fallbacks we have now.
> >q
> >I think trying to maintain compat is good, but I'm not sure it makes
> >sense for these tightly coupled tests with the kernel.
> 
> I gave it a try and it doesn't really work for me. It seems that after
> you list the tests, the filter_action remains on skip, so the tests just
> skips.
> 
> $ sudo ./build/tests/xe_live_ktest --r dmabuf
> ...
> Subtest dmabuf: SKIP (0.078s)
> $ sudo grep . /sys/module/kunit/parameters/*
> /sys/module/kunit/parameters/action:(null)
> /sys/module/kunit/parameters/filter:module=none
> /sys/module/kunit/parameters/filter_action:skip
> /sys/module/kunit/parameters/filter_glob:*
> /sys/module/kunit/parameters/stats_enabled:1
> 
> This works for me (with my additional patch to rename the module):
> 
> # # list tests
> # modprobe xe_live_test
> # echo -n 'skip' > /sys/module/kunit/parameters/filter_action
> # echo -n '*' > /sys/module/kunit/parameters/filter_glob
> # modprobe xe_live_test
> 
> # # run just xe_dma_buf
> # modprobe -r xe_live_test
> # echo -ne '0x00' > /sys/module/kunit/parameters/filter_action
> # echo -n 'xe_dma_buf' > /sys/module/kunit/parameters/filter_glob
> # modprobe xe_live_test
> 
> I  think the main issue is that kunit have some different code paths for
> not param == NULL and also that writting an empty string is not really
> working as it doesn't issue a write() syscall. If you force a \0 and use
> len + 1, then I think it might work, but I didn't test it completely.
> I may have to enhance the patch on the kernel side to handle that more
> effectively.

OK, if you are going to enhance the kernel side then I'll hold on for now and 
get back to it when we can call the ABI stable.

Thanks,
Janusz

> 
> Lucas De Marchi
> 





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

* Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
@ 2024-01-26 16:31       ` Janusz Krzysztofik
  0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-26 16:31 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: igt-dev, intel-xe

On Friday, 26 January 2024 15:46:54 CET Lucas De Marchi wrote:
> On Thu, Jan 25, 2024 at 11:25:55AM -0600, Lucas De Marchi wrote:
> >On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
> >>Instead of wasting resources on reloading the base Kunit module each time
> >>a different set of filter parameters is needed, try to write the required
> >>values to sysfs representation of those parameters.  If that fails (e.g.
> >>on older LTS kernels with read-only filter parameters), fall back to
> >
> >we can't really execute anything on LTS kernel. I don't think think it's
> >worth keeping the multiple fallbacks we have now.
> >q
> >I think trying to maintain compat is good, but I'm not sure it makes
> >sense for these tightly coupled tests with the kernel.
> 
> I gave it a try and it doesn't really work for me. It seems that after
> you list the tests, the filter_action remains on skip, so the tests just
> skips.
> 
> $ sudo ./build/tests/xe_live_ktest --r dmabuf
> ...
> Subtest dmabuf: SKIP (0.078s)
> $ sudo grep . /sys/module/kunit/parameters/*
> /sys/module/kunit/parameters/action:(null)
> /sys/module/kunit/parameters/filter:module=none
> /sys/module/kunit/parameters/filter_action:skip
> /sys/module/kunit/parameters/filter_glob:*
> /sys/module/kunit/parameters/stats_enabled:1
> 
> This works for me (with my additional patch to rename the module):
> 
> # # list tests
> # modprobe xe_live_test
> # echo -n 'skip' > /sys/module/kunit/parameters/filter_action
> # echo -n '*' > /sys/module/kunit/parameters/filter_glob
> # modprobe xe_live_test
> 
> # # run just xe_dma_buf
> # modprobe -r xe_live_test
> # echo -ne '0x00' > /sys/module/kunit/parameters/filter_action
> # echo -n 'xe_dma_buf' > /sys/module/kunit/parameters/filter_glob
> # modprobe xe_live_test
> 
> I  think the main issue is that kunit have some different code paths for
> not param == NULL and also that writting an empty string is not really
> working as it doesn't issue a write() syscall. If you force a \0 and use
> len + 1, then I think it might work, but I didn't test it completely.
> I may have to enhance the patch on the kernel side to handle that more
> effectively.

OK, if you are going to enhance the kernel side then I'll hold on for now and 
get back to it when we can call the ABI stable.

Thanks,
Janusz

> 
> Lucas De Marchi
> 





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

* Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-26 16:31       ` Janusz Krzysztofik
  (?)
@ 2024-01-26 21:05       ` Janusz Krzysztofik
  2024-01-29 16:04         ` Lucas De Marchi
  -1 siblings, 1 reply; 29+ messages in thread
From: Janusz Krzysztofik @ 2024-01-26 21:05 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: igt-dev, intel-xe

On Friday, 26 January 2024 17:31:53 CET Janusz Krzysztofik wrote:
> On Friday, 26 January 2024 15:46:54 CET Lucas De Marchi wrote:
> > On Thu, Jan 25, 2024 at 11:25:55AM -0600, Lucas De Marchi wrote:
> > >On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
> > >>Instead of wasting resources on reloading the base Kunit module each time
> > >>a different set of filter parameters is needed, try to write the required
> > >>values to sysfs representation of those parameters.  If that fails (e.g.
> > >>on older LTS kernels with read-only filter parameters), fall back to
> > >
> > >we can't really execute anything on LTS kernel. I don't think think it's
> > >worth keeping the multiple fallbacks we have now.
> > >q
> > >I think trying to maintain compat is good, but I'm not sure it makes
> > >sense for these tightly coupled tests with the kernel.
> > 
> > I gave it a try and it doesn't really work for me. It seems that after
> > you list the tests, the filter_action remains on skip, so the tests just
> > skips.
> > 
> > $ sudo ./build/tests/xe_live_ktest --r dmabuf
> > ...
> > Subtest dmabuf: SKIP (0.078s)
> > $ sudo grep . /sys/module/kunit/parameters/*
> > /sys/module/kunit/parameters/action:(null)
> > /sys/module/kunit/parameters/filter:module=none
> > /sys/module/kunit/parameters/filter_action:skip
> > /sys/module/kunit/parameters/filter_glob:*
> > /sys/module/kunit/parameters/stats_enabled:1
> > 
> > This works for me (with my additional patch to rename the module):
> > 
> > # # list tests
> > # modprobe xe_live_test
> > # echo -n 'skip' > /sys/module/kunit/parameters/filter_action
> > # echo -n '*' > /sys/module/kunit/parameters/filter_glob
> > # modprobe xe_live_test
> > 
> > # # run just xe_dma_buf
> > # modprobe -r xe_live_test
> > # echo -ne '0x00' > /sys/module/kunit/parameters/filter_action
> > # echo -n 'xe_dma_buf' > /sys/module/kunit/parameters/filter_glob
> > # modprobe xe_live_test
> > 
> > I  think the main issue is that kunit have some different code paths for
> > not param == NULL and also that writting an empty string is not really
> > working as it doesn't issue a write() syscall. If you force a \0 and use
> > len + 1, then I think it might work, but I didn't test it completely.
> > I may have to enhance the patch on the kernel side to handle that more
> > effectively.
> 
> OK, if you are going to enhance the kernel side then I'll hold on for now and 
> get back to it when we can call the ABI stable.

Or I can propose a workaround that sets some non-default values of filter 
parameters that effectively work the same way as if default NULLs were 
restored, which now seems impossible to be done via sysfs.  Example:

List mode:
- filter: "module=none" (no module matches the filter),
- filter_action: "skip" (always, since all modules are filtered out),
- filter_glob: "*" (equivalent of default NULL).

Execute mode:
- filter: "module!=none" (any module matches, equivalent of default NULL),
- filter_action: not used (no modules are filtered out),
- filter_glob: application decides.

Thanks,
Janusz


> 
> Thanks,
> Janusz
> 
> > 
> > Lucas De Marchi
> > 
> 
> 
> 
> 
> 





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

* Re: Re: [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
  2024-01-26 21:05       ` Janusz Krzysztofik
@ 2024-01-29 16:04         ` Lucas De Marchi
  0 siblings, 0 replies; 29+ messages in thread
From: Lucas De Marchi @ 2024-01-29 16:04 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: igt-dev, intel-xe

On Fri, Jan 26, 2024 at 10:05:25PM +0100, Janusz Krzysztofik wrote:
>On Friday, 26 January 2024 17:31:53 CET Janusz Krzysztofik wrote:
>> On Friday, 26 January 2024 15:46:54 CET Lucas De Marchi wrote:
>> > On Thu, Jan 25, 2024 at 11:25:55AM -0600, Lucas De Marchi wrote:
>> > >On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
>> > >>Instead of wasting resources on reloading the base Kunit module each time
>> > >>a different set of filter parameters is needed, try to write the required
>> > >>values to sysfs representation of those parameters.  If that fails (e.g.
>> > >>on older LTS kernels with read-only filter parameters), fall back to
>> > >
>> > >we can't really execute anything on LTS kernel. I don't think think it's
>> > >worth keeping the multiple fallbacks we have now.
>> > >q
>> > >I think trying to maintain compat is good, but I'm not sure it makes
>> > >sense for these tightly coupled tests with the kernel.
>> >
>> > I gave it a try and it doesn't really work for me. It seems that after
>> > you list the tests, the filter_action remains on skip, so the tests just
>> > skips.
>> >
>> > $ sudo ./build/tests/xe_live_ktest --r dmabuf
>> > ...
>> > Subtest dmabuf: SKIP (0.078s)
>> > $ sudo grep . /sys/module/kunit/parameters/*
>> > /sys/module/kunit/parameters/action:(null)
>> > /sys/module/kunit/parameters/filter:module=none
>> > /sys/module/kunit/parameters/filter_action:skip
>> > /sys/module/kunit/parameters/filter_glob:*
>> > /sys/module/kunit/parameters/stats_enabled:1
>> >
>> > This works for me (with my additional patch to rename the module):
>> >
>> > # # list tests
>> > # modprobe xe_live_test
>> > # echo -n 'skip' > /sys/module/kunit/parameters/filter_action
>> > # echo -n '*' > /sys/module/kunit/parameters/filter_glob
>> > # modprobe xe_live_test
>> >
>> > # # run just xe_dma_buf
>> > # modprobe -r xe_live_test
>> > # echo -ne '0x00' > /sys/module/kunit/parameters/filter_action
>> > # echo -n 'xe_dma_buf' > /sys/module/kunit/parameters/filter_glob
>> > # modprobe xe_live_test
>> >
>> > I  think the main issue is that kunit have some different code paths for
>> > not param == NULL and also that writting an empty string is not really
>> > working as it doesn't issue a write() syscall. If you force a \0 and use
>> > len + 1, then I think it might work, but I didn't test it completely.
>> > I may have to enhance the patch on the kernel side to handle that more
>> > effectively.
>>
>> OK, if you are going to enhance the kernel side then I'll hold on for now and
>> get back to it when we can call the ABI stable.
>
>Or I can propose a workaround that sets some non-default values of filter
>parameters that effectively work the same way as if default NULLs were
>restored, which now seems impossible to be done via sysfs.  Example:
>
>List mode:
>- filter: "module=none" (no module matches the filter),
>- filter_action: "skip" (always, since all modules are filtered out),
>- filter_glob: "*" (equivalent of default NULL).
>
>Execute mode:
>- filter: "module!=none" (any module matches, equivalent of default NULL),
>- filter_action: not used (no modules are filtered out),
>- filter_glob: application decides.

yeah, that should be ok. I was worried that setting the values too late
was not taking effect, but upon double checking it seems the main
problem is when trying to write "" in igt:  it will just open/close the
file to truncate it and that doesn't work for setting sysfs files.
In bash, `echo -ne '\0' > filter` works for me where needed.

You will probably need something like that for filter_action to be able
to remove the previous value set and stop  skipping the tests.

Lucas De Marchi


>
>Thanks,
>Janusz
>
>
>>
>> Thanks,
>> Janusz
>>
>> >
>> > Lucas De Marchi
>> >
>>
>>
>>
>>
>>
>
>
>
>

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

end of thread, other threads:[~2024-01-29 16:04 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-25 16:52 [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module Janusz Krzysztofik
2024-01-25 16:52 ` Janusz Krzysztofik
2024-01-25 16:52 ` [PATCH i-g-t 1/3] " Janusz Krzysztofik
2024-01-25 16:52   ` Janusz Krzysztofik
2024-01-26  9:37   ` Kamil Konieczny
2024-01-26  9:37     ` Kamil Konieczny
2024-01-26 13:04     ` Janusz Krzysztofik
2024-01-25 16:52 ` [PATCH i-g-t 2/3] lib/kunit: Report early kernel taints explicitly Janusz Krzysztofik
2024-01-25 16:52   ` Janusz Krzysztofik
2024-01-26  9:35   ` Kamil Konieczny
2024-01-26  9:35     ` Kamil Konieczny
2024-01-25 16:52 ` [PATCH i-g-t 3/3] lib/kunit: Process module remove error after list errors Janusz Krzysztofik
2024-01-25 16:52   ` Janusz Krzysztofik
2024-01-26  9:35   ` Kamil Konieczny
2024-01-26  9:35     ` Kamil Konieczny
2024-01-25 17:25 ` [PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module Lucas De Marchi
2024-01-25 17:25   ` Lucas De Marchi
2024-01-26 13:14   ` Janusz Krzysztofik
2024-01-26 13:14     ` Janusz Krzysztofik
2024-01-26 14:55     ` Lucas De Marchi
2024-01-26 14:46   ` Lucas De Marchi
2024-01-26 16:31     ` Janusz Krzysztofik
2024-01-26 16:31       ` Janusz Krzysztofik
2024-01-26 21:05       ` Janusz Krzysztofik
2024-01-29 16:04         ` Lucas De Marchi
2024-01-25 17:36 ` ✗ CI.xeBAT: failure for " Patchwork
2024-01-25 17:46 ` ✓ Fi.CI.BAT: success " Patchwork
2024-01-25 18:14 ` ✗ CI.Patch_applied: failure " Patchwork
2024-01-25 19:03 ` ✗ 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.