Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH v3 0/2] kms lease
@ 2023-10-03 19:02 Mohammed Thasleem
  2023-10-03 19:02 ` [igt-dev] [PATCH v3 1/2] tests/kms_lease: Terminate lease fd before subtests and remove lease_t from all sub-tests Mohammed Thasleem
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Mohammed Thasleem @ 2023-10-03 19:02 UTC (permalink / raw)
  To: igt-dev

Terminate the lease fd when any assert happen with out termination
of lease fd and on any drmModeSetCrtc or drmModeGetCrtc exit.
Terminate lease fd on every display dependent subtests execution.

Mohammed Thasleem (2):
  tests/kms_lease: Terminate lease fd before subtests and remove lease_t
    from all sub-tests
  tests/kms_lease: Add wrapper to create lease and store mcl.fd

 tests/kms_lease.c | 267 +++++++++++++++++++++++-----------------------
 1 file changed, 132 insertions(+), 135 deletions(-)

-- 
2.25.1

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

* [igt-dev] [PATCH v3 1/2] tests/kms_lease: Terminate lease fd before subtests and remove lease_t from all sub-tests
  2023-10-03 19:02 [igt-dev] [PATCH v3 0/2] kms lease Mohammed Thasleem
@ 2023-10-03 19:02 ` Mohammed Thasleem
  2023-10-06  4:29   ` Karthik B S
  2023-10-03 19:02 ` [igt-dev] [PATCH v3 2/2] tests/kms_lease: Add wrapper to create lease and store mcl.fd Mohammed Thasleem
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Mohammed Thasleem @ 2023-10-03 19:02 UTC (permalink / raw)
  To: igt-dev

Failures happen at drmModeSetCursor and prepare_crtc_master or
prepare_crtc_lease which exit tests without termination of lease fd
which resulting in resource busy for sub-sequence execution, when
new lessor request for lease.

Terminate the lease fd when any assert happen with out termination
of lease fd and on any drmModeSetCrtc or drmModeGetCrtc exit.
Terminate lease fd on every display dependent subtests execution.

Remove lease_t from all sub-tests and move it to data_t and
send data struct instead lease struct and avoid dupicating
of prepare_crtc.

v2: -Separated prepare crtc for master and lease.
    -Replace close with terminate_lease.
    -Removed lease_t from all sub-tests. (Ankit)
v3: Updated commit message. (Ankit)
v4: Avoid duplicating prepare_crtc. (Ankit)
v5: Send fd to close instead structure address.

Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_lease.c | 129 ++++++++++++++++++++++------------------------
 1 file changed, 61 insertions(+), 68 deletions(-)

diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 343cdb812..ad739677f 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -211,6 +211,7 @@ typedef struct {
 } lease_t;
 
 typedef struct {
+	lease_t lease;
 	lease_t master;
 	enum pipe pipe;
 	uint32_t crtc_id;
@@ -226,9 +227,10 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
 	return igt_output_from_connector(display, &connector);
 }
 
-static int prepare_crtc(lease_t *lease, data_t *data)
+static int prepare_crtc(data_t *data, bool is_master)
 {
 	drmModeModeInfo *mode;
+	lease_t *lease = is_master ? &data->master : &data->lease;
 	igt_display_t *display = &lease->display;
 	igt_output_t *output = connector_id_to_output(display, data->connector_id);
 	enum pipe pipe = display->pipes[data->pipe].pipe;
@@ -248,7 +250,6 @@ static int prepare_crtc(lease_t *lease, data_t *data)
 			    DRM_FORMAT_MOD_LINEAR,
 			    0.0, 0.0, 0.0,
 			    &lease->primary_fb);
-
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_plane_set_fb(primary, &lease->primary_fb);
 
@@ -314,7 +315,7 @@ static int get_lease(int fd, struct drm_mode_get_lease *mgl)
 	return err;
 }
 
-static int make_lease(data_t *data, lease_t *lease)
+static int make_lease(data_t *data)
 {
 	uint32_t object_ids[3];
 	struct drm_mode_create_lease mcl;
@@ -330,18 +331,18 @@ static int make_lease(data_t *data, lease_t *lease)
 	object_ids[mcl.object_count++] = data->plane_id;
 
 	ret = create_lease(data->master.fd, &mcl);
+	data->lease.fd = mcl.fd;
 
 	if (ret)
 		return ret;
 
-	lease->fd = mcl.fd;
-	lease->lessee_id = mcl.lessee_id;
+	data->lease.lessee_id = mcl.lessee_id;
 	return 0;
 }
 
-static void terminate_lease(lease_t *lease)
+static void terminate_lease(int lease_fd)
 {
-	close(lease->fd);
+	close(lease_fd);
 }
 
 static int paint_fb(int drm_fd, struct igt_fb *fb, const char *test_name,
@@ -370,24 +371,23 @@ static void simple_lease(data_t *data)
 {
 	enum pipe pipe = data->pipe;
 
-	lease_t lease;
-
 	/* Create a valid lease */
-	igt_assert_eq(make_lease(data, &lease), 0);
+	igt_assert_eq(make_lease(data), 0);
 
-	igt_display_require(&lease.display, lease.fd);
+	igt_display_require(&data->lease.display, data->lease.fd);
 
 	/* Set a mode on the leased output */
-	igt_assert_eq(0, prepare_crtc(&lease, data));
+	igt_assert_eq(0, prepare_crtc(data, false));
 
 	/* Paint something attractive */
-	paint_fb(lease.fd, &lease.primary_fb, "simple-lease",
-		 lease.mode->name, igt_output_name(lease.output), kmstest_pipe_name(pipe));
+	paint_fb(data->lease.fd, &data->lease.primary_fb, "simple-lease",
+		 data->lease.mode->name, igt_output_name(data->lease.output),
+		 kmstest_pipe_name(pipe));
 	igt_debug_wait_for_keypress("lease");
-	cleanup_crtc(&lease,
-		     connector_id_to_output(&lease.display, data->connector_id));
+	cleanup_crtc(&data->lease,
+		     connector_id_to_output(&data->lease.display, data->connector_id));
 
-	terminate_lease(&lease);
+	terminate_lease(data->lease.fd);
 }
 
 static void empty_lease(data_t *data)
@@ -432,7 +432,7 @@ static void page_flip_implicit_plane(data_t *data)
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
 
 	/* Set a mode on the leased output */
-	igt_assert_eq(0, prepare_crtc(&data->master, data));
+	igt_assert_eq(0, prepare_crtc(data, true));
 
 	/* sanity check */
 	do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
@@ -509,7 +509,7 @@ static void setcrtc_implicit_plane(data_t *data)
 	}
 
 	/* Set a mode on the leased output */
-	igt_assert_eq(0, prepare_crtc(&data->master, data));
+	igt_assert_eq(0, prepare_crtc(data, true));
 
 	/* sanity check */
 	ret = drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
@@ -522,6 +522,7 @@ static void setcrtc_implicit_plane(data_t *data)
 
 	object_ids[mcl.object_count++] = wrong_plane_id;
 	do_or_die(create_lease(data->master.fd, &mcl));
+	data->lease.fd = mcl.fd;
 
 	igt_assert_eq(drmModeSetCrtc(mcl.fd, data->crtc_id, -1,
 				     0, 0, object_ids, 1, mode),
@@ -552,7 +553,7 @@ static void cursor_implicit_plane(data_t *data)
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
 
 	/* Set a mode on the leased output */
-	igt_assert_eq(0, prepare_crtc(&data->master, data));
+	igt_assert_eq(0, prepare_crtc(data, true));
 
 	/* sanity check */
 	do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
@@ -569,7 +570,7 @@ static void cursor_implicit_plane(data_t *data)
 
 	cleanup_crtc(&data->master,
 		     connector_id_to_output(&data->master.display, data->connector_id));
-}
+	}
 
 static void atomic_implicit_crtc(data_t *data)
 {
@@ -662,19 +663,18 @@ static void atomic_implicit_crtc(data_t *data)
 /* Test listing lessees */
 static void lessee_list(data_t *data)
 {
-	lease_t lease;
 	struct drm_mode_list_lessees mll;
 	uint32_t lessees[1];
 
 	mll.pad = 0;
 
 	/* Create a valid lease */
-	igt_assert_eq(make_lease(data, &lease), 0);
+	igt_assert_eq(make_lease(data), 0);
 
 	/* check for nested leases */
 	mll.count_lessees = 0;
 	mll.lessees_ptr = 0;
-	igt_assert_eq(list_lessees(lease.fd, &mll), 0);
+	igt_assert_eq(list_lessees(data->lease.fd, &mll), 0);
 	igt_assert_eq(mll.count_lessees, 0);
 
 	/* Get the number of lessees */
@@ -696,14 +696,14 @@ static void lessee_list(data_t *data)
 	igt_assert_eq(mll.count_lessees, 1);
 
 	/* Make sure the listed lease is the same as the one we created */
-	igt_assert_eq(lessees[0], lease.lessee_id);
+	igt_assert_eq(lessees[0], data->lease.lessee_id);
 
 	/* invalid pad */
 	mll.pad = -1;
 	igt_assert_eq(list_lessees(data->master.fd, &mll), -EINVAL);
 	mll.pad = 0;
 
-	terminate_lease(&lease);
+	terminate_lease(data->lease.fd);
 
 	/* Make sure the lease is gone */
 	igt_assert_eq(list_lessees(data->master.fd, &mll), 0);
@@ -713,7 +713,6 @@ static void lessee_list(data_t *data)
 /* Test getting the contents of a lease */
 static void lease_get(data_t *data)
 {
-	lease_t lease;
 	struct drm_mode_get_lease mgl;
 	int num_leased_obj = 3;
 	uint32_t objects[num_leased_obj];
@@ -722,12 +721,12 @@ static void lease_get(data_t *data)
 	mgl.pad = 0;
 
 	/* Create a valid lease */
-	igt_assert_eq(make_lease(data, &lease), 0);
+	igt_assert_eq(make_lease(data), 0);
 
 	/* Get the number of objects */
 	mgl.count_objects = 0;
 	mgl.objects_ptr = 0;
-	igt_assert_eq(get_lease(lease.fd, &mgl), 0);
+	igt_assert_eq(get_lease(data->lease.fd, &mgl), 0);
 
 	/* Make sure it's 2 */
 	igt_assert_eq(mgl.count_objects, num_leased_obj);
@@ -735,7 +734,7 @@ static void lease_get(data_t *data)
 	/* Get the objects */
 	mgl.objects_ptr = (uint64_t) (uintptr_t) objects;
 
-	igt_assert_eq(get_lease(lease.fd, &mgl), 0);
+	igt_assert_eq(get_lease(data->lease.fd, &mgl), 0);
 
 	/* Make sure it's 2 */
 	igt_assert_eq(mgl.count_objects, num_leased_obj);
@@ -761,28 +760,27 @@ static void lease_get(data_t *data)
 
 	/* invalid pad */
 	mgl.pad = -1;
-	igt_assert_eq(get_lease(lease.fd, &mgl), -EINVAL);
+	igt_assert_eq(get_lease(data->lease.fd, &mgl), -EINVAL);
 	mgl.pad = 0;
 
 	/* invalid pointer */
 	mgl.objects_ptr = 0;
-	igt_assert_eq(get_lease(lease.fd, &mgl), -EFAULT);
+	igt_assert_eq(get_lease(data->lease.fd, &mgl), -EFAULT);
 
-	terminate_lease(&lease);
+	terminate_lease(data->lease.fd);
 }
 
 static void lease_unleased_crtc(data_t *data)
 {
-	lease_t lease;
 	enum pipe p;
 	uint32_t bad_crtc_id;
 	drmModeCrtc *crtc;
 	int ret;
 
 	/* Create a valid lease */
-	igt_assert_eq(make_lease(data, &lease), 0);
+	igt_assert_eq(make_lease(data), 0);
 
-	igt_display_require(&lease.display, lease.fd);
+	igt_display_require(&data->lease.display, data->lease.fd);
 
 	/* Find another CRTC that we don't control */
 	bad_crtc_id = 0;
@@ -798,36 +796,35 @@ static void lease_unleased_crtc(data_t *data)
 	igt_skip_on(bad_crtc_id == 0);
 
 	/* sanity check */
-	ret = drmModeSetCrtc(lease.fd, data->crtc_id, 0, 0, 0, NULL, 0, NULL);
+	ret = drmModeSetCrtc(data->lease.fd, data->crtc_id, 0, 0, 0, NULL, 0, NULL);
 	igt_assert_eq(ret, 0);
-	crtc = drmModeGetCrtc(lease.fd, data->crtc_id);
+	crtc = drmModeGetCrtc(data->lease.fd, data->crtc_id);
 	igt_assert(crtc);
 	drmModeFreeCrtc(crtc);
 
 	/* Attempt to use the unleased crtc id. We need raw ioctl to bypass the
 	 * igt_kms helpers.
 	 */
-	ret = drmModeSetCrtc(lease.fd, bad_crtc_id, 0, 0, 0, NULL, 0, NULL);
+	ret = drmModeSetCrtc(data->lease.fd, bad_crtc_id, 0, 0, 0, NULL, 0, NULL);
 	igt_assert_eq(ret, -ENOENT);
-	crtc = drmModeGetCrtc(lease.fd, bad_crtc_id);
+	crtc = drmModeGetCrtc(data->lease.fd, bad_crtc_id);
 	igt_assert(!crtc);
 	igt_assert_eq(errno, ENOENT);
 	drmModeFreeCrtc(crtc);
 
-	terminate_lease(&lease);
+	terminate_lease(data->lease.fd);
 }
 
 static void lease_unleased_connector(data_t *data)
 {
-	lease_t lease;
 	int o;
 	uint32_t bad_connector_id;
 	drmModeConnector *c;
 
 	/* Create a valid lease */
-	igt_assert_eq(make_lease(data, &lease), 0);
+	igt_assert_eq(make_lease(data), 0);
 
-	igt_display_require(&lease.display, lease.fd);
+	igt_display_require(&data->lease.display, data->lease.fd);
 
 	/* Find another connector that we don't control */
 	bad_connector_id = 0;
@@ -840,72 +837,70 @@ static void lease_unleased_connector(data_t *data)
 	igt_skip_on(bad_connector_id == 0);
 
 	/* sanity check */
-	c = drmModeGetConnector(lease.fd, data->connector_id);
+	c = drmModeGetConnector(data->lease.fd, data->connector_id);
 	igt_assert(c);
 
 	/* Attempt to use the unleased connector id. Note that the
 	 */
-	c = drmModeGetConnector(lease.fd, bad_connector_id);
+	c = drmModeGetConnector(data->lease.fd, bad_connector_id);
 	igt_assert(!c);
 	igt_assert_eq(errno, ENOENT);
 
-	terminate_lease(&lease);
+	terminate_lease(data->lease.fd);
 }
 
 /* Test revocation of lease */
 static void lease_revoke(data_t *data)
 {
-	lease_t lease;
 	struct drm_mode_revoke_lease mrl;
 	int ret;
 
 	/* Create a valid lease */
-	igt_assert_eq(make_lease(data, &lease), 0);
+	igt_assert_eq(make_lease(data), 0);
 
-	igt_display_require(&lease.display, lease.fd);
+	igt_display_require(&data->lease.display, data->lease.fd);
 
 	/* try to revoke an invalid lease */
 	mrl.lessee_id = 0;
 	igt_assert_eq(revoke_lease(data->master.fd, &mrl), -ENOENT);
 
 	/* try to revoke with the wrong fd */
-	mrl.lessee_id = lease.lessee_id;
-	igt_assert_eq(revoke_lease(lease.fd, &mrl), -EACCES);
+	mrl.lessee_id = data->lease.lessee_id;
+	igt_assert_eq(revoke_lease(data->lease.fd, &mrl), -EACCES);
 
 	/* Revoke the lease using the master fd */
-	mrl.lessee_id = lease.lessee_id;
+	mrl.lessee_id = data->lease.lessee_id;
 	igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
 
 	/* Try to use the leased objects */
-	ret = prepare_crtc(&lease, data);
+	ret = prepare_crtc(data, false);
 
 	/* Ensure that the expected error is returned */
 	igt_assert_eq(ret, -ENOENT);
 
-	terminate_lease(&lease);
+	terminate_lease(data->lease.fd);
 
 	/* make sure the lease is gone */
-	mrl.lessee_id = lease.lessee_id;
+	mrl.lessee_id = data->lease.lessee_id;
 	igt_assert_eq(revoke_lease(data->master.fd, &mrl), -ENOENT);
 }
 
 /* Test leasing objects more than once */
 static void lease_again(data_t *data)
 {
-	lease_t lease_a, lease_b;
 
 	/* Create a valid lease */
-	igt_assert_eq(make_lease(data, &lease_a), 0);
+	igt_assert_eq(make_lease(data), 0);
 
 	/* Attempt to re-lease the same objects */
-	igt_assert_eq(make_lease(data, &lease_b), -EBUSY);
+	igt_assert_eq(make_lease(data), -EBUSY);
 
-	terminate_lease(&lease_a);
+	terminate_lease(data->lease.fd);
 
 	/* Now attempt to lease the same objects */
-	igt_assert_eq(make_lease(data, &lease_b), 0);
+	igt_assert_eq(make_lease(data), 0);
 
-	terminate_lease(&lease_b);
+	terminate_lease(data->lease.fd);
 }
 
 #define assert_unleased(ret) \
@@ -915,14 +910,13 @@ static void lease_again(data_t *data)
 /* Test leasing an invalid connector */
 static void lease_invalid_connector(data_t *data)
 {
-	lease_t lease;
 	uint32_t save_connector_id;
 	int ret;
 
 	/* Create an invalid lease */
 	save_connector_id = data->connector_id;
 	data->connector_id = 0xbaadf00d;
-	ret = make_lease(data, &lease);
+	ret = make_lease(data);
 	data->connector_id = save_connector_id;
 	assert_unleased(ret);
 }
@@ -930,28 +924,26 @@ static void lease_invalid_connector(data_t *data)
 /* Test leasing an invalid crtc */
 static void lease_invalid_crtc(data_t *data)
 {
-	lease_t lease;
 	uint32_t save_crtc_id;
 	int ret;
 
 	/* Create an invalid lease */
 	save_crtc_id = data->crtc_id;
 	data->crtc_id = 0xbaadf00d;
-	ret = make_lease(data, &lease);
+	ret = make_lease(data);
 	data->crtc_id = save_crtc_id;
 	assert_unleased(ret);
 }
 
 static void lease_invalid_plane(data_t *data)
 {
-	lease_t lease;
 	uint32_t save_plane_id;
 	int ret;
 
 	/* Create an invalid lease */
 	save_plane_id = data->plane_id;
 	data->plane_id = 0xbaadf00d;
-	ret = make_lease(data, &lease);
+	ret = make_lease(data);
 	data->plane_id = save_plane_id;
 	assert_unleased(ret);
 }
@@ -1393,6 +1385,7 @@ igt_main
 									DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
 						f->func(&data);
 					}
+					terminate_lease(data.lease.fd);
 				}
 			}
 		}
-- 
2.25.1

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

* [igt-dev] [PATCH v3 2/2] tests/kms_lease: Add wrapper to create lease and store mcl.fd
  2023-10-03 19:02 [igt-dev] [PATCH v3 0/2] kms lease Mohammed Thasleem
  2023-10-03 19:02 ` [igt-dev] [PATCH v3 1/2] tests/kms_lease: Terminate lease fd before subtests and remove lease_t from all sub-tests Mohammed Thasleem
@ 2023-10-03 19:02 ` Mohammed Thasleem
  2023-10-06  4:38   ` Karthik B S
  2023-10-03 19:57 ` [igt-dev] ✓ Fi.CI.BAT: success for kms lease (rev5) Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Mohammed Thasleem @ 2023-10-03 19:02 UTC (permalink / raw)
  To: igt-dev

Add wrapper to create lease and store mcl.fd and add
wrapper to all required subtests.

v2: -Add wrapper to create lease and store mcl.fd. (Ankit)
    -Update terminate lease.
v3: Add wrapper to all required subtests. (Ankit)
v4: -Update create_lease. (Karthik)
v5: Use lease fd instead mcl.fd.

Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_lease.c | 142 ++++++++++++++++++++++++----------------------
 1 file changed, 73 insertions(+), 69 deletions(-)

diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index ad739677f..9cd69e2b5 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -279,15 +279,25 @@ static void cleanup_crtc(lease_t *lease, igt_output_t *output)
 	igt_display_commit(display);
 }
 
-static int create_lease(int fd, struct drm_mode_create_lease *mcl)
+static int _create_lease(int fd, struct drm_mode_create_lease *mcl)
 {
 	int err = 0;
-
 	if (igt_ioctl(fd, DRM_IOCTL_MODE_CREATE_LEASE, mcl))
 		err = -errno;
 	return err;
 }
 
+static int create_lease(int fd, struct drm_mode_create_lease *mcl, int *lease_fd)
+{
+	int ret;
+
+	ret = _create_lease(fd, mcl);
+
+	if (lease_fd != NULL)
+		*lease_fd = mcl->fd;
+	return ret;
+}
+
 static int revoke_lease(int fd, struct drm_mode_revoke_lease *mrl)
 {
 	int err = 0;
@@ -330,9 +340,7 @@ static int make_lease(data_t *data)
 	/* We use universal planes, must add the primary plane */
 	object_ids[mcl.object_count++] = data->plane_id;
 
-	ret = create_lease(data->master.fd, &mcl);
-	data->lease.fd = mcl.fd;
-
+	ret = create_lease(data->master.fd, &mcl, &data->lease.fd);
 	if (ret)
 		return ret;
 
@@ -394,9 +402,9 @@ static void empty_lease(data_t *data)
 {
 	struct drm_mode_create_lease mcl = {0};
 
-	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
+	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
 
-	close(mcl.fd);
+	close(data->lease.fd);
 }
 
 static void page_flip_implicit_plane(data_t *data)
@@ -428,7 +436,7 @@ static void page_flip_implicit_plane(data_t *data)
 	object_ids[mcl.object_count++] = data->crtc_id;
 
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
-	do_or_die(create_lease(data->master.fd, &mcl));
+	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
 
 	/* Set a mode on the leased output */
@@ -444,22 +452,22 @@ static void page_flip_implicit_plane(data_t *data)
 	igt_wait_for_vblank(data->master.fd,
 			display->pipes[pipe].crtc_offset);
 
-	do_or_die(drmModePageFlip(mcl.fd, data->crtc_id,
+	do_or_die(drmModePageFlip(data->lease.fd, data->crtc_id,
 			      data->master.primary_fb.fb_id,
 			      0, NULL));
-	close(mcl.fd);
+	close(data->lease.fd);
 
 	object_ids[mcl.object_count++] = wrong_plane_id;
-	do_or_die(create_lease(data->master.fd, &mcl));
+	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
 
 	igt_wait_for_vblank(data->master.fd,
 			display->pipes[pipe].crtc_offset);
 
-	igt_assert_eq(drmModePageFlip(mcl.fd, data->crtc_id,
+	igt_assert_eq(drmModePageFlip(data->lease.fd, data->crtc_id,
 				      data->master.primary_fb.fb_id,
 				      0, NULL),
 		      -EACCES);
-	close(mcl.fd);
+	close(data->lease.fd);
 
 	cleanup_crtc(&data->master,
 		     connector_id_to_output(&data->master.display, data->connector_id));
@@ -497,7 +505,7 @@ static void setcrtc_implicit_plane(data_t *data)
 	object_ids[mcl.object_count++] = data->crtc_id;
 
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
-	do_or_die(create_lease(data->master.fd, &mcl));
+	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
 
 	/*
@@ -505,7 +513,7 @@ static void setcrtc_implicit_plane(data_t *data)
 	 * then the client cap for aspect-ratio bits must be set.
 	 */
 	if (mode->flags & DRM_MODE_FLAG_PIC_AR_MASK) {
-		drmSetClientCap(mcl.fd, DRM_CLIENT_CAP_ASPECT_RATIO, 1);
+		drmSetClientCap(data->lease.fd, DRM_CLIENT_CAP_ASPECT_RATIO, 1);
 	}
 
 	/* Set a mode on the leased output */
@@ -514,23 +522,21 @@ static void setcrtc_implicit_plane(data_t *data)
 	/* sanity check */
 	ret = drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
 			     0, 0, object_ids, 1, mode);
-	ret_mcl = drmModeSetCrtc(mcl.fd, data->crtc_id, -1,
+	ret_mcl = drmModeSetCrtc(data->lease.fd, data->crtc_id, -1,
 				 0, 0, object_ids, 1, mode);
-	close(mcl.fd);
+	close(data->lease.fd);
 	igt_assert_eq(ret, 0);
 	igt_assert_eq(ret_mcl, 0);
 
 	object_ids[mcl.object_count++] = wrong_plane_id;
-	do_or_die(create_lease(data->master.fd, &mcl));
-	data->lease.fd = mcl.fd;
-
-	igt_assert_eq(drmModeSetCrtc(mcl.fd, data->crtc_id, -1,
+	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
+	igt_assert_eq(drmModeSetCrtc(data->lease.fd, data->crtc_id, -1,
 				     0, 0, object_ids, 1, mode),
 		      -EACCES);
 	/* make sure we are allowed to turn the CRTC off */
-	do_or_die(drmModeSetCrtc(mcl.fd, data->crtc_id,
+	do_or_die(drmModeSetCrtc(data->lease.fd, data->crtc_id,
 				 0, 0, 0, NULL, 0, NULL));
-	close(mcl.fd);
+	close(data->lease.fd);
 
 	cleanup_crtc(&data->master,
 		     connector_id_to_output(&data->master.display, data->connector_id));
@@ -549,7 +555,7 @@ static void cursor_implicit_plane(data_t *data)
 	object_ids[mcl.object_count++] = data->crtc_id;
 
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
-	do_or_die(create_lease(data->master.fd, &mcl));
+	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
 
 	/* Set a mode on the leased output */
@@ -557,16 +563,16 @@ static void cursor_implicit_plane(data_t *data)
 
 	/* sanity check */
 	do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
-	do_or_die(drmModeSetCursor(mcl.fd, data->crtc_id, 0, 0, 0));
-	close(mcl.fd);
+	do_or_die(drmModeSetCursor(data->lease.fd, data->crtc_id, 0, 0, 0));
+	close(data->lease.fd);
 
 	/* primary plane is never the cursor */
 	object_ids[mcl.object_count++] = data->plane_id;
-	do_or_die(create_lease(data->master.fd, &mcl));
+	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
 
-	igt_assert_eq(drmModeSetCursor(mcl.fd, data->crtc_id, 0, 0, 0),
+	igt_assert_eq(drmModeSetCursor(data->lease.fd, data->crtc_id, 0, 0, 0),
 		      -EACCES);
-	close(mcl.fd);
+	close(data->lease.fd);
 
 	cleanup_crtc(&data->master,
 		     connector_id_to_output(&data->master.display, data->connector_id));
@@ -624,8 +630,8 @@ static void atomic_implicit_crtc(data_t *data)
 	drmModeFreeObjectProperties(props);
 	igt_assert(crtc_id_prop);
 
-	do_or_die(create_lease(data->master.fd, &mcl));
-	do_or_die(drmSetClientCap(mcl.fd, DRM_CLIENT_CAP_ATOMIC, 1));
+	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
+	do_or_die(drmSetClientCap(data->lease.fd, DRM_CLIENT_CAP_ATOMIC, 1));
 
 	/* check CRTC_ID property on the plane */
 	req = drmModeAtomicAlloc();
@@ -638,7 +644,7 @@ static void atomic_implicit_crtc(data_t *data)
 	ret = drmModeAtomicCommit(data->master.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
 	igt_assert(ret == 0 || ret == -EINVAL);
 
-	ret = drmModeAtomicCommit(mcl.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
+	ret = drmModeAtomicCommit(data->lease.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
 	igt_assert(ret == -EACCES);
 	drmModeAtomicFree(req);
 
@@ -653,11 +659,11 @@ static void atomic_implicit_crtc(data_t *data)
 	ret = drmModeAtomicCommit(data->master.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
 	igt_assert(ret == 0 || ret == -EINVAL);
 
-	ret = drmModeAtomicCommit(mcl.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
+	ret = drmModeAtomicCommit(data->lease.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
 	igt_assert(ret == -EACCES);
 	drmModeAtomicFree(req);
 
-	close(mcl.fd);
+	close(data->lease.fd);
 }
 
 /* Test listing lessees */
@@ -961,76 +967,76 @@ static void invalid_create_leases(data_t *data)
 
 	/* NULL array pointer */
 	mcl.object_count = 1;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), -EFAULT);
+	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EFAULT);
 
 	/* nil object */
 	object_ids[0] = 0;
 	mcl.object_ids = (uint64_t) (uintptr_t) object_ids;
 	mcl.object_count = 1;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), -ENOENT);
+	igt_assert_eq(_create_lease(data->master.fd, &mcl), -ENOENT);
 
 	/* no crtc, non-universal_plane */
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
 	object_ids[0] = data->master.display.outputs[0].id;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
+	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
 
 	/* no connector, non-universal_plane */
 	object_ids[0] = data->master.display.pipes[0].crtc_id;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
+	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
 
 	/* sanity check */
 	object_ids[0] = data->master.display.pipes[0].crtc_id;
 	object_ids[1] = data->master.display.outputs[0].id;
 	mcl.object_count = 2;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
-	close(mcl.fd);
+	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
+	close(data->lease.fd);
 
 	/* no plane, universal planes */
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
-	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
+	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
 
 	/* sanity check */
 	object_ids[2] = igt_pipe_get_plane_type(&data->master.display.pipes[0],
 						DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
 	mcl.object_count = 3;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
-	close(mcl.fd);
+	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
+	close(data->lease.fd);
 
 	/* array overflow, do a small scan around overflow sizes */
 	for (int i = 1; i <= 4; i++) {
 		mcl.object_count = UINT32_MAX / sizeof(object_ids[0]) + i;
-		igt_assert_eq(create_lease(data->master.fd, &mcl), -ENOMEM);
+		igt_assert_eq(_create_lease(data->master.fd, &mcl), -ENOMEM);
 	}
 
 	/* sanity check */
 	mcl.object_count = 3;
 	mcl.flags = O_CLOEXEC | O_NONBLOCK;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
-	close(mcl.fd);
+	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
+	close(data->lease.fd);
 
 	/* invalid flags */
 	mcl.flags = -1;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
+	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
 
 	/* no subleasing */
 	mcl.object_count = 3;
 	mcl.flags = 0;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
-	tmp_fd = mcl.fd;
-	igt_assert_eq(create_lease(tmp_fd, &mcl), -EINVAL);
+	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
+	tmp_fd = data->lease.fd;
+	igt_assert_eq(_create_lease(tmp_fd, &mcl), -EINVAL);
 	close(tmp_fd);
 
 	/* no double-leasing */
-	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
-	tmp_fd = mcl.fd;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), -EBUSY);
+	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
+	tmp_fd = data->lease.fd;
+	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EBUSY);
 	close(tmp_fd);
 
 	/* no double leasing */
 	object_ids[3] = object_ids[2];
 	mcl.object_count = 4;
 	/* Note: the ENOSPC is from idr double-insertion failing */
-	ret = create_lease(data->master.fd, &mcl);
+	ret = _create_lease(data->master.fd, &mcl);
 	assert_double_id_err(ret);
 
 	/* no encoder leasing */
@@ -1038,7 +1044,7 @@ static void invalid_create_leases(data_t *data)
 	igt_assert(resources);
 	igt_assert(resources->count_encoders > 0);
 	object_ids[3] = resources->encoders[0];
-	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
+	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
 	drmModeFreeResources(resources);
 }
 
@@ -1124,19 +1130,17 @@ static void possible_crtcs_filtering(data_t *data)
 	mcl.flags = 0;
 
 	for (i = 0; i < resources->count_crtcs; i++) {
-		int lease_fd;
 
 		object_ids[mcl.object_count - 1] =
 			resources->crtcs[i];
 
-		igt_assert_eq(create_lease(master_fd, &mcl), 0);
-		lease_fd = mcl.fd;
+		igt_assert_eq(create_lease(master_fd, &mcl, &data->lease.fd), 0);
 
-		drmSetClientCap(lease_fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
+		drmSetClientCap(data->lease.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
 
-		check_crtc_masks(master_fd, lease_fd, 1 << i);
+		check_crtc_masks(master_fd, data->lease.fd, 1 << i);
 
-		close(lease_fd);
+		close(data->lease.fd);
 	}
 
 	free(object_ids);
@@ -1163,7 +1167,7 @@ static int _create_simple_lease(int master_fd, data_t *data, int expected_ret)
 	mcl.object_count = 3;
 	mcl.flags = 0;
 
-	igt_assert_eq(create_lease(master_fd, &mcl), expected_ret);
+	igt_assert_eq(_create_lease(master_fd, &mcl), expected_ret);
 
 	return expected_ret == 0 ? mcl.fd : 0;
 }
@@ -1257,32 +1261,32 @@ static void implicit_plane_lease(data_t *data)
 	mcl.flags = 0;
 
 	/* sanity check */
-	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
-	close(mcl.fd);
+	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
+	close(data->lease.fd);
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
 
 	/* non universal plane automatically adds primary/cursor plane */
 	mcl.object_count = 2;
-	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
+	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
 
 	mgl.pad = 0;
 	mgl.count_objects = 0;
 	mgl.objects_ptr = 0;
-	igt_assert_eq(get_lease(mcl.fd, &mgl), 0);
+	igt_assert_eq(get_lease(data->lease.fd, &mgl), 0);
 
 	igt_assert_eq(mgl.count_objects, 3 + (cursor_id ? 1 : 0));
 
-	close(mcl.fd);
+	close(data->lease.fd);
 
 	/* check that implicit lease doesn't lead to confusion when
 	 * explicitly adding primary plane */
 	mcl.object_count = 3;
-	ret = create_lease(data->master.fd, &mcl);
+	ret = _create_lease(data->master.fd, &mcl);
 	assert_double_id_err(ret);
 
 	/* same for the cursor */
 	object_ids[2] = cursor_id;
-	ret = create_lease(data->master.fd, &mcl);
+	ret = _create_lease(data->master.fd, &mcl);
 	assert_double_id_err(ret);
 
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
-- 
2.25.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for kms lease (rev5)
  2023-10-03 19:02 [igt-dev] [PATCH v3 0/2] kms lease Mohammed Thasleem
  2023-10-03 19:02 ` [igt-dev] [PATCH v3 1/2] tests/kms_lease: Terminate lease fd before subtests and remove lease_t from all sub-tests Mohammed Thasleem
  2023-10-03 19:02 ` [igt-dev] [PATCH v3 2/2] tests/kms_lease: Add wrapper to create lease and store mcl.fd Mohammed Thasleem
@ 2023-10-03 19:57 ` Patchwork
  2023-10-03 19:57 ` [igt-dev] ✗ CI.xeBAT: failure " Patchwork
  2023-10-03 22:03 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2023-10-03 19:57 UTC (permalink / raw)
  To: Mohammed Thasleem; +Cc: igt-dev

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

== Series Details ==

Series: kms lease (rev5)
URL   : https://patchwork.freedesktop.org/series/122944/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13706 -> IGTPW_9912
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (39 -> 40)
------------------------------

  Additional (3): fi-kbl-soraka bat-dg2-8 bat-dg2-9 
  Missing    (2): fi-snb-2520m fi-pnv-d510 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html

  * igt@gem_mmap@basic:
    - bat-dg2-9:          NOTRUN -> [SKIP][3] ([i915#4083])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@gem_mmap@basic.html
    - bat-dg2-8:          NOTRUN -> [SKIP][4] ([i915#4083])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@gem_mmap@basic.html

  * igt@gem_mmap_gtt@basic:
    - bat-dg2-9:          NOTRUN -> [SKIP][5] ([i915#4077]) +2 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@gem_mmap_gtt@basic.html
    - bat-dg2-8:          NOTRUN -> [SKIP][6] ([i915#4077]) +2 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@gem_mmap_gtt@basic.html

  * igt@gem_render_tiled_blits@basic:
    - bat-dg2-9:          NOTRUN -> [SKIP][7] ([i915#4079]) +1 other test skip
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@gem_render_tiled_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - bat-dg2-8:          NOTRUN -> [SKIP][8] ([i915#4079]) +1 other test skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rps@basic-api:
    - bat-dg2-9:          NOTRUN -> [SKIP][9] ([i915#6621])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@i915_pm_rps@basic-api.html
    - bat-dg2-8:          NOTRUN -> [SKIP][10] ([i915#6621])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@gt_pm:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][11] ([i915#1886] / [i915#7913])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_suspend@basic-s3-without-i915:
    - bat-dg2-8:          NOTRUN -> [SKIP][12] ([i915#6645])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-dg2-9:          NOTRUN -> [SKIP][13] ([i915#5190])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-dg2-8:          NOTRUN -> [SKIP][14] ([i915#5190])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg2-9:          NOTRUN -> [SKIP][15] ([i915#4215] / [i915#5190])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_addfb_basic@basic-y-tiled-legacy.html
    - bat-dg2-8:          NOTRUN -> [SKIP][16] ([i915#4215] / [i915#5190])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - bat-dg2-9:          NOTRUN -> [SKIP][17] ([i915#4212]) +6 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html
    - bat-dg2-8:          NOTRUN -> [SKIP][18] ([i915#4212]) +6 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
    - bat-dg2-9:          NOTRUN -> [SKIP][19] ([i915#4212] / [i915#5608])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_addfb_basic@tile-pitch-mismatch.html
    - bat-dg2-8:          NOTRUN -> [SKIP][20] ([i915#4212] / [i915#5608])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_addfb_basic@tile-pitch-mismatch.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-dg2-9:          NOTRUN -> [SKIP][21] ([i915#4103] / [i915#4213] / [i915#5608]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-dg2-8:          NOTRUN -> [SKIP][22] ([i915#4103] / [i915#4213] / [i915#5608]) +1 other test skip
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_dsc@dsc-basic:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][23] ([fdo#109271]) +9 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/fi-kbl-soraka/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-dg2-9:          NOTRUN -> [SKIP][24] ([fdo#109285])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_force_connector_basic@force-load-detect.html
    - bat-dg2-8:          NOTRUN -> [SKIP][25] ([fdo#109285])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_force_connector_basic@prune-stale-modes:
    - bat-dg2-9:          NOTRUN -> [SKIP][26] ([i915#5274])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_force_connector_basic@prune-stale-modes.html
    - bat-dg2-8:          NOTRUN -> [SKIP][27] ([i915#5274])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-dg2-11:         NOTRUN -> [SKIP][28] ([i915#1845]) +3 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  * igt@kms_psr@cursor_plane_move:
    - bat-dg2-8:          NOTRUN -> [SKIP][29] ([i915#1072]) +3 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_psr@cursor_plane_move.html

  * igt@kms_psr@sprite_plane_onoff:
    - bat-dg2-9:          NOTRUN -> [SKIP][30] ([i915#1072]) +3 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_psr@sprite_plane_onoff.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-dg2-9:          NOTRUN -> [SKIP][31] ([i915#3555])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-dg2-8:          NOTRUN -> [SKIP][32] ([i915#3555])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-flip:
    - bat-dg2-9:          NOTRUN -> [SKIP][33] ([i915#3708])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@prime_vgem@basic-fence-flip.html
    - bat-dg2-8:          NOTRUN -> [SKIP][34] ([i915#3708])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@prime_vgem@basic-fence-flip.html

  * igt@prime_vgem@basic-fence-mmap:
    - bat-dg2-8:          NOTRUN -> [SKIP][35] ([i915#3708] / [i915#4077]) +1 other test skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@prime_vgem@basic-fence-mmap.html
    - bat-dg2-9:          NOTRUN -> [SKIP][36] ([i915#3708] / [i915#4077]) +1 other test skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@prime_vgem@basic-fence-mmap.html

  * igt@prime_vgem@basic-write:
    - bat-dg2-9:          NOTRUN -> [SKIP][37] ([i915#3291] / [i915#3708]) +2 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-9/igt@prime_vgem@basic-write.html
    - bat-dg2-8:          NOTRUN -> [SKIP][38] ([i915#3291] / [i915#3708]) +2 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-8/igt@prime_vgem@basic-write.html

  
#### Possible fixes ####

  * igt@i915_module_load@load:
    - bat-adlp-6:         [DMESG-WARN][39] ([i915#1982] / [i915#8449]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/bat-adlp-6/igt@i915_module_load@load.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-adlp-6/igt@i915_module_load@load.html

  * igt@i915_selftest@live@mman:
    - bat-rpls-1:         [TIMEOUT][41] ([i915#6794] / [i915#7392]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/bat-rpls-1/igt@i915_selftest@live@mman.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-rpls-1/igt@i915_selftest@live@mman.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - bat-rpls-1:         [WARN][43] ([i915#8747]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/bat-rpls-1/igt@i915_suspend@basic-s2idle-without-i915.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-rpls-1/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
    - bat-rplp-1:         [ABORT][45] ([i915#8668]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-3:
    - bat-dg2-11:         [INCOMPLETE][47] -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-3.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-3.html

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

  [Intel XE#485]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/485
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [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#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5608]: https://gitlab.freedesktop.org/drm/intel/issues/5608
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
  [i915#6794]: https://gitlab.freedesktop.org/drm/intel/issues/6794
  [i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#8449]: https://gitlab.freedesktop.org/drm/intel/issues/8449
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#8747]: https://gitlab.freedesktop.org/drm/intel/issues/8747
  [i915#9360]: https://gitlab.freedesktop.org/drm/intel/issues/9360


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7510 -> IGTPW_9912

  CI-20190529: 20190529
  CI_DRM_13706: cbd5a99e7ee59fc4acc89d448ad548fa126b2dae @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9912: 9912
  IGT_7510: a4b4a33d8312e4e30ca23d26bbd1758e56540e1d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


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

-igt@xe_create@multigpu-create-massive-size

== Logs ==

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

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

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

* [igt-dev] ✗ CI.xeBAT: failure for kms lease (rev5)
  2023-10-03 19:02 [igt-dev] [PATCH v3 0/2] kms lease Mohammed Thasleem
                   ` (2 preceding siblings ...)
  2023-10-03 19:57 ` [igt-dev] ✓ Fi.CI.BAT: success for kms lease (rev5) Patchwork
@ 2023-10-03 19:57 ` Patchwork
  2023-10-03 22:03 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2023-10-03 19:57 UTC (permalink / raw)
  To: Mohammed Thasleem; +Cc: igt-dev

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

== Series Details ==

Series: kms lease (rev5)
URL   : https://patchwork.freedesktop.org/series/122944/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_7510_BAT -> XEIGTPW_9912_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_9912_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_9912_BAT, please notify your bug team (lgci.bug.filing@intel.com) 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_9912_BAT:

### IGT changes ###

#### Possible regressions ####

  * igt@core_hotunplug@unbind-rebind:
    - bat-dg2-oem2:       [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7510/bat-dg2-oem2/igt@core_hotunplug@unbind-rebind.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_9912/bat-dg2-oem2/igt@core_hotunplug@unbind-rebind.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - bat-dg2-oem2:       [PASS][3] -> [FAIL][4] ([Intel XE#480]) +1 other test fail
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7510/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_9912/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank.html

  
#### Possible fixes ####

  * igt@kms_flip@basic-flip-vs-wf_vblank@a-edp1:
    - bat-adlp-7:         [FAIL][5] ([Intel XE#480]) -> [PASS][6] +2 other tests pass
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7510/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@a-edp1.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_9912/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@a-edp1.html

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


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

  * IGT: IGT_7510 -> IGTPW_9912
  * Linux: xe-410-02ab43e36623665d8644d46162bd4ec5eeb68489 -> xe-411-090c3e92db31fbbe59a47d44f8dd7e8a1ccbcb36

  IGTPW_9912: 9912
  IGT_7510: a4b4a33d8312e4e30ca23d26bbd1758e56540e1d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-410-02ab43e36623665d8644d46162bd4ec5eeb68489: 02ab43e36623665d8644d46162bd4ec5eeb68489
  xe-411-090c3e92db31fbbe59a47d44f8dd7e8a1ccbcb36: 090c3e92db31fbbe59a47d44f8dd7e8a1ccbcb36

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for kms lease (rev5)
  2023-10-03 19:02 [igt-dev] [PATCH v3 0/2] kms lease Mohammed Thasleem
                   ` (3 preceding siblings ...)
  2023-10-03 19:57 ` [igt-dev] ✗ CI.xeBAT: failure " Patchwork
@ 2023-10-03 22:03 ` Patchwork
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2023-10-03 22:03 UTC (permalink / raw)
  To: Mohammed Thasleem; +Cc: igt-dev

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

== Series Details ==

Series: kms lease (rev5)
URL   : https://patchwork.freedesktop.org/series/122944/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13706_full -> IGTPW_9912_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@blit-reloc-keep-cache:
    - shard-dg2:          NOTRUN -> [SKIP][1] ([i915#8411])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@api_intel_bb@blit-reloc-keep-cache.html
    - shard-rkl:          NOTRUN -> [SKIP][2] ([i915#8411])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@api_intel_bb@blit-reloc-keep-cache.html
    - shard-dg1:          NOTRUN -> [SKIP][3] ([i915#8411])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-14/igt@api_intel_bb@blit-reloc-keep-cache.html

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-mtlp:         NOTRUN -> [SKIP][4] ([i915#8411])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@api_intel_bb@object-reloc-keep-cache.html

  * igt@debugfs_test@basic-hwmon:
    - shard-tglu:         NOTRUN -> [SKIP][5] ([i915#9318])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-2/igt@debugfs_test@basic-hwmon.html

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

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

  * igt@drm_fdinfo@all-busy-check-all:
    - shard-mtlp:         NOTRUN -> [SKIP][8] ([i915#8414]) +1 other test skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-5/igt@drm_fdinfo@all-busy-check-all.html

  * igt@drm_fdinfo@virtual-busy-idle:
    - shard-dg2:          NOTRUN -> [SKIP][9] ([i915#8414]) +1 other test skip
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@drm_fdinfo@virtual-busy-idle.html

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

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-tglu:         [PASS][12] -> [FAIL][13] ([i915#6268])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-tglu-8/igt@gem_ctx_exec@basic-nohangcheck.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-5/igt@gem_ctx_exec@basic-nohangcheck.html
    - shard-mtlp:         [PASS][14] -> [FAIL][15] ([i915#6268])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-8/igt@gem_ctx_exec@basic-nohangcheck.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-6/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_ctx_param@set-priority-not-supported:
    - shard-dg2:          NOTRUN -> [SKIP][16] ([fdo#109314])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@gem_ctx_param@set-priority-not-supported.html

  * igt@gem_ctx_persistence@heartbeat-many:
    - shard-dg2:          NOTRUN -> [SKIP][17] ([i915#8555])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@gem_ctx_persistence@heartbeat-many.html
    - shard-mtlp:         NOTRUN -> [SKIP][18] ([i915#8555])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@gem_ctx_persistence@heartbeat-many.html

  * igt@gem_ctx_persistence@saturated-hostile-nopreempt@ccs0:
    - shard-dg2:          NOTRUN -> [SKIP][19] ([i915#5882]) +9 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-6/igt@gem_ctx_persistence@saturated-hostile-nopreempt@ccs0.html

  * igt@gem_exec_balancer@bonded-sync:
    - shard-dg2:          NOTRUN -> [SKIP][20] ([i915#4771])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-2/igt@gem_exec_balancer@bonded-sync.html

  * igt@gem_exec_balancer@invalid-bonds:
    - shard-dg2:          NOTRUN -> [SKIP][21] ([i915#4036])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-11/igt@gem_exec_balancer@invalid-bonds.html
    - shard-mtlp:         NOTRUN -> [SKIP][22] ([i915#4036])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@gem_exec_balancer@invalid-bonds.html

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

  * igt@gem_exec_fair@basic-none-vip:
    - shard-mtlp:         NOTRUN -> [SKIP][24] ([i915#4473] / [i915#4771])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-7/igt@gem_exec_fair@basic-none-vip.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglu:         [PASS][25] -> [FAIL][26] ([i915#2842])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-tglu-6/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-2/igt@gem_exec_fair@basic-pace-share@rcs0.html

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

  * igt@gem_exec_fence@parallel@vcs0:
    - shard-mtlp:         [PASS][28] -> [DMESG-FAIL][29] ([i915#8962]) +2 other tests dmesg-fail
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-7/igt@gem_exec_fence@parallel@vcs0.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@gem_exec_fence@parallel@vcs0.html

  * igt@gem_exec_fence@parallel@vecs0:
    - shard-mtlp:         [PASS][30] -> [FAIL][31] ([i915#8957]) +2 other tests fail
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-7/igt@gem_exec_fence@parallel@vecs0.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@gem_exec_fence@parallel@vecs0.html

  * igt@gem_exec_fence@submit67:
    - shard-dg2:          NOTRUN -> [SKIP][32] ([i915#4812]) +1 other test skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-2/igt@gem_exec_fence@submit67.html

  * igt@gem_exec_flush@basic-uc-ro-default:
    - shard-dg2:          NOTRUN -> [SKIP][33] ([i915#3539] / [i915#4852]) +2 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@gem_exec_flush@basic-uc-ro-default.html

  * igt@gem_exec_flush@basic-wb-ro-default:
    - shard-dg1:          NOTRUN -> [SKIP][34] ([i915#3539] / [i915#4852])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-12/igt@gem_exec_flush@basic-wb-ro-default.html

  * igt@gem_exec_params@rsvd2-dirt:
    - shard-mtlp:         NOTRUN -> [SKIP][35] ([i915#5107])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-3/igt@gem_exec_params@rsvd2-dirt.html

  * igt@gem_exec_params@secure-non-master:
    - shard-mtlp:         NOTRUN -> [SKIP][36] ([fdo#112283])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-1/igt@gem_exec_params@secure-non-master.html

  * igt@gem_exec_reloc@basic-cpu-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][37] ([i915#3281]) +3 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-14/igt@gem_exec_reloc@basic-cpu-gtt.html

  * igt@gem_exec_reloc@basic-cpu-read-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][38] ([i915#3281]) +3 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@gem_exec_reloc@basic-cpu-read-noreloc.html

  * igt@gem_exec_reloc@basic-gtt-read:
    - shard-dg2:          NOTRUN -> [SKIP][39] ([i915#3281]) +12 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-6/igt@gem_exec_reloc@basic-gtt-read.html

  * igt@gem_exec_reloc@basic-write-read-active:
    - shard-rkl:          NOTRUN -> [SKIP][40] ([i915#3281]) +6 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@gem_exec_reloc@basic-write-read-active.html

  * igt@gem_exec_schedule@preempt-queue:
    - shard-dg1:          NOTRUN -> [SKIP][41] ([i915#4812])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-16/igt@gem_exec_schedule@preempt-queue.html

  * igt@gem_exec_schedule@preempt-queue-contexts-chain:
    - shard-mtlp:         NOTRUN -> [SKIP][42] ([i915#4537] / [i915#4812])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-3/igt@gem_exec_schedule@preempt-queue-contexts-chain.html

  * igt@gem_exec_schedule@reorder-wide:
    - shard-dg2:          NOTRUN -> [SKIP][43] ([i915#4537] / [i915#4812])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@gem_exec_schedule@reorder-wide.html

  * igt@gem_exec_suspend@basic-s4-devices@lmem0:
    - shard-dg1:          [PASS][44] -> [ABORT][45] ([i915#7975] / [i915#8213])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg1-12/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-14/igt@gem_exec_suspend@basic-s4-devices@lmem0.html

  * igt@gem_fence_thrash@bo-write-verify-x:
    - shard-dg2:          NOTRUN -> [SKIP][46] ([i915#4860]) +3 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@gem_fence_thrash@bo-write-verify-x.html

  * igt@gem_lmem_swapping@heavy-verify-random-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][47] ([i915#4613]) +1 other test skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-6/igt@gem_lmem_swapping@heavy-verify-random-ccs.html

  * igt@gem_lmem_swapping@parallel-random-verify:
    - shard-tglu:         NOTRUN -> [SKIP][48] ([i915#4613])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-5/igt@gem_lmem_swapping@parallel-random-verify.html

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

  * igt@gem_mmap@basic-small-bo:
    - shard-dg1:          NOTRUN -> [SKIP][50] ([i915#4083])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-19/igt@gem_mmap@basic-small-bo.html

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

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

  * igt@gem_mmap_gtt@cpuset-medium-copy-odd:
    - shard-mtlp:         NOTRUN -> [SKIP][53] ([i915#4077]) +4 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-3/igt@gem_mmap_gtt@cpuset-medium-copy-odd.html

  * igt@gem_mmap_gtt@fault-concurrent-y:
    - shard-snb:          [PASS][54] -> [INCOMPLETE][55] ([i915#5161])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-snb1/igt@gem_mmap_gtt@fault-concurrent-y.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-snb1/igt@gem_mmap_gtt@fault-concurrent-y.html

  * igt@gem_mmap_gtt@zero-extend:
    - shard-dg2:          NOTRUN -> [SKIP][56] ([i915#4077]) +11 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-11/igt@gem_mmap_gtt@zero-extend.html

  * igt@gem_mmap_wc@close:
    - shard-dg2:          NOTRUN -> [SKIP][57] ([i915#4083]) +8 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-6/igt@gem_mmap_wc@close.html

  * igt@gem_mmap_wc@set-cache-level:
    - shard-mtlp:         NOTRUN -> [SKIP][58] ([i915#4083]) +2 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@gem_mmap_wc@set-cache-level.html

  * igt@gem_partial_pwrite_pread@reads:
    - shard-mtlp:         NOTRUN -> [SKIP][59] ([i915#3282])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-3/igt@gem_partial_pwrite_pread@reads.html

  * igt@gem_pread@bench:
    - shard-dg1:          NOTRUN -> [SKIP][60] ([i915#3282]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-18/igt@gem_pread@bench.html

  * igt@gem_pxp@display-protected-crc:
    - shard-dg2:          NOTRUN -> [SKIP][61] ([i915#4270]) +4 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@gem_pxp@display-protected-crc.html
    - shard-mtlp:         NOTRUN -> [SKIP][62] ([i915#4270]) +2 other tests skip
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-5/igt@gem_pxp@display-protected-crc.html

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

  * igt@gem_readwrite@write-bad-handle:
    - shard-dg2:          NOTRUN -> [SKIP][64] ([i915#3282]) +5 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@gem_readwrite@write-bad-handle.html

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

  * igt@gem_softpin@evict-snoop:
    - shard-rkl:          NOTRUN -> [SKIP][66] ([fdo#109312])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-2/igt@gem_softpin@evict-snoop.html
    - shard-dg2:          NOTRUN -> [SKIP][67] ([i915#4885])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@gem_softpin@evict-snoop.html

  * igt@gem_tiled_partial_pwrite_pread@reads:
    - shard-rkl:          NOTRUN -> [SKIP][68] ([i915#3282]) +5 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-2/igt@gem_tiled_partial_pwrite_pread@reads.html

  * igt@gem_tiled_pread_pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][69] ([i915#4079])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@gem_tiled_pread_pwrite.html
    - shard-mtlp:         NOTRUN -> [SKIP][70] ([i915#4079])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@gem_tiled_pread_pwrite.html

  * igt@gem_unfence_active_buffers:
    - shard-dg2:          NOTRUN -> [SKIP][71] ([i915#4879])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-11/igt@gem_unfence_active_buffers.html
    - shard-mtlp:         NOTRUN -> [SKIP][72] ([i915#4879])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-7/igt@gem_unfence_active_buffers.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-rkl:          NOTRUN -> [SKIP][73] ([i915#3297]) +1 other test skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-dg2:          NOTRUN -> [SKIP][74] ([i915#3297] / [i915#4880])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@gem_userptr_blits@readonly-pwrite-unsync:
    - shard-tglu:         NOTRUN -> [SKIP][75] ([i915#3297])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-4/igt@gem_userptr_blits@readonly-pwrite-unsync.html

  * igt@gem_userptr_blits@readonly-unsync:
    - shard-dg1:          NOTRUN -> [SKIP][76] ([i915#3297])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-18/igt@gem_userptr_blits@readonly-unsync.html

  * igt@gem_userptr_blits@sd-probe:
    - shard-dg2:          NOTRUN -> [SKIP][77] ([i915#3297] / [i915#4958])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@gem_userptr_blits@sd-probe.html

  * igt@gem_userptr_blits@set-cache-level:
    - shard-mtlp:         NOTRUN -> [SKIP][78] ([i915#3297])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@gem_userptr_blits@set-cache-level.html

  * igt@gem_userptr_blits@unsync-unmap-cycles:
    - shard-dg2:          NOTRUN -> [SKIP][79] ([i915#3297]) +1 other test skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-2/igt@gem_userptr_blits@unsync-unmap-cycles.html

  * igt@gem_userptr_blits@vma-merge:
    - shard-dg2:          NOTRUN -> [FAIL][80] ([i915#3318])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@gem_userptr_blits@vma-merge.html

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

  * igt@gen7_exec_parse@basic-rejected:
    - shard-dg2:          NOTRUN -> [SKIP][82] ([fdo#109289]) +3 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-5/igt@gen7_exec_parse@basic-rejected.html
    - shard-rkl:          NOTRUN -> [SKIP][83] ([fdo#109289])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@gen7_exec_parse@basic-rejected.html

  * igt@gen7_exec_parse@bitmasks:
    - shard-tglu:         NOTRUN -> [SKIP][84] ([fdo#109289])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-5/igt@gen7_exec_parse@bitmasks.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-dg2:          NOTRUN -> [SKIP][85] ([i915#2856]) +2 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@batch-without-end:
    - shard-rkl:          NOTRUN -> [SKIP][86] ([i915#2527]) +3 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@gen9_exec_parse@batch-without-end.html
    - shard-dg1:          NOTRUN -> [SKIP][87] ([i915#2527])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-15/igt@gen9_exec_parse@batch-without-end.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-mtlp:         NOTRUN -> [SKIP][88] ([i915#2856])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-3/igt@gen9_exec_parse@bb-oversize.html

  * igt@i915_hangman@gt-engine-hang@vcs0:
    - shard-mtlp:         NOTRUN -> [FAIL][89] ([i915#7069])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-6/igt@i915_hangman@gt-engine-hang@vcs0.html

  * igt@i915_hwmon@hwmon-read:
    - shard-mtlp:         NOTRUN -> [SKIP][90] ([i915#7707])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-6/igt@i915_hwmon@hwmon-read.html

  * igt@i915_module_load@resize-bar:
    - shard-tglu:         NOTRUN -> [SKIP][91] ([i915#6412])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-10/igt@i915_module_load@resize-bar.html

  * igt@i915_pm_freq_api@freq-reset-multiple:
    - shard-rkl:          NOTRUN -> [SKIP][92] ([i915#8399])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@i915_pm_freq_api@freq-reset-multiple.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-dg1:          [PASS][93] -> [SKIP][94] ([i915#1397]) +2 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg1-16/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-19/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_pm_rpm@modeset-lpsp-stress:
    - shard-dg2:          NOTRUN -> [SKIP][95] ([i915#1397])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@i915_pm_rpm@modeset-lpsp-stress.html

  * igt@i915_pm_rps@reset:
    - shard-mtlp:         NOTRUN -> [FAIL][96] ([i915#8346])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@i915_pm_rps@reset.html

  * igt@i915_pm_rps@thresholds-idle-park@gt0:
    - shard-dg2:          NOTRUN -> [SKIP][97] ([i915#8925])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@i915_pm_rps@thresholds-idle-park@gt0.html

  * igt@i915_power@sanity:
    - shard-rkl:          NOTRUN -> [SKIP][98] ([i915#7984])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@i915_power@sanity.html

  * igt@i915_selftest@live@requests:
    - shard-mtlp:         [PASS][99] -> [ABORT][100] ([i915#9414])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-5/igt@i915_selftest@live@requests.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@i915_selftest@live@requests.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-rkl:          [PASS][101] -> [FAIL][102] ([fdo#103375]) +2 other tests fail
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-rkl-4/igt@i915_suspend@basic-s3-without-i915.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_addfb_basic@basic-x-tiled-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][103] ([i915#4212]) +1 other test skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-6/igt@kms_addfb_basic@basic-x-tiled-legacy.html

  * igt@kms_addfb_basic@bo-too-small-due-to-tiling:
    - shard-dg1:          NOTRUN -> [SKIP][104] ([i915#4212])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-15/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-dp-1:
    - shard-apl:          NOTRUN -> [FAIL][105] ([i915#2521])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl6/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-dp-1.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-edp-1:
    - shard-mtlp:         [PASS][106] -> [FAIL][107] ([i915#2521])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-1/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-edp-1.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-edp-1.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-1:
    - shard-tglu:         [PASS][108] -> [FAIL][109] ([i915#2521])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-tglu-7/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-1.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-2/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-1.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-2:
    - shard-glk:          [PASS][110] -> [FAIL][111] ([i915#2521]) +1 other test fail
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-2.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-glk8/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-2.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [FAIL][112] ([i915#2521])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-3.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-4:
    - shard-dg1:          [PASS][113] -> [FAIL][114] ([i915#2521])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg1-18/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-4.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-16/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-4.html

  * igt@kms_async_flips@crc@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [FAIL][115] ([i915#8247]) +3 other tests fail
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@kms_async_flips@crc@pipe-a-hdmi-a-3.html

  * igt@kms_async_flips@crc@pipe-b-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [FAIL][116] ([i915#8247]) +3 other tests fail
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-12/igt@kms_async_flips@crc@pipe-b-hdmi-a-3.html

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

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

  * igt@kms_big_fb@4-tiled-32bpp-rotate-180:
    - shard-rkl:          NOTRUN -> [SKIP][119] ([i915#5286]) +1 other test skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_big_fb@4-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-tglu:         NOTRUN -> [SKIP][120] ([fdo#111615] / [i915#5286])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-10/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

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

  * igt@kms_big_fb@linear-16bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][122] ([fdo#111614] / [i915#3638])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-2/igt@kms_big_fb@linear-16bpp-rotate-90.html

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

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

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-tglu:         [PASS][125] -> [FAIL][126] ([i915#3743])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-tglu-10/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-8/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-mtlp:         NOTRUN -> [SKIP][127] ([fdo#111615]) +1 other test skip
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-dg2:          NOTRUN -> [SKIP][128] ([i915#5190]) +20 other tests skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-dg2:          NOTRUN -> [SKIP][129] ([i915#4538] / [i915#5190]) +4 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-5/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-addfb:
    - shard-dg1:          NOTRUN -> [SKIP][130] ([fdo#111615])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-15/igt@kms_big_fb@yf-tiled-addfb.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-mtlp:         NOTRUN -> [SKIP][131] ([i915#6187])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-7/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

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

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-dg1:          NOTRUN -> [SKIP][133] ([i915#4538])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-19/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html

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

  * igt@kms_big_joiner@invalid-modeset:
    - shard-apl:          NOTRUN -> [SKIP][135] ([fdo#109271]) +25 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl6/igt@kms_big_joiner@invalid-modeset.html
    - shard-dg2:          NOTRUN -> [SKIP][136] ([i915#2705])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-5/igt@kms_big_joiner@invalid-modeset.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_dg2_rc_ccs_cc:
    - shard-tglu:         NOTRUN -> [SKIP][137] ([i915#5354] / [i915#6095]) +4 other tests skip
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-7/igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_dg2_rc_ccs_cc.html

  * igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_mc_ccs:
    - shard-rkl:          NOTRUN -> [SKIP][138] ([i915#3886] / [i915#5354] / [i915#6095]) +1 other test skip
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][139] ([fdo#109271] / [i915#3886])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl6/igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - shard-tglu:         NOTRUN -> [SKIP][140] ([i915#3689] / [i915#3886] / [i915#5354] / [i915#6095])
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-10/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs:
    - shard-rkl:          NOTRUN -> [SKIP][141] ([i915#5354] / [i915#6095]) +8 other tests skip
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs.html
    - shard-dg1:          NOTRUN -> [SKIP][142] ([i915#3689] / [i915#5354] / [i915#6095]) +3 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-17/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_mtl_mc_ccs:
    - shard-snb:          NOTRUN -> [SKIP][143] ([fdo#109271]) +47 other tests skip
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-snb2/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_mtl_mc_ccs.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-yf_tiled_ccs:
    - shard-rkl:          NOTRUN -> [SKIP][144] ([i915#3734] / [i915#5354] / [i915#6095]) +3 other tests skip
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@kms_ccs@pipe-b-ccs-on-another-bo-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][145] ([i915#3886] / [i915#5354] / [i915#6095]) +1 other test skip
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-random-ccs-data-4_tiled_dg2_mc_ccs:
    - shard-tglu:         NOTRUN -> [SKIP][146] ([i915#3689] / [i915#5354] / [i915#6095]) +2 other tests skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-9/igt@kms_ccs@pipe-b-random-ccs-data-4_tiled_dg2_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-rotation-90-4_tiled_mtl_mc_ccs:
    - shard-dg2:          NOTRUN -> [SKIP][147] ([i915#5354]) +57 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@kms_ccs@pipe-c-bad-rotation-90-4_tiled_mtl_mc_ccs.html
    - shard-rkl:          NOTRUN -> [SKIP][148] ([i915#5354]) +13 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_ccs@pipe-c-bad-rotation-90-4_tiled_mtl_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - shard-dg2:          NOTRUN -> [SKIP][149] ([i915#3689] / [i915#3886] / [i915#5354]) +13 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-bad-aux-stride-yf_tiled_ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][150] ([i915#5354] / [i915#6095]) +10 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-3/igt@kms_ccs@pipe-d-bad-aux-stride-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-d-crc-primary-basic-yf_tiled_ccs:
    - shard-dg2:          NOTRUN -> [SKIP][151] ([i915#3689] / [i915#5354]) +24 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@kms_ccs@pipe-d-crc-primary-basic-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc:
    - shard-dg1:          NOTRUN -> [SKIP][152] ([i915#5354] / [i915#6095]) +5 other tests skip
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-16/igt@kms_ccs@pipe-d-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc.html

  * igt@kms_cdclk@plane-scaling@pipe-b-dp-4:
    - shard-dg2:          NOTRUN -> [SKIP][153] ([i915#4087]) +3 other tests skip
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-11/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html

  * igt@kms_chamelium_audio@dp-audio:
    - shard-dg1:          NOTRUN -> [SKIP][154] ([i915#7828])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-16/igt@kms_chamelium_audio@dp-audio.html

  * igt@kms_chamelium_color@ctm-0-75:
    - shard-tglu:         NOTRUN -> [SKIP][155] ([fdo#111827])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-4/igt@kms_chamelium_color@ctm-0-75.html

  * igt@kms_chamelium_color@ctm-blue-to-red:
    - shard-mtlp:         NOTRUN -> [SKIP][156] ([fdo#111827]) +1 other test skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@kms_chamelium_color@ctm-blue-to-red.html

  * igt@kms_chamelium_color@ctm-green-to-red:
    - shard-dg2:          NOTRUN -> [SKIP][157] ([fdo#111827]) +2 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-2/igt@kms_chamelium_color@ctm-green-to-red.html
    - shard-rkl:          NOTRUN -> [SKIP][158] ([fdo#111827]) +1 other test skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@kms_chamelium_color@ctm-green-to-red.html

  * igt@kms_chamelium_edid@dp-edid-stress-resolution-4k:
    - shard-tglu:         NOTRUN -> [SKIP][159] ([i915#7828]) +1 other test skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-10/igt@kms_chamelium_edid@dp-edid-stress-resolution-4k.html

  * igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k:
    - shard-dg2:          NOTRUN -> [SKIP][160] ([i915#7828]) +9 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-5/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k.html
    - shard-mtlp:         NOTRUN -> [SKIP][161] ([i915#7828]) +2 other tests skip
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-6/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k.html

  * igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
    - shard-rkl:          NOTRUN -> [SKIP][162] ([i915#7828]) +1 other test skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-1/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html

  * igt@kms_color@deep-color:
    - shard-tglu:         NOTRUN -> [SKIP][163] ([i915#3555])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-10/igt@kms_color@deep-color.html

  * igt@kms_concurrent@pipe-d:
    - shard-rkl:          NOTRUN -> [SKIP][164] ([i915#4070] / [i915#533] / [i915#6768]) +2 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-2/igt@kms_concurrent@pipe-d.html

  * igt@kms_content_protection@atomic:
    - shard-dg2:          NOTRUN -> [SKIP][165] ([i915#7118])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-6/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-rkl:          NOTRUN -> [SKIP][166] ([i915#3116])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-dg2:          NOTRUN -> [SKIP][167] ([i915#3299])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_cursor_crc@cursor-offscreen-32x10:
    - shard-dg2:          NOTRUN -> [SKIP][168] ([i915#3555]) +5 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@kms_cursor_crc@cursor-offscreen-32x10.html

  * igt@kms_cursor_crc@cursor-offscreen-32x32:
    - shard-mtlp:         NOTRUN -> [SKIP][169] ([i915#3555] / [i915#8814])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-5/igt@kms_cursor_crc@cursor-offscreen-32x32.html

  * igt@kms_cursor_crc@cursor-offscreen-512x170:
    - shard-tglu:         NOTRUN -> [SKIP][170] ([fdo#109279] / [i915#3359])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-5/igt@kms_cursor_crc@cursor-offscreen-512x170.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-rkl:          NOTRUN -> [SKIP][171] ([fdo#109279] / [i915#3359])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-onscreen-max-size:
    - shard-dg1:          NOTRUN -> [SKIP][172] ([i915#3555]) +1 other test skip
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-19/igt@kms_cursor_crc@cursor-onscreen-max-size.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x512:
    - shard-mtlp:         NOTRUN -> [SKIP][173] ([i915#3359])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-6/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-32x10:
    - shard-rkl:          NOTRUN -> [SKIP][174] ([i915#3555]) +2 other tests skip
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@kms_cursor_crc@cursor-sliding-32x10.html

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

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][176] ([fdo#109274] / [fdo#111767] / [i915#5354])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
    - shard-mtlp:         NOTRUN -> [SKIP][177] ([i915#3546])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - shard-rkl:          NOTRUN -> [SKIP][178] ([i915#4103]) +1 other test skip
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - shard-mtlp:         NOTRUN -> [SKIP][179] ([i915#4213])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - shard-dg2:          NOTRUN -> [SKIP][180] ([i915#4103] / [i915#4213] / [i915#5608])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions:
    - shard-dg2:          NOTRUN -> [SKIP][181] ([fdo#109274] / [i915#5354]) +3 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-apl:          [PASS][182] -> [FAIL][183] ([i915#2346])
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
    - shard-glk:          [PASS][184] -> [FAIL][185] ([i915#2346])
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

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

  * igt@kms_cursor_legacy@single-bo@all-pipes:
    - shard-mtlp:         NOTRUN -> [DMESG-WARN][187] ([i915#2017])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@kms_cursor_legacy@single-bo@all-pipes.html

  * igt@kms_dsc@dsc-basic:
    - shard-rkl:          NOTRUN -> [SKIP][188] ([i915#3555] / [i915#3840])
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@kms_dsc@dsc-basic.html

  * igt@kms_flip@2x-dpms-vs-vblank-race-interruptible:
    - shard-mtlp:         NOTRUN -> [SKIP][189] ([i915#3637]) +4 other tests skip
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible.html

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

  * igt@kms_flip@2x-flip-vs-rmfb-interruptible:
    - shard-tglu:         NOTRUN -> [SKIP][191] ([fdo#109274] / [fdo#111767] / [i915#3637])
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-2/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html

  * igt@kms_flip@2x-plain-flip-ts-check:
    - shard-tglu:         NOTRUN -> [SKIP][192] ([fdo#109274] / [i915#3637])
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-2/igt@kms_flip@2x-plain-flip-ts-check.html

  * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][193] ([fdo#111825]) +2 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-2/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-wf_vblank-ts-check:
    - shard-dg2:          NOTRUN -> [SKIP][194] ([fdo#109274]) +6 other tests skip
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-5/igt@kms_flip@2x-wf_vblank-ts-check.html
    - shard-dg1:          NOTRUN -> [SKIP][195] ([fdo#111825]) +7 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-14/igt@kms_flip@2x-wf_vblank-ts-check.html

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

  * igt@kms_flip@flip-vs-suspend-interruptible@a-vga1:
    - shard-snb:          NOTRUN -> [DMESG-WARN][197] ([i915#8841]) +4 other tests dmesg-warn
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-snb5/igt@kms_flip@flip-vs-suspend-interruptible@a-vga1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][198] ([i915#2672]) +1 other test skip
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][199] ([i915#2672]) +5 other tests skip
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][200] ([i915#8810])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-default-mode.html

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

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][202] ([i915#8708]) +3 other tests skip
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-16/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][203] ([i915#8708]) +28 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu:
    - shard-dg2:          [PASS][204] -> [FAIL][205] ([i915#6880])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu.html
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - shard-mtlp:         NOTRUN -> [SKIP][206] ([i915#5460])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@kms_frontbuffer_tracking@fbc-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][207] ([i915#8708]) +1 other test skip
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-tglu:         NOTRUN -> [SKIP][208] ([fdo#109280]) +6 other tests skip
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][209] ([i915#3023]) +16 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-rte:
    - shard-dg2:          NOTRUN -> [SKIP][210] ([i915#3458]) +22 other tests skip
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-1p-rte.html
    - shard-dg1:          NOTRUN -> [SKIP][211] ([i915#3458]) +4 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-12/igt@kms_frontbuffer_tracking@psr-1p-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][212] ([fdo#111825] / [i915#1825]) +15 other tests skip
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
    - shard-mtlp:         NOTRUN -> [SKIP][213] ([i915#1825]) +15 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-gtt:
    - shard-tglu:         NOTRUN -> [SKIP][214] ([fdo#110189]) +3 other tests skip
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-3/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-gtt.html

  * igt@kms_getfb@getfb-reject-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][215] ([i915#6118])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-5/igt@kms_getfb@getfb-reject-ccs.html

  * igt@kms_hdr@static-swap:
    - shard-rkl:          NOTRUN -> [SKIP][216] ([i915#3555] / [i915#8228]) +1 other test skip
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-2/igt@kms_hdr@static-swap.html
    - shard-dg1:          NOTRUN -> [SKIP][217] ([i915#3555] / [i915#8228])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-15/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle:
    - shard-dg2:          NOTRUN -> [SKIP][218] ([i915#3555] / [i915#8228]) +1 other test skip
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@kms_hdr@static-toggle.html

  * igt@kms_panel_fitting@legacy:
    - shard-dg2:          NOTRUN -> [SKIP][219] ([i915#6301])
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@kms_panel_fitting@legacy.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1:
    - shard-apl:          [PASS][220] -> [INCOMPLETE][221] ([i915#9392]) +1 other test incomplete
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-apl6/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1.html
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl6/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1.html

  * igt@kms_plane_lowres@tiling-4@pipe-c-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][222] ([i915#3582]) +3 other tests skip
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-3/igt@kms_plane_lowres@tiling-4@pipe-c-edp-1.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-dg2:          NOTRUN -> [SKIP][223] ([i915#6953])
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [FAIL][224] ([i915#8292])
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-2/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-2.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][225] ([i915#5176]) +1 other test skip
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][226] ([i915#5235]) +3 other tests skip
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][227] ([i915#5235]) +15 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-hdmi-a-3.html

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

  * igt@kms_prime@d3hot:
    - shard-dg2:          NOTRUN -> [SKIP][229] ([i915#6524] / [i915#6805])
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-5/igt@kms_prime@d3hot.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-dg1:          NOTRUN -> [SKIP][230] ([fdo#111068] / [i915#658])
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-12/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-tglu:         NOTRUN -> [SKIP][231] ([fdo#109642] / [fdo#111068] / [i915#658])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-2/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-rkl:          NOTRUN -> [SKIP][232] ([fdo#111068] / [i915#658]) +2 other tests skip
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-dg2:          NOTRUN -> [SKIP][233] ([i915#658]) +3 other tests skip
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@kms_psr2_su@page_flip-xrgb8888.html
    - shard-apl:          NOTRUN -> [SKIP][234] ([fdo#109271] / [i915#658])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl2/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@cursor_blt:
    - shard-dg1:          NOTRUN -> [SKIP][235] ([i915#1072]) +1 other test skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-12/igt@kms_psr@cursor_blt.html

  * igt@kms_psr@cursor_render:
    - shard-rkl:          NOTRUN -> [SKIP][236] ([i915#1072]) +3 other tests skip
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_psr@cursor_render.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-dg2:          NOTRUN -> [SKIP][237] ([i915#1072]) +11 other tests skip
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-tglu:         NOTRUN -> [SKIP][238] ([i915#5289])
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-5/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

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

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-rkl:          NOTRUN -> [SKIP][240] ([fdo#111615] / [i915#5289])
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
    - shard-dg1:          NOTRUN -> [SKIP][241] ([fdo#111615] / [i915#5289])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-19/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-dg2:          NOTRUN -> [SKIP][242] ([i915#4235] / [i915#5190]) +1 other test skip
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-dg2:          NOTRUN -> [SKIP][243] ([i915#4235]) +2 other tests skip
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][244] ([i915#8875])
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-1/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html

  * igt@kms_sysfs_edid_timing:
    - shard-dg2:          NOTRUN -> [FAIL][245] ([IGT#2])
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-2/igt@kms_sysfs_edid_timing.html

  * igt@kms_universal_plane@cursor-fb-leak-pipe-a:
    - shard-snb:          [PASS][246] -> [FAIL][247] ([i915#9196])
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-snb1/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-snb1/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
    - shard-apl:          [PASS][248] -> [FAIL][249] ([i915#9196])
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-apl1/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl6/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html

  * igt@kms_vblank@pipe-c-accuracy-idle:
    - shard-rkl:          NOTRUN -> [SKIP][250] ([i915#4070] / [i915#6768])
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@kms_vblank@pipe-c-accuracy-idle.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-apl:          NOTRUN -> [SKIP][251] ([fdo#109271] / [i915#2437])
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl1/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@perf@global-sseu-config:
    - shard-dg2:          NOTRUN -> [SKIP][252] ([i915#7387])
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-11/igt@perf@global-sseu-config.html

  * igt@perf@non-zero-reason@0-rcs0:
    - shard-dg2:          [PASS][253] -> [FAIL][254] ([i915#7484])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg2-6/igt@perf@non-zero-reason@0-rcs0.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-11/igt@perf@non-zero-reason@0-rcs0.html

  * igt@perf_pmu@busy-double-start@rcs0:
    - shard-mtlp:         [PASS][255] -> [FAIL][256] ([i915#4349])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-6/igt@perf_pmu@busy-double-start@rcs0.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@perf_pmu@busy-double-start@rcs0.html

  * igt@perf_pmu@event-wait@rcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][257] ([i915#8807])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@perf_pmu@event-wait@rcs0.html

  * igt@perf_pmu@faulting-read@gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][258] ([i915#8440])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@perf_pmu@faulting-read@gtt.html

  * igt@perf_pmu@frequency@gt0:
    - shard-dg2:          NOTRUN -> [FAIL][259] ([i915#6806])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-11/igt@perf_pmu@frequency@gt0.html

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

  * igt@v3d/v3d_submit_cl@bad-bo:
    - shard-tglu:         NOTRUN -> [SKIP][261] ([fdo#109315] / [i915#2575])
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-4/igt@v3d/v3d_submit_cl@bad-bo.html

  * igt@v3d/v3d_submit_cl@simple-flush-cache:
    - shard-dg2:          NOTRUN -> [SKIP][262] ([i915#2575]) +14 other tests skip
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-2/igt@v3d/v3d_submit_cl@simple-flush-cache.html

  * igt@v3d/v3d_wait_bo@bad-bo:
    - shard-rkl:          NOTRUN -> [SKIP][263] ([fdo#109315]) +5 other tests skip
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@v3d/v3d_wait_bo@bad-bo.html

  * igt@v3d/v3d_wait_bo@used-bo-0ns:
    - shard-mtlp:         NOTRUN -> [SKIP][264] ([i915#2575]) +1 other test skip
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@v3d/v3d_wait_bo@used-bo-0ns.html

  * igt@vc4/vc4_purgeable_bo@mark-unpurgeable-twice:
    - shard-mtlp:         NOTRUN -> [SKIP][265] ([i915#7711]) +3 other tests skip
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@vc4/vc4_purgeable_bo@mark-unpurgeable-twice.html

  * igt@vc4/vc4_tiling@set-get:
    - shard-dg2:          NOTRUN -> [SKIP][266] ([i915#7711]) +8 other tests skip
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-1/igt@vc4/vc4_tiling@set-get.html

  * igt@vc4/vc4_wait_bo@bad-pad:
    - shard-dg1:          NOTRUN -> [SKIP][267] ([i915#7711]) +1 other test skip
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-18/igt@vc4/vc4_wait_bo@bad-pad.html

  * igt@vc4/vc4_wait_bo@unused-bo-1ns:
    - shard-rkl:          NOTRUN -> [SKIP][268] ([i915#7711]) +5 other tests skip
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@vc4/vc4_wait_bo@unused-bo-1ns.html

  
#### Possible fixes ####

  * igt@gem_ctx_freq@sysfs@gt0:
    - shard-dg2:          [FAIL][269] ([i915#6786]) -> [PASS][270]
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg2-11/igt@gem_ctx_freq@sysfs@gt0.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-7/igt@gem_ctx_freq@sysfs@gt0.html

  * igt@gem_ctx_persistence@engines-hostile@vcs0:
    - shard-mtlp:         [FAIL][271] ([i915#2410]) -> [PASS][272] +2 other tests pass
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-2/igt@gem_ctx_persistence@engines-hostile@vcs0.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-1/igt@gem_ctx_persistence@engines-hostile@vcs0.html

  * igt@gem_eio@hibernate:
    - shard-dg1:          [ABORT][273] ([i915#7975] / [i915#8213]) -> [PASS][274]
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg1-14/igt@gem_eio@hibernate.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-12/igt@gem_eio@hibernate.html

  * igt@gem_eio@unwedge-stress:
    - shard-dg1:          [FAIL][275] ([i915#5784]) -> [PASS][276]
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg1-15/igt@gem_eio@unwedge-stress.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-17/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-none@bcs0:
    - shard-rkl:          [FAIL][277] ([i915#2842]) -> [PASS][278]
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-rkl-6/igt@gem_exec_fair@basic-none@bcs0.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@gem_exec_fair@basic-none@bcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [FAIL][279] ([i915#2842]) -> [PASS][280]
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-glk2/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_schedule@noreorder-corked@vcs0:
    - shard-mtlp:         [FAIL][281] ([i915#8758]) -> [PASS][282]
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-4/igt@gem_exec_schedule@noreorder-corked@vcs0.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@gem_exec_schedule@noreorder-corked@vcs0.html

  * igt@gem_exec_schedule@preempt-engines@rcs0:
    - shard-mtlp:         [TIMEOUT][283] -> [PASS][284]
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-4/igt@gem_exec_schedule@preempt-engines@rcs0.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@gem_exec_schedule@preempt-engines@rcs0.html

  * igt@gem_exec_schedule@timeslicing@vcs1:
    - shard-mtlp:         [ABORT][285] ([i915#9262]) -> [PASS][286] +1 other test pass
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-4/igt@gem_exec_schedule@timeslicing@vcs1.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-8/igt@gem_exec_schedule@timeslicing@vcs1.html

  * igt@gem_exec_whisper@basic-fds-priority-all:
    - shard-mtlp:         [ABORT][287] ([i915#7392] / [i915#9262]) -> [PASS][288]
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-4/igt@gem_exec_whisper@basic-fds-priority-all.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-5/igt@gem_exec_whisper@basic-fds-priority-all.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg2:          [DMESG-WARN][289] ([i915#4936] / [i915#5493]) -> [PASS][290]
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg2-2/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg2-3/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [INCOMPLETE][291] ([i915#5566]) -> [PASS][292]
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-apl1/igt@gen9_exec_parse@allowed-single.html
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-apl1/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_hangman@gt-engine-error@vcs0:
    - shard-mtlp:         [FAIL][293] ([i915#7069]) -> [PASS][294]
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-2/igt@i915_hangman@gt-engine-error@vcs0.html
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-2/igt@i915_hangman@gt-engine-error@vcs0.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-rkl:          [SKIP][295] ([i915#1397]) -> [PASS][296]
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-rkl-7/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-1/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_pm_rpm@modeset-lpsp-stress:
    - shard-dg1:          [SKIP][297] ([i915#1397]) -> [PASS][298]
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-dg1-18/igt@i915_pm_rpm@modeset-lpsp-stress.html
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-dg1-19/igt@i915_pm_rpm@modeset-lpsp-stress.html

  * igt@i915_pm_rps@reset:
    - shard-snb:          [INCOMPLETE][299] ([i915#7790]) -> [PASS][300]
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-snb7/igt@i915_pm_rps@reset.html
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-snb7/igt@i915_pm_rps@reset.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-tglu:         [FAIL][301] ([i915#3743]) -> [PASS][302]
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-tglu-7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * {igt@kms_pm_dc@dc9-dpms}:
    - shard-tglu:         [SKIP][303] ([i915#4281]) -> [PASS][304]
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-tglu-8/igt@kms_pm_dc@dc9-dpms.html
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-9/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_rotation_crc@multiplane-rotation:
    - shard-rkl:          [INCOMPLETE][305] ([i915#8875]) -> [PASS][306] +1 other test pass
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-rkl-4/igt@kms_rotation_crc@multiplane-rotation.html
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_rotation_crc@multiplane-rotation.html

  * igt@kms_universal_plane@cursor-fb-leak-pipe-b:
    - shard-tglu:         [FAIL][307] ([i915#9196]) -> [PASS][308]
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-tglu-4/igt@kms_universal_plane@cursor-fb-leak-pipe-b.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-2/igt@kms_universal_plane@cursor-fb-leak-pipe-b.html

  
#### Warnings ####

  * igt@gem_exec_schedule@noreorder-corked@rcs0:
    - shard-mtlp:         [DMESG-FAIL][309] ([i915#8962]) -> [DMESG-WARN][310] ([i915#8962])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-mtlp-4/igt@gem_exec_schedule@noreorder-corked@rcs0.html
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-mtlp-4/igt@gem_exec_schedule@noreorder-corked@rcs0.html

  * igt@i915_pm_rc6_residency@rc6-idle@vcs0:
    - shard-tglu:         [FAIL][311] ([i915#2681] / [i915#3591]) -> [WARN][312] ([i915#2681])
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-tglu-10/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-tglu-8/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html

  * igt@kms_fbcon_fbt@psr:
    - shard-rkl:          [SKIP][313] ([fdo#110189] / [i915#3955]) -> [SKIP][314] ([i915#3955])
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-rkl-2/igt@kms_fbcon_fbt@psr.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-7/igt@kms_fbcon_fbt@psr.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-rkl:          [SKIP][315] ([i915#3955]) -> [SKIP][316] ([fdo#110189] / [i915#3955])
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-rkl-6/igt@kms_fbcon_fbt@psr-suspend.html
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-1/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_force_connector_basic@force-load-detect:
    - shard-rkl:          [SKIP][317] ([fdo#109285] / [i915#4098]) -> [SKIP][318] ([fdo#109285])
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-rkl-1/igt@kms_force_connector_basic@force-load-detect.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-6/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-rkl:          [SKIP][319] ([i915#4070] / [i915#4816]) -> [SKIP][320] ([i915#4816])
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13706/shard-rkl-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9912/shard-rkl-4/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

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

  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [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
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [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#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
  [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#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [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#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3582]: https://gitlab.freedesktop.org/drm/intel/issues/3582
  [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#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [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#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [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#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [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#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#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#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5107]: https://gitlab.freedesktop.org/drm/intel/issues/5107
  [i915#5161]: https://gitlab.freedesktop.org/drm/intel/issues/5161
  [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#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5460]: https://gitlab.freedesktop.org/drm/intel/issues/5460
  [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5608]: https://gitlab.freedesktop.org/drm/intel/issues/5608
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#5882]: https://gitlab.freedesktop.org/drm/intel/issues/5882
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6118]: https://gitlab.freedesktop.org/drm/intel/issues/6118
  [i915#6187]: https://gitlab.freedesktop.org/drm/intel/issues/6187
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6786]: https://gitlab.freedesktop.org/drm/intel/issues/6786
  [i915#6805]: https://gitlab.freedesktop.org/drm/intel/issues/6805
  [i915#6806]: https://gitlab.freedesktop.org/drm/intel/issues/6806
  [i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7069]: https://gitlab.freedesktop.org/drm/intel/issues/7069
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7387]: https://gitlab.freedesktop.org/drm/intel/issues/7387
  [i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
  [i915#7484]: https://gitlab.freedesktop.org/drm/intel/issues/7484
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7790]: https://gitlab.freedesktop.org/drm/intel/issues/7790
  [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#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
  [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
  [i915#8346]: https://gitlab.freedesktop.org/drm/intel/issues/8346
  [i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
  [i915#8399]: https://gitlab.freedesktop.org/drm/intel/issues/8399
  [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#8440]: https://gitlab.freedesktop.org/drm/intel/issues/8440
  [i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
  [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
  [i915#8758]: https://gitlab.freedesktop.org/drm/intel/issues/8758
  [i915#8807]: https://gitlab.freedesktop.org/drm/intel/issues/8807
  [i915#8810]: https://gitlab.freedesktop.org/drm/intel/issues/8810
  [i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814
  [i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841
  [i915#8875]: https://gitlab.freedesktop.org/drm/intel/issues/8875
  [i915#8925]: https://gitlab.freedesktop.org/drm/intel/issues/8925
  [i915#8957]: https://gitlab.freedesktop.org/drm/intel/issues/8957
  [i915#8962]: https://gitlab.freedesktop.org/drm/intel/issues/8962
  [i915#9053]: https://gitlab.freedesktop.org/drm/intel/issues/9053
  [i915#9196]: https://gitlab.freedesktop.org/drm/intel/issues/9196
  [i915#9262]: https://gitlab.freedesktop.org/drm/intel/issues/9262
  [i915#9295]: https://gitlab.freedesktop.org/drm/intel/issues/9295
  [i915#9318]: https://gitlab.freedesktop.org/drm/intel/issues/9318
  [i915#9337]: https://gitlab.freedesktop.org/drm/intel/issues/9337
  [i915#9392]: https://gitlab.freedesktop.org/drm/intel/issues/9392
  [i915#9412]: https://gitlab.freedesktop.org/drm/intel/issues/9412
  [i915#9414]: https://gitlab.freedesktop.org/drm/intel/issues/9414
  [i915#9423]: https://gitlab.freedesktop.org/drm/intel/issues/9423


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7510 -> IGTPW_9912
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_13706: cbd5a99e7ee59fc4acc89d448ad548fa126b2dae @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9912: 9912
  IGT_7510: a4b4a33d8312e4e30ca23d26bbd1758e56540e1d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH v3 1/2] tests/kms_lease: Terminate lease fd before subtests and remove lease_t from all sub-tests
  2023-10-03 19:02 ` [igt-dev] [PATCH v3 1/2] tests/kms_lease: Terminate lease fd before subtests and remove lease_t from all sub-tests Mohammed Thasleem
@ 2023-10-06  4:29   ` Karthik B S
  0 siblings, 0 replies; 8+ messages in thread
From: Karthik B S @ 2023-10-06  4:29 UTC (permalink / raw)
  To: Mohammed Thasleem, igt-dev

Hi,

On 10/4/2023 12:32 AM, Mohammed Thasleem wrote:
> Failures happen at drmModeSetCursor and prepare_crtc_master or
> prepare_crtc_lease which exit tests without termination of lease fd
> which resulting in resource busy for sub-sequence execution, when
> new lessor request for lease.
>
> Terminate the lease fd when any assert happen with out termination
%s/happen with out/happens without/
> of lease fd and on any drmModeSetCrtc or drmModeGetCrtc exit.
> Terminate lease fd on every display dependent subtests execution.
>
> Remove lease_t from all sub-tests and move it to data_t and
> send data struct instead lease struct and avoid dupicating

Typo: 'dupicating'.

Also I feel 'avoid duplicating of prepare_crtc' could be a different 
sentence all together to make it more readable.

> of prepare_crtc.
>
> v2: -Separated prepare crtc for master and lease.
>      -Replace close with terminate_lease.
>      -Removed lease_t from all sub-tests. (Ankit)
> v3: Updated commit message. (Ankit)
> v4: Avoid duplicating prepare_crtc. (Ankit)
> v5: Send fd to close instead structure address.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
> ---
>   tests/kms_lease.c | 129 ++++++++++++++++++++++------------------------
>   1 file changed, 61 insertions(+), 68 deletions(-)
>
> diff --git a/tests/kms_lease.c b/tests/kms_lease.c
> index 343cdb812..ad739677f 100644
> --- a/tests/kms_lease.c
> +++ b/tests/kms_lease.c
> @@ -211,6 +211,7 @@ typedef struct {
>   } lease_t;
>   
>   typedef struct {
> +	lease_t lease;
>   	lease_t master;
>   	enum pipe pipe;
>   	uint32_t crtc_id;
> @@ -226,9 +227,10 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
>   	return igt_output_from_connector(display, &connector);
>   }
>   
> -static int prepare_crtc(lease_t *lease, data_t *data)
> +static int prepare_crtc(data_t *data, bool is_master)
>   {
>   	drmModeModeInfo *mode;
> +	lease_t *lease = is_master ? &data->master : &data->lease;
>   	igt_display_t *display = &lease->display;
>   	igt_output_t *output = connector_id_to_output(display, data->connector_id);
>   	enum pipe pipe = display->pipes[data->pipe].pipe;
> @@ -248,7 +250,6 @@ static int prepare_crtc(lease_t *lease, data_t *data)
>   			    DRM_FORMAT_MOD_LINEAR,
>   			    0.0, 0.0, 0.0,
>   			    &lease->primary_fb);
> -
Please do not remove this new line.
>   	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
>   	igt_plane_set_fb(primary, &lease->primary_fb);
>   
> @@ -314,7 +315,7 @@ static int get_lease(int fd, struct drm_mode_get_lease *mgl)
>   	return err;
>   }
>   
> -static int make_lease(data_t *data, lease_t *lease)
> +static int make_lease(data_t *data)
>   {
>   	uint32_t object_ids[3];
>   	struct drm_mode_create_lease mcl;
> @@ -330,18 +331,18 @@ static int make_lease(data_t *data, lease_t *lease)
>   	object_ids[mcl.object_count++] = data->plane_id;
>   
>   	ret = create_lease(data->master.fd, &mcl);
> +	data->lease.fd = mcl.fd;
Any reason why we need to move this before the 'ret' check?
>   
>   	if (ret)
>   		return ret;
>   
> -	lease->fd = mcl.fd;
> -	lease->lessee_id = mcl.lessee_id;
> +	data->lease.lessee_id = mcl.lessee_id;
>   	return 0;
>   }
>   
> -static void terminate_lease(lease_t *lease)
> +static void terminate_lease(int lease_fd)
>   {
> -	close(lease->fd);
> +	close(lease_fd);
>   }
>   
>   static int paint_fb(int drm_fd, struct igt_fb *fb, const char *test_name,
> @@ -370,24 +371,23 @@ static void simple_lease(data_t *data)
>   {
>   	enum pipe pipe = data->pipe;
>   
> -	lease_t lease;
> -
>   	/* Create a valid lease */
> -	igt_assert_eq(make_lease(data, &lease), 0);
> +	igt_assert_eq(make_lease(data), 0);
>   
> -	igt_display_require(&lease.display, lease.fd);
> +	igt_display_require(&data->lease.display, data->lease.fd);
>   
>   	/* Set a mode on the leased output */
> -	igt_assert_eq(0, prepare_crtc(&lease, data));
> +	igt_assert_eq(0, prepare_crtc(data, false));
>   
>   	/* Paint something attractive */
> -	paint_fb(lease.fd, &lease.primary_fb, "simple-lease",
> -		 lease.mode->name, igt_output_name(lease.output), kmstest_pipe_name(pipe));
> +	paint_fb(data->lease.fd, &data->lease.primary_fb, "simple-lease",
> +		 data->lease.mode->name, igt_output_name(data->lease.output),
> +		 kmstest_pipe_name(pipe));
>   	igt_debug_wait_for_keypress("lease");
> -	cleanup_crtc(&lease,
> -		     connector_id_to_output(&lease.display, data->connector_id));
> +	cleanup_crtc(&data->lease,
> +		     connector_id_to_output(&data->lease.display, data->connector_id));
>   
> -	terminate_lease(&lease);
> +	terminate_lease(data->lease.fd);
>   }
>   
>   static void empty_lease(data_t *data)
> @@ -432,7 +432,7 @@ static void page_flip_implicit_plane(data_t *data)
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>   
>   	/* Set a mode on the leased output */
> -	igt_assert_eq(0, prepare_crtc(&data->master, data));
> +	igt_assert_eq(0, prepare_crtc(data, true));
>   
>   	/* sanity check */
>   	do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
> @@ -509,7 +509,7 @@ static void setcrtc_implicit_plane(data_t *data)
>   	}
>   
>   	/* Set a mode on the leased output */
> -	igt_assert_eq(0, prepare_crtc(&data->master, data));
> +	igt_assert_eq(0, prepare_crtc(data, true));
>   
>   	/* sanity check */
>   	ret = drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
> @@ -522,6 +522,7 @@ static void setcrtc_implicit_plane(data_t *data)
>   
>   	object_ids[mcl.object_count++] = wrong_plane_id;
>   	do_or_die(create_lease(data->master.fd, &mcl));
> +	data->lease.fd = mcl.fd;
>   
>   	igt_assert_eq(drmModeSetCrtc(mcl.fd, data->crtc_id, -1,
>   				     0, 0, object_ids, 1, mode),
> @@ -552,7 +553,7 @@ static void cursor_implicit_plane(data_t *data)
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>   
>   	/* Set a mode on the leased output */
> -	igt_assert_eq(0, prepare_crtc(&data->master, data));
> +	igt_assert_eq(0, prepare_crtc(data, true));
>   
>   	/* sanity check */
>   	do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
> @@ -569,7 +570,7 @@ static void cursor_implicit_plane(data_t *data)
>   
>   	cleanup_crtc(&data->master,
>   		     connector_id_to_output(&data->master.display, data->connector_id));
> -}
> +	}
Please fix the spacing on this.
>   
>   static void atomic_implicit_crtc(data_t *data)
>   {
> @@ -662,19 +663,18 @@ static void atomic_implicit_crtc(data_t *data)
>   /* Test listing lessees */
>   static void lessee_list(data_t *data)
>   {
> -	lease_t lease;
>   	struct drm_mode_list_lessees mll;
>   	uint32_t lessees[1];
>   
>   	mll.pad = 0;
>   
>   	/* Create a valid lease */
> -	igt_assert_eq(make_lease(data, &lease), 0);
> +	igt_assert_eq(make_lease(data), 0);
>   
>   	/* check for nested leases */
>   	mll.count_lessees = 0;
>   	mll.lessees_ptr = 0;
> -	igt_assert_eq(list_lessees(lease.fd, &mll), 0);
> +	igt_assert_eq(list_lessees(data->lease.fd, &mll), 0);
>   	igt_assert_eq(mll.count_lessees, 0);
>   
>   	/* Get the number of lessees */
> @@ -696,14 +696,14 @@ static void lessee_list(data_t *data)
>   	igt_assert_eq(mll.count_lessees, 1);
>   
>   	/* Make sure the listed lease is the same as the one we created */
> -	igt_assert_eq(lessees[0], lease.lessee_id);
> +	igt_assert_eq(lessees[0], data->lease.lessee_id);
>   
>   	/* invalid pad */
>   	mll.pad = -1;
>   	igt_assert_eq(list_lessees(data->master.fd, &mll), -EINVAL);
>   	mll.pad = 0;
>   
> -	terminate_lease(&lease);
> +	terminate_lease(data->lease.fd);
>   
>   	/* Make sure the lease is gone */
>   	igt_assert_eq(list_lessees(data->master.fd, &mll), 0);
> @@ -713,7 +713,6 @@ static void lessee_list(data_t *data)
>   /* Test getting the contents of a lease */
>   static void lease_get(data_t *data)
>   {
> -	lease_t lease;
>   	struct drm_mode_get_lease mgl;
>   	int num_leased_obj = 3;
>   	uint32_t objects[num_leased_obj];
> @@ -722,12 +721,12 @@ static void lease_get(data_t *data)
>   	mgl.pad = 0;
>   
>   	/* Create a valid lease */
> -	igt_assert_eq(make_lease(data, &lease), 0);
> +	igt_assert_eq(make_lease(data), 0);
>   
>   	/* Get the number of objects */
>   	mgl.count_objects = 0;
>   	mgl.objects_ptr = 0;
> -	igt_assert_eq(get_lease(lease.fd, &mgl), 0);
> +	igt_assert_eq(get_lease(data->lease.fd, &mgl), 0);
>   
>   	/* Make sure it's 2 */
>   	igt_assert_eq(mgl.count_objects, num_leased_obj);
> @@ -735,7 +734,7 @@ static void lease_get(data_t *data)
>   	/* Get the objects */
>   	mgl.objects_ptr = (uint64_t) (uintptr_t) objects;
>   
> -	igt_assert_eq(get_lease(lease.fd, &mgl), 0);
> +	igt_assert_eq(get_lease(data->lease.fd, &mgl), 0);
>   
>   	/* Make sure it's 2 */
>   	igt_assert_eq(mgl.count_objects, num_leased_obj);
> @@ -761,28 +760,27 @@ static void lease_get(data_t *data)
>   
>   	/* invalid pad */
>   	mgl.pad = -1;
> -	igt_assert_eq(get_lease(lease.fd, &mgl), -EINVAL);
> +	igt_assert_eq(get_lease(data->lease.fd, &mgl), -EINVAL);
>   	mgl.pad = 0;
>   
>   	/* invalid pointer */
>   	mgl.objects_ptr = 0;
> -	igt_assert_eq(get_lease(lease.fd, &mgl), -EFAULT);
> +	igt_assert_eq(get_lease(data->lease.fd, &mgl), -EFAULT);
>   
> -	terminate_lease(&lease);
> +	terminate_lease(data->lease.fd);
Is this 'terminate_lease' still required within the subtest as anyway 
its called again?
>   }
>   
>   static void lease_unleased_crtc(data_t *data)
>   {
> -	lease_t lease;
>   	enum pipe p;
>   	uint32_t bad_crtc_id;
>   	drmModeCrtc *crtc;
>   	int ret;
>   
>   	/* Create a valid lease */
> -	igt_assert_eq(make_lease(data, &lease), 0);
> +	igt_assert_eq(make_lease(data), 0);
>   
> -	igt_display_require(&lease.display, lease.fd);
> +	igt_display_require(&data->lease.display, data->lease.fd);
>   
>   	/* Find another CRTC that we don't control */
>   	bad_crtc_id = 0;
> @@ -798,36 +796,35 @@ static void lease_unleased_crtc(data_t *data)
>   	igt_skip_on(bad_crtc_id == 0);
>   
>   	/* sanity check */
> -	ret = drmModeSetCrtc(lease.fd, data->crtc_id, 0, 0, 0, NULL, 0, NULL);
> +	ret = drmModeSetCrtc(data->lease.fd, data->crtc_id, 0, 0, 0, NULL, 0, NULL);
>   	igt_assert_eq(ret, 0);
> -	crtc = drmModeGetCrtc(lease.fd, data->crtc_id);
> +	crtc = drmModeGetCrtc(data->lease.fd, data->crtc_id);
>   	igt_assert(crtc);
>   	drmModeFreeCrtc(crtc);
>   
>   	/* Attempt to use the unleased crtc id. We need raw ioctl to bypass the
>   	 * igt_kms helpers.
>   	 */
> -	ret = drmModeSetCrtc(lease.fd, bad_crtc_id, 0, 0, 0, NULL, 0, NULL);
> +	ret = drmModeSetCrtc(data->lease.fd, bad_crtc_id, 0, 0, 0, NULL, 0, NULL);
>   	igt_assert_eq(ret, -ENOENT);
> -	crtc = drmModeGetCrtc(lease.fd, bad_crtc_id);
> +	crtc = drmModeGetCrtc(data->lease.fd, bad_crtc_id);
>   	igt_assert(!crtc);
>   	igt_assert_eq(errno, ENOENT);
>   	drmModeFreeCrtc(crtc);
>   
> -	terminate_lease(&lease);
> +	terminate_lease(data->lease.fd);
Same as above.
>   }
>   
>   static void lease_unleased_connector(data_t *data)
>   {
> -	lease_t lease;
>   	int o;
>   	uint32_t bad_connector_id;
>   	drmModeConnector *c;
>   
>   	/* Create a valid lease */
> -	igt_assert_eq(make_lease(data, &lease), 0);
> +	igt_assert_eq(make_lease(data), 0);
>   
> -	igt_display_require(&lease.display, lease.fd);
> +	igt_display_require(&data->lease.display, data->lease.fd);
>   
>   	/* Find another connector that we don't control */
>   	bad_connector_id = 0;
> @@ -840,72 +837,70 @@ static void lease_unleased_connector(data_t *data)
>   	igt_skip_on(bad_connector_id == 0);
>   
>   	/* sanity check */
> -	c = drmModeGetConnector(lease.fd, data->connector_id);
> +	c = drmModeGetConnector(data->lease.fd, data->connector_id);
>   	igt_assert(c);
>   
>   	/* Attempt to use the unleased connector id. Note that the
>   	 */
> -	c = drmModeGetConnector(lease.fd, bad_connector_id);
> +	c = drmModeGetConnector(data->lease.fd, bad_connector_id);
>   	igt_assert(!c);
>   	igt_assert_eq(errno, ENOENT);
>   
> -	terminate_lease(&lease);
> +	terminate_lease(data->lease.fd);
Same as above.
>   }
>   
>   /* Test revocation of lease */
>   static void lease_revoke(data_t *data)
>   {
> -	lease_t lease;
>   	struct drm_mode_revoke_lease mrl;
>   	int ret;
>   
>   	/* Create a valid lease */
> -	igt_assert_eq(make_lease(data, &lease), 0);
> +	igt_assert_eq(make_lease(data), 0);
>   
> -	igt_display_require(&lease.display, lease.fd);
> +	igt_display_require(&data->lease.display, data->lease.fd);
>   
>   	/* try to revoke an invalid lease */
>   	mrl.lessee_id = 0;
>   	igt_assert_eq(revoke_lease(data->master.fd, &mrl), -ENOENT);
>   
>   	/* try to revoke with the wrong fd */
> -	mrl.lessee_id = lease.lessee_id;
> -	igt_assert_eq(revoke_lease(lease.fd, &mrl), -EACCES);
> +	mrl.lessee_id = data->lease.lessee_id;
> +	igt_assert_eq(revoke_lease(data->lease.fd, &mrl), -EACCES);
>   
>   	/* Revoke the lease using the master fd */
> -	mrl.lessee_id = lease.lessee_id;
> +	mrl.lessee_id = data->lease.lessee_id;
>   	igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
>   
>   	/* Try to use the leased objects */
> -	ret = prepare_crtc(&lease, data);
> +	ret = prepare_crtc(data, false);
>   
>   	/* Ensure that the expected error is returned */
>   	igt_assert_eq(ret, -ENOENT);
>   
> -	terminate_lease(&lease);
> +	terminate_lease(data->lease.fd);
Same as above.
>   
>   	/* make sure the lease is gone */
> -	mrl.lessee_id = lease.lessee_id;
> +	mrl.lessee_id = data->lease.lessee_id;
>   	igt_assert_eq(revoke_lease(data->master.fd, &mrl), -ENOENT);
>   }
>   
>   /* Test leasing objects more than once */
>   static void lease_again(data_t *data)
>   {
> -	lease_t lease_a, lease_b;
>   
>   	/* Create a valid lease */
> -	igt_assert_eq(make_lease(data, &lease_a), 0);
> +	igt_assert_eq(make_lease(data), 0);
>   
>   	/* Attempt to re-lease the same objects */
> -	igt_assert_eq(make_lease(data, &lease_b), -EBUSY);
> +	igt_assert_eq(make_lease(data), -EBUSY);
>   
> -	terminate_lease(&lease_a);
> +	terminate_lease(data->lease.fd);
>   
>   	/* Now attempt to lease the same objects */
> -	igt_assert_eq(make_lease(data, &lease_b), 0);
> +	igt_assert_eq(make_lease(data), 0);
>   
> -	terminate_lease(&lease_b);
> +	terminate_lease(data->lease.fd);

Same as above.

This also there in a few other places. Basically the question is if we 
required the terminate_lease call at the end of subtests anymore?

Thanks,
Karthik.B.S

>   }
>   
>   #define assert_unleased(ret) \
> @@ -915,14 +910,13 @@ static void lease_again(data_t *data)
>   /* Test leasing an invalid connector */
>   static void lease_invalid_connector(data_t *data)
>   {
> -	lease_t lease;
>   	uint32_t save_connector_id;
>   	int ret;
>   
>   	/* Create an invalid lease */
>   	save_connector_id = data->connector_id;
>   	data->connector_id = 0xbaadf00d;
> -	ret = make_lease(data, &lease);
> +	ret = make_lease(data);
>   	data->connector_id = save_connector_id;
>   	assert_unleased(ret);
>   }
> @@ -930,28 +924,26 @@ static void lease_invalid_connector(data_t *data)
>   /* Test leasing an invalid crtc */
>   static void lease_invalid_crtc(data_t *data)
>   {
> -	lease_t lease;
>   	uint32_t save_crtc_id;
>   	int ret;
>   
>   	/* Create an invalid lease */
>   	save_crtc_id = data->crtc_id;
>   	data->crtc_id = 0xbaadf00d;
> -	ret = make_lease(data, &lease);
> +	ret = make_lease(data);
>   	data->crtc_id = save_crtc_id;
>   	assert_unleased(ret);
>   }
>   
>   static void lease_invalid_plane(data_t *data)
>   {
> -	lease_t lease;
>   	uint32_t save_plane_id;
>   	int ret;
>   
>   	/* Create an invalid lease */
>   	save_plane_id = data->plane_id;
>   	data->plane_id = 0xbaadf00d;
> -	ret = make_lease(data, &lease);
> +	ret = make_lease(data);
>   	data->plane_id = save_plane_id;
>   	assert_unleased(ret);
>   }
> @@ -1393,6 +1385,7 @@ igt_main
>   									DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
>   						f->func(&data);
>   					}
> +					terminate_lease(data.lease.fd);
>   				}
>   			}
>   		}

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

* Re: [igt-dev] [PATCH v3 2/2] tests/kms_lease: Add wrapper to create lease and store mcl.fd
  2023-10-03 19:02 ` [igt-dev] [PATCH v3 2/2] tests/kms_lease: Add wrapper to create lease and store mcl.fd Mohammed Thasleem
@ 2023-10-06  4:38   ` Karthik B S
  0 siblings, 0 replies; 8+ messages in thread
From: Karthik B S @ 2023-10-06  4:38 UTC (permalink / raw)
  To: Mohammed Thasleem, igt-dev

Hi,

On 10/4/2023 12:32 AM, Mohammed Thasleem wrote:
> Add wrapper to create lease and store mcl.fd and add
> wrapper to all required subtests.
Could you please rephrase this.
>
> v2: -Add wrapper to create lease and store mcl.fd. (Ankit)
>      -Update terminate lease.
> v3: Add wrapper to all required subtests. (Ankit)
> v4: -Update create_lease. (Karthik)
> v5: Use lease fd instead mcl.fd.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
> ---
>   tests/kms_lease.c | 142 ++++++++++++++++++++++++----------------------
>   1 file changed, 73 insertions(+), 69 deletions(-)
>
> diff --git a/tests/kms_lease.c b/tests/kms_lease.c
> index ad739677f..9cd69e2b5 100644
> --- a/tests/kms_lease.c
> +++ b/tests/kms_lease.c
> @@ -279,15 +279,25 @@ static void cleanup_crtc(lease_t *lease, igt_output_t *output)
>   	igt_display_commit(display);
>   }
>   
> -static int create_lease(int fd, struct drm_mode_create_lease *mcl)
> +static int _create_lease(int fd, struct drm_mode_create_lease *mcl)
>   {
>   	int err = 0;
> -
Please do not remove this new line.
>   	if (igt_ioctl(fd, DRM_IOCTL_MODE_CREATE_LEASE, mcl))
>   		err = -errno;
>   	return err;
>   }
>   
> +static int create_lease(int fd, struct drm_mode_create_lease *mcl, int *lease_fd)
> +{
> +	int ret;
> +
> +	ret = _create_lease(fd, mcl);
> +
> +	if (lease_fd != NULL)
> +		*lease_fd = mcl->fd;
> +	return ret;
> +}
> +
>   static int revoke_lease(int fd, struct drm_mode_revoke_lease *mrl)
>   {
>   	int err = 0;
> @@ -330,9 +340,7 @@ static int make_lease(data_t *data)
>   	/* We use universal planes, must add the primary plane */
>   	object_ids[mcl.object_count++] = data->plane_id;
>   
> -	ret = create_lease(data->master.fd, &mcl);
> -	data->lease.fd = mcl.fd;
> -
> +	ret = create_lease(data->master.fd, &mcl, &data->lease.fd);
>   	if (ret)
>   		return ret;
>   
> @@ -394,9 +402,9 @@ static void empty_lease(data_t *data)
>   {
>   	struct drm_mode_create_lease mcl = {0};
>   
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
> +	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
>   
> -	close(mcl.fd);
> +	close(data->lease.fd);
>   }
>   
>   static void page_flip_implicit_plane(data_t *data)
> @@ -428,7 +436,7 @@ static void page_flip_implicit_plane(data_t *data)
>   	object_ids[mcl.object_count++] = data->crtc_id;
>   
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
> -	do_or_die(create_lease(data->master.fd, &mcl));
> +	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>   
>   	/* Set a mode on the leased output */
> @@ -444,22 +452,22 @@ static void page_flip_implicit_plane(data_t *data)
>   	igt_wait_for_vblank(data->master.fd,
>   			display->pipes[pipe].crtc_offset);
>   
> -	do_or_die(drmModePageFlip(mcl.fd, data->crtc_id,
> +	do_or_die(drmModePageFlip(data->lease.fd, data->crtc_id,
This should be part of patch 1 as this patch is all about the wrapper 
and its usage.
>   			      data->master.primary_fb.fb_id,
>   			      0, NULL));
> -	close(mcl.fd);
> +	close(data->lease.fd);
Same here.
>   
>   	object_ids[mcl.object_count++] = wrong_plane_id;
> -	do_or_die(create_lease(data->master.fd, &mcl));
> +	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
>   
>   	igt_wait_for_vblank(data->master.fd,
>   			display->pipes[pipe].crtc_offset);
>   
> -	igt_assert_eq(drmModePageFlip(mcl.fd, data->crtc_id,
> +	igt_assert_eq(drmModePageFlip(data->lease.fd, data->crtc_id,
>   				      data->master.primary_fb.fb_id,
>   				      0, NULL),
>   		      -EACCES);
> -	close(mcl.fd);
> +	close(data->lease.fd);

Same here. (And in multiple other places)

Please move anything not dealing with the wrapper to the first patch or 
even a separate patch if you find that more appropriate.

>   
>   	cleanup_crtc(&data->master,
>   		     connector_id_to_output(&data->master.display, data->connector_id));
> @@ -497,7 +505,7 @@ static void setcrtc_implicit_plane(data_t *data)
>   	object_ids[mcl.object_count++] = data->crtc_id;
>   
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
> -	do_or_die(create_lease(data->master.fd, &mcl));
> +	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>   
>   	/*
> @@ -505,7 +513,7 @@ static void setcrtc_implicit_plane(data_t *data)
>   	 * then the client cap for aspect-ratio bits must be set.
>   	 */
>   	if (mode->flags & DRM_MODE_FLAG_PIC_AR_MASK) {
> -		drmSetClientCap(mcl.fd, DRM_CLIENT_CAP_ASPECT_RATIO, 1);
> +		drmSetClientCap(data->lease.fd, DRM_CLIENT_CAP_ASPECT_RATIO, 1);
>   	}
>   
>   	/* Set a mode on the leased output */
> @@ -514,23 +522,21 @@ static void setcrtc_implicit_plane(data_t *data)
>   	/* sanity check */
>   	ret = drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
>   			     0, 0, object_ids, 1, mode);
> -	ret_mcl = drmModeSetCrtc(mcl.fd, data->crtc_id, -1,
> +	ret_mcl = drmModeSetCrtc(data->lease.fd, data->crtc_id, -1,
>   				 0, 0, object_ids, 1, mode);
> -	close(mcl.fd);
> +	close(data->lease.fd);
>   	igt_assert_eq(ret, 0);
>   	igt_assert_eq(ret_mcl, 0);
>   
>   	object_ids[mcl.object_count++] = wrong_plane_id;
> -	do_or_die(create_lease(data->master.fd, &mcl));
> -	data->lease.fd = mcl.fd;
> -
> -	igt_assert_eq(drmModeSetCrtc(mcl.fd, data->crtc_id, -1,
> +	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
> +	igt_assert_eq(drmModeSetCrtc(data->lease.fd, data->crtc_id, -1,
>   				     0, 0, object_ids, 1, mode),
>   		      -EACCES);
>   	/* make sure we are allowed to turn the CRTC off */
> -	do_or_die(drmModeSetCrtc(mcl.fd, data->crtc_id,
> +	do_or_die(drmModeSetCrtc(data->lease.fd, data->crtc_id,
>   				 0, 0, 0, NULL, 0, NULL));
> -	close(mcl.fd);
> +	close(data->lease.fd);
>   
>   	cleanup_crtc(&data->master,
>   		     connector_id_to_output(&data->master.display, data->connector_id));
> @@ -549,7 +555,7 @@ static void cursor_implicit_plane(data_t *data)
>   	object_ids[mcl.object_count++] = data->crtc_id;
>   
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
> -	do_or_die(create_lease(data->master.fd, &mcl));
> +	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>   
>   	/* Set a mode on the leased output */
> @@ -557,16 +563,16 @@ static void cursor_implicit_plane(data_t *data)
>   
>   	/* sanity check */
>   	do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
> -	do_or_die(drmModeSetCursor(mcl.fd, data->crtc_id, 0, 0, 0));
> -	close(mcl.fd);
> +	do_or_die(drmModeSetCursor(data->lease.fd, data->crtc_id, 0, 0, 0));
> +	close(data->lease.fd);
>   
>   	/* primary plane is never the cursor */
>   	object_ids[mcl.object_count++] = data->plane_id;
> -	do_or_die(create_lease(data->master.fd, &mcl));
> +	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
>   
> -	igt_assert_eq(drmModeSetCursor(mcl.fd, data->crtc_id, 0, 0, 0),
> +	igt_assert_eq(drmModeSetCursor(data->lease.fd, data->crtc_id, 0, 0, 0),
>   		      -EACCES);
> -	close(mcl.fd);
> +	close(data->lease.fd);
>   
>   	cleanup_crtc(&data->master,
>   		     connector_id_to_output(&data->master.display, data->connector_id));
> @@ -624,8 +630,8 @@ static void atomic_implicit_crtc(data_t *data)
>   	drmModeFreeObjectProperties(props);
>   	igt_assert(crtc_id_prop);
>   
> -	do_or_die(create_lease(data->master.fd, &mcl));
> -	do_or_die(drmSetClientCap(mcl.fd, DRM_CLIENT_CAP_ATOMIC, 1));
> +	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
> +	do_or_die(drmSetClientCap(data->lease.fd, DRM_CLIENT_CAP_ATOMIC, 1));
>   
>   	/* check CRTC_ID property on the plane */
>   	req = drmModeAtomicAlloc();
> @@ -638,7 +644,7 @@ static void atomic_implicit_crtc(data_t *data)
>   	ret = drmModeAtomicCommit(data->master.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
>   	igt_assert(ret == 0 || ret == -EINVAL);
>   
> -	ret = drmModeAtomicCommit(mcl.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
> +	ret = drmModeAtomicCommit(data->lease.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
>   	igt_assert(ret == -EACCES);
>   	drmModeAtomicFree(req);
>   
> @@ -653,11 +659,11 @@ static void atomic_implicit_crtc(data_t *data)
>   	ret = drmModeAtomicCommit(data->master.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
>   	igt_assert(ret == 0 || ret == -EINVAL);
>   
> -	ret = drmModeAtomicCommit(mcl.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
> +	ret = drmModeAtomicCommit(data->lease.fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
>   	igt_assert(ret == -EACCES);
>   	drmModeAtomicFree(req);
>   
> -	close(mcl.fd);
> +	close(data->lease.fd);
>   }
>   
>   /* Test listing lessees */
> @@ -961,76 +967,76 @@ static void invalid_create_leases(data_t *data)
>   
>   	/* NULL array pointer */
>   	mcl.object_count = 1;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), -EFAULT);
> +	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EFAULT);

Do not call '_create_lease' from anywhere outside 'create_lease'. 
Otherwise the wrapper doesn't add any value.

Also, please ensure that we've results for kms_lease on patchwork.

Thanks,
Karthik.B.S
>   
>   	/* nil object */
>   	object_ids[0] = 0;
>   	mcl.object_ids = (uint64_t) (uintptr_t) object_ids;
>   	mcl.object_count = 1;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), -ENOENT);
> +	igt_assert_eq(_create_lease(data->master.fd, &mcl), -ENOENT);
>   
>   	/* no crtc, non-universal_plane */
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
>   	object_ids[0] = data->master.display.outputs[0].id;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
> +	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
>   
>   	/* no connector, non-universal_plane */
>   	object_ids[0] = data->master.display.pipes[0].crtc_id;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
> +	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
>   
>   	/* sanity check */
>   	object_ids[0] = data->master.display.pipes[0].crtc_id;
>   	object_ids[1] = data->master.display.outputs[0].id;
>   	mcl.object_count = 2;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
> -	close(mcl.fd);
> +	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
> +	close(data->lease.fd);
>   
>   	/* no plane, universal planes */
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
> +	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
>   
>   	/* sanity check */
>   	object_ids[2] = igt_pipe_get_plane_type(&data->master.display.pipes[0],
>   						DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
>   	mcl.object_count = 3;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
> -	close(mcl.fd);
> +	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
> +	close(data->lease.fd);
>   
>   	/* array overflow, do a small scan around overflow sizes */
>   	for (int i = 1; i <= 4; i++) {
>   		mcl.object_count = UINT32_MAX / sizeof(object_ids[0]) + i;
> -		igt_assert_eq(create_lease(data->master.fd, &mcl), -ENOMEM);
> +		igt_assert_eq(_create_lease(data->master.fd, &mcl), -ENOMEM);
>   	}
>   
>   	/* sanity check */
>   	mcl.object_count = 3;
>   	mcl.flags = O_CLOEXEC | O_NONBLOCK;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
> -	close(mcl.fd);
> +	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
> +	close(data->lease.fd);
>   
>   	/* invalid flags */
>   	mcl.flags = -1;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
> +	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
>   
>   	/* no subleasing */
>   	mcl.object_count = 3;
>   	mcl.flags = 0;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
> -	tmp_fd = mcl.fd;
> -	igt_assert_eq(create_lease(tmp_fd, &mcl), -EINVAL);
> +	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
> +	tmp_fd = data->lease.fd;
> +	igt_assert_eq(_create_lease(tmp_fd, &mcl), -EINVAL);
>   	close(tmp_fd);
>   
>   	/* no double-leasing */
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
> -	tmp_fd = mcl.fd;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), -EBUSY);
> +	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
> +	tmp_fd = data->lease.fd;
> +	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EBUSY);
>   	close(tmp_fd);
>   
>   	/* no double leasing */
>   	object_ids[3] = object_ids[2];
>   	mcl.object_count = 4;
>   	/* Note: the ENOSPC is from idr double-insertion failing */
> -	ret = create_lease(data->master.fd, &mcl);
> +	ret = _create_lease(data->master.fd, &mcl);
>   	assert_double_id_err(ret);
>   
>   	/* no encoder leasing */
> @@ -1038,7 +1044,7 @@ static void invalid_create_leases(data_t *data)
>   	igt_assert(resources);
>   	igt_assert(resources->count_encoders > 0);
>   	object_ids[3] = resources->encoders[0];
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), -EINVAL);
> +	igt_assert_eq(_create_lease(data->master.fd, &mcl), -EINVAL);
>   	drmModeFreeResources(resources);
>   }
>   
> @@ -1124,19 +1130,17 @@ static void possible_crtcs_filtering(data_t *data)
>   	mcl.flags = 0;
>   
>   	for (i = 0; i < resources->count_crtcs; i++) {
> -		int lease_fd;
>   
>   		object_ids[mcl.object_count - 1] =
>   			resources->crtcs[i];
>   
> -		igt_assert_eq(create_lease(master_fd, &mcl), 0);
> -		lease_fd = mcl.fd;
> +		igt_assert_eq(create_lease(master_fd, &mcl, &data->lease.fd), 0);
>   
> -		drmSetClientCap(lease_fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
> +		drmSetClientCap(data->lease.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>   
> -		check_crtc_masks(master_fd, lease_fd, 1 << i);
> +		check_crtc_masks(master_fd, data->lease.fd, 1 << i);
>   
> -		close(lease_fd);
> +		close(data->lease.fd);
>   	}
>   
>   	free(object_ids);
> @@ -1163,7 +1167,7 @@ static int _create_simple_lease(int master_fd, data_t *data, int expected_ret)
>   	mcl.object_count = 3;
>   	mcl.flags = 0;
>   
> -	igt_assert_eq(create_lease(master_fd, &mcl), expected_ret);
> +	igt_assert_eq(_create_lease(master_fd, &mcl), expected_ret);
>   
>   	return expected_ret == 0 ? mcl.fd : 0;
>   }
> @@ -1257,32 +1261,32 @@ static void implicit_plane_lease(data_t *data)
>   	mcl.flags = 0;
>   
>   	/* sanity check */
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
> -	close(mcl.fd);
> +	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
> +	close(data->lease.fd);
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
>   
>   	/* non universal plane automatically adds primary/cursor plane */
>   	mcl.object_count = 2;
> -	igt_assert_eq(create_lease(data->master.fd, &mcl), 0);
> +	igt_assert_eq(create_lease(data->master.fd, &mcl, &data->lease.fd), 0);
>   
>   	mgl.pad = 0;
>   	mgl.count_objects = 0;
>   	mgl.objects_ptr = 0;
> -	igt_assert_eq(get_lease(mcl.fd, &mgl), 0);
> +	igt_assert_eq(get_lease(data->lease.fd, &mgl), 0);
>   
>   	igt_assert_eq(mgl.count_objects, 3 + (cursor_id ? 1 : 0));
>   
> -	close(mcl.fd);
> +	close(data->lease.fd);
>   
>   	/* check that implicit lease doesn't lead to confusion when
>   	 * explicitly adding primary plane */
>   	mcl.object_count = 3;
> -	ret = create_lease(data->master.fd, &mcl);
> +	ret = _create_lease(data->master.fd, &mcl);
>   	assert_double_id_err(ret);
>   
>   	/* same for the cursor */
>   	object_ids[2] = cursor_id;
> -	ret = create_lease(data->master.fd, &mcl);
> +	ret = _create_lease(data->master.fd, &mcl);
>   	assert_double_id_err(ret);
>   
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);

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

end of thread, other threads:[~2023-10-06  4:39 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-03 19:02 [igt-dev] [PATCH v3 0/2] kms lease Mohammed Thasleem
2023-10-03 19:02 ` [igt-dev] [PATCH v3 1/2] tests/kms_lease: Terminate lease fd before subtests and remove lease_t from all sub-tests Mohammed Thasleem
2023-10-06  4:29   ` Karthik B S
2023-10-03 19:02 ` [igt-dev] [PATCH v3 2/2] tests/kms_lease: Add wrapper to create lease and store mcl.fd Mohammed Thasleem
2023-10-06  4:38   ` Karthik B S
2023-10-03 19:57 ` [igt-dev] ✓ Fi.CI.BAT: success for kms lease (rev5) Patchwork
2023-10-03 19:57 ` [igt-dev] ✗ CI.xeBAT: failure " Patchwork
2023-10-03 22:03 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox