All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory
@ 2021-10-14 11:09 apoorva1.singh
  2021-10-14 11:40 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/prime_mmap: Add support for local memory (rev2) Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: apoorva1.singh @ 2021-10-14 11:09 UTC (permalink / raw)
  To: zbigniew.kempczynski, arjun.melkaveri, igt-dev

From: Andrzej Turko <andrzej.turko@linux.intel.com>

Add support for local memory region (Device memory)

v2:
  - Replace igt_skip_on() with igt_assert(), as with TTM
    backend this test will not be able to run on discrete
    currently.
  - Fix minor line wrap changes.

Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com>
Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Melkaveri, Arjun <arjun.melkaveri@intel.com>
---
 tests/prime_mmap.c | 254 +++++++++++++++++++++++++++------------------
 1 file changed, 154 insertions(+), 100 deletions(-)

diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
index a4e4b4b6..adbfaa22 100644
--- a/tests/prime_mmap.c
+++ b/tests/prime_mmap.c
@@ -42,11 +42,14 @@
 
 #include "drm.h"
 #include "drmtest.h"
+#include "igt.h"
+#include "igt_collection.h"
 #include "i915_drm.h"
 #include "i915/gem_create.h"
 #include "i915/gem_mman.h"
 #include "igt_debugfs.h"
 #include "ioctl_wrappers.h"
+#include "i915/intel_memory_region.h"
 
 #define BO_SIZE (16*1024)
 
@@ -68,119 +71,123 @@ fill_bo(uint32_t handle, size_t size)
 }
 
 static void
-fill_bo_cpu(char *ptr)
+fill_bo_cpu(char *ptr, size_t size)
 {
-	memcpy(ptr, pattern, sizeof(pattern));
+	off_t i;
+	for (i = 0; i < size; i += sizeof(pattern))
+	{
+		memcpy(ptr + i, pattern, sizeof(pattern));
+	}
 }
 
 static void
-test_correct(void)
+test_correct(uint32_t region, int size)
 {
 	int dma_buf_fd;
 	char *ptr1, *ptr2;
 	uint32_t handle;
 
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	igt_assert(errno == 0);
 
 	/* Check correctness vs GEM_MMAP */
-	ptr1 = gem_mmap__device_coherent(fd, handle, 0, BO_SIZE, PROT_READ);
-	ptr2 = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr1 = gem_mmap__device_coherent(fd, handle, 0, size, PROT_READ);
+	ptr2 = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr1 != MAP_FAILED);
 	igt_assert(ptr2 != MAP_FAILED);
-	igt_assert(memcmp(ptr1, ptr2, BO_SIZE) == 0);
+	igt_assert(memcmp(ptr1, ptr2, size) == 0);
 
 	/* Check pattern correctness */
 	igt_assert(memcmp(ptr2, pattern, sizeof(pattern)) == 0);
 
-	munmap(ptr1, BO_SIZE);
-	munmap(ptr2, BO_SIZE);
+	munmap(ptr1, size);
+	munmap(ptr2, size);
 	close(dma_buf_fd);
 	gem_close(fd, handle);
 }
 
 static void
-test_map_unmap(void)
+test_map_unmap(uint32_t region, int size)
 {
 	int dma_buf_fd;
 	char *ptr;
 	uint32_t handle;
 
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	igt_assert(errno == 0);
 
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr != MAP_FAILED);
 	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
 
 	/* Unmap and remap */
-	munmap(ptr, BO_SIZE);
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	munmap(ptr, size);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr != MAP_FAILED);
 	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
 
-	munmap(ptr, BO_SIZE);
+	munmap(ptr, size);
 	close(dma_buf_fd);
 	gem_close(fd, handle);
 }
 
 /* prime and then unprime and then prime again the same handle */
 static void
-test_reprime(void)
+test_reprime(uint32_t region, int size)
 {
 	int dma_buf_fd;
 	char *ptr;
 	uint32_t handle;
 
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	igt_assert(errno == 0);
 
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr != MAP_FAILED);
 	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
 
 	close (dma_buf_fd);
 	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
-	munmap(ptr, BO_SIZE);
+	munmap(ptr, size);
 
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr != MAP_FAILED);
 	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
 
-	munmap(ptr, BO_SIZE);
+	munmap(ptr, size);
 	close(dma_buf_fd);
 	gem_close(fd, handle);
 }
 
 /* map from another process */
 static void
-test_forked(void)
+test_forked(uint32_t region, int size)
 {
 	int dma_buf_fd;
 	char *ptr;
 	uint32_t handle;
 
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	igt_assert(errno == 0);
 
 	igt_fork(childno, 1) {
-		ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+		ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 		igt_assert(ptr != MAP_FAILED);
 		igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
-		munmap(ptr, BO_SIZE);
+		munmap(ptr, size);
 		close(dma_buf_fd);
 	}
 	close(dma_buf_fd);
@@ -190,13 +197,13 @@ test_forked(void)
 
 /* test simple CPU write */
 static void
-test_correct_cpu_write(void)
+test_correct_cpu_write(uint32_t region, int size)
 {
 	int dma_buf_fd;
 	char *ptr;
 	uint32_t handle;
 
-	handle = gem_create(fd, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
 
 	dma_buf_fd = prime_handle_to_fd_for_mmap(fd, handle);
 
@@ -204,29 +211,29 @@ test_correct_cpu_write(void)
 	igt_skip_on(errno == EINVAL);
 
 	/* Check correctness of map using write protection (PROT_WRITE) */
-	ptr = mmap(NULL, BO_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr != MAP_FAILED);
 
 	/* Fill bo using CPU */
-	fill_bo_cpu(ptr);
+	fill_bo_cpu(ptr, BO_SIZE);
 
 	/* Check pattern correctness */
 	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
 
-	munmap(ptr, BO_SIZE);
+	munmap(ptr, size);
 	close(dma_buf_fd);
 	gem_close(fd, handle);
 }
 
 /* map from another process and then write using CPU */
 static void
-test_forked_cpu_write(void)
+test_forked_cpu_write(uint32_t region, int size)
 {
 	int dma_buf_fd;
 	char *ptr;
 	uint32_t handle;
 
-	handle = gem_create(fd, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
 
 	dma_buf_fd = prime_handle_to_fd_for_mmap(fd, handle);
 
@@ -234,12 +241,12 @@ test_forked_cpu_write(void)
 	igt_skip_on(errno == EINVAL);
 
 	igt_fork(childno, 1) {
-		ptr = mmap(NULL, BO_SIZE, PROT_READ | PROT_WRITE , MAP_SHARED, dma_buf_fd, 0);
+		ptr = mmap(NULL, size, PROT_READ | PROT_WRITE , MAP_SHARED, dma_buf_fd, 0);
 		igt_assert(ptr != MAP_FAILED);
-		fill_bo_cpu(ptr);
+		fill_bo_cpu(ptr, BO_SIZE);
 
 		igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
-		munmap(ptr, BO_SIZE);
+		munmap(ptr, size);
 		close(dma_buf_fd);
 	}
 	close(dma_buf_fd);
@@ -248,45 +255,45 @@ test_forked_cpu_write(void)
 }
 
 static void
-test_refcounting(void)
+test_refcounting(uint32_t region, int size)
 {
 	int dma_buf_fd;
 	char *ptr;
 	uint32_t handle;
 
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	igt_assert(errno == 0);
 	/* Close gem object before mapping */
 	gem_close(fd, handle);
 
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr != MAP_FAILED);
 	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
-	munmap(ptr, BO_SIZE);
+	munmap(ptr, size);
 	close (dma_buf_fd);
 }
 
 /* dup before mmap */
 static void
-test_dup(void)
+test_dup(uint32_t region, int size)
 {
 	int dma_buf_fd;
 	char *ptr;
 	uint32_t handle;
 
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 
 	dma_buf_fd = dup(prime_handle_to_fd(fd, handle));
 	igt_assert(errno == 0);
 
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr != MAP_FAILED);
 	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
-	munmap(ptr, BO_SIZE);
+	munmap(ptr, size);
 	gem_close(fd, handle);
 	close (dma_buf_fd);
 }
@@ -324,21 +331,21 @@ static bool has_userptr(void)
 
 /* test for mmap(dma_buf_export(userptr)) */
 static void
-test_userptr(void)
+test_userptr(uint32_t region, int size)
 {
 	int ret, dma_buf_fd;
 	void *ptr;
 	uint32_t handle;
 
-	igt_require(has_userptr());
-
 	/* create userptr bo */
-	ret = posix_memalign(&ptr, 4096, BO_SIZE);
+	ret = posix_memalign(&ptr, 4096, size);
 	igt_assert_eq(ret, 0);
 
-	/* we are not allowed to export unsynchronized userptr. Just create a normal
-	 * one */
-	gem_userptr(fd, (uint32_t *)ptr, BO_SIZE, 0, 0, &handle);
+	/*
+	 * we are not allowed to export unsynchronized userptr. Just create a
+	 * normal one
+	 */
+	gem_userptr(fd, (uint32_t *)ptr, size, 0, 0, &handle);
 
 	/* export userptr */
 	ret = prime_handle_to_fd_no_assert(handle, DRM_CLOEXEC, &dma_buf_fd);
@@ -352,7 +359,7 @@ test_userptr(void)
 
 	/* a userptr doesn't have the obj->base.filp, but can be exported via
 	 * dma-buf, so make sure it fails here */
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr == MAP_FAILED && errno == ENODEV);
 free_userptr:
 	gem_close(fd, handle);
@@ -360,7 +367,7 @@ free_userptr:
 }
 
 static void
-test_errors(void)
+test_errors(uint32_t region, int size)
 {
 	int i, dma_buf_fd;
 	char *ptr;
@@ -369,48 +376,49 @@ test_errors(void)
 	                       DRM_RDWR - 1, DRM_RDWR + 1};
 
 	/* Test for invalid flags */
-	handle = gem_create(fd, BO_SIZE);
-	for (i = 0; i < sizeof(invalid_flags) / sizeof(invalid_flags[0]); i++) {
+	handle = gem_create_in_memory_regions(fd, size, region);
+	for (i = 0; i < ARRAY_SIZE(invalid_flags); i++) {
 		prime_handle_to_fd_no_assert(handle, invalid_flags[i], &dma_buf_fd);
 		igt_assert_eq(errno, EINVAL);
 		errno = 0;
 	}
+	gem_close(fd, handle);
 
 	/* Close gem object before priming */
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 	gem_close(fd, handle);
 	prime_handle_to_fd_no_assert(handle, DRM_CLOEXEC, &dma_buf_fd);
 	igt_assert(dma_buf_fd == -1 && errno == ENOENT);
 	errno = 0;
 
 	/* close fd before mapping */
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	igt_assert(errno == 0);
 	close(dma_buf_fd);
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr == MAP_FAILED && errno == EBADF);
 	errno = 0;
 	gem_close(fd, handle);
 
 	/* Map too big */
-	handle = gem_create(fd, BO_SIZE);
-	fill_bo(handle, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
+	fill_bo(handle, size);
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	igt_assert(errno == 0);
-	ptr = mmap(NULL, BO_SIZE * 2, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+	ptr = mmap(NULL, size * 2, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
 	igt_assert(ptr == MAP_FAILED && errno == EINVAL);
 	errno = 0;
 	close(dma_buf_fd);
 	gem_close(fd, handle);
 
 	/* Overlapping the end of the buffer */
-	handle = gem_create(fd, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	igt_assert(errno == 0);
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, BO_SIZE / 2);
+	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, size / 2);
 	igt_assert(ptr == MAP_FAILED && errno == EINVAL);
 	errno = 0;
 	close(dma_buf_fd);
@@ -419,7 +427,7 @@ test_errors(void)
 
 /* Test for invalid flags on sync ioctl */
 static void
-test_invalid_sync_flags(void)
+test_invalid_sync_flags(uint32_t region, int size)
 {
 	int i, dma_buf_fd;
 	uint32_t handle;
@@ -429,7 +437,7 @@ test_invalid_sync_flags(void)
 	                       LOCAL_DMA_BUF_SYNC_RW + 1,
 	                       LOCAL_DMA_BUF_SYNC_VALID_FLAGS_MASK + 1};
 
-	handle = gem_create(fd, BO_SIZE);
+	handle = gem_create_in_memory_regions(fd, size, region);
 	dma_buf_fd = prime_handle_to_fd(fd, handle);
 	for (i = 0; i < sizeof(invalid_flags) / sizeof(invalid_flags[0]); i++) {
 		memset(&sync, 0, sizeof(sync));
@@ -442,7 +450,7 @@ test_invalid_sync_flags(void)
 }
 
 static void
-test_aperture_limit(void)
+test_aperture_limit(uint32_t region, int size)
 {
 	int dma_buf_fd1, dma_buf_fd2;
 	char *ptr1, *ptr2;
@@ -452,23 +460,22 @@ test_aperture_limit(void)
 	uint64_t size2 = (gem_mappable_aperture_size(fd) * 3) / 8;
 
 	handle1 = gem_create(fd, size1);
-	fill_bo(handle1, BO_SIZE);
-
-	dma_buf_fd1 = prime_handle_to_fd(fd, handle1);
+	dma_buf_fd1 = prime_handle_to_fd_for_mmap(fd, handle1);
 	igt_assert(errno == 0);
-	ptr1 = mmap(NULL, size1, PROT_READ, MAP_SHARED, dma_buf_fd1, 0);
+	ptr1 = mmap(NULL, size1, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf_fd1, 0);
 	igt_assert(ptr1 != MAP_FAILED);
+	fill_bo_cpu(ptr1, size);
 	igt_assert(memcmp(ptr1, pattern, sizeof(pattern)) == 0);
 
 	handle2 = gem_create(fd, size1);
-	fill_bo(handle2, BO_SIZE);
-	dma_buf_fd2 = prime_handle_to_fd(fd, handle2);
+	dma_buf_fd2 = prime_handle_to_fd_for_mmap(fd, handle2);
 	igt_assert(errno == 0);
-	ptr2 = mmap(NULL, size2, PROT_READ, MAP_SHARED, dma_buf_fd2, 0);
+	ptr2 = mmap(NULL, size2, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf_fd2, 0);
 	igt_assert(ptr2 != MAP_FAILED);
+	fill_bo_cpu(ptr2, size);
 	igt_assert(memcmp(ptr2, pattern, sizeof(pattern)) == 0);
 
-	igt_assert(memcmp(ptr1, ptr2, BO_SIZE) == 0);
+	igt_assert(memcmp(ptr1, ptr2, size) == 0);
 
 	munmap(ptr1, size1);
 	munmap(ptr2, size2);
@@ -479,29 +486,55 @@ test_aperture_limit(void)
 }
 
 static int
-check_for_dma_buf_mmap(void)
+check_for_dma_buf_mmap(struct igt_collection *set)
 {
+	struct igt_collection *region;
+	uint32_t reg;
 	int dma_buf_fd;
 	char *ptr;
 	uint32_t handle;
 	int ret = 1;
 
-	handle = gem_create(fd, BO_SIZE);
-	dma_buf_fd = prime_handle_to_fd(fd, handle);
-	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
-	if (ptr != MAP_FAILED)
-		ret = 0;
-	munmap(ptr, BO_SIZE);
-	gem_close(fd, handle);
-	close(dma_buf_fd);
+	for_each_combination(region, 1, set) {
+		reg = igt_collection_get_value(region, 0);
+		handle = gem_create_in_memory_regions(fd, BO_SIZE, reg);
+
+		dma_buf_fd = prime_handle_to_fd(fd, handle);
+		ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
+		if (ptr != MAP_FAILED)
+			ret = 0;
+		munmap(ptr, BO_SIZE);
+		gem_close(fd, handle);
+		close(dma_buf_fd);
+	}
 	return ret;
 }
 
+#define SKIP_LMEM (1 << 0)
+#define SKIP_USERPTR (1 << 1)
+
+/*
+ * true skips the test
+ */
+static bool check_skip(uint32_t skip, uint32_t region)
+{
+	if ((skip & SKIP_LMEM) && IS_DEVICE_MEMORY_REGION(region))
+		return true;
+
+	if (skip & SKIP_USERPTR)
+		return !has_userptr();
+
+	return false;
+}
+
 igt_main
 {
+	struct igt_collection *set, *regions;
+	struct drm_i915_query_memory_regions *query_info;
 	struct {
 		const char *name;
-		void (*fn)(void);
+		void (*fn)(uint32_t, int);
+		uint32_t skip;
 	} tests[] = {
 		{ "test_correct", test_correct },
 		{ "test_map_unmap", test_map_unmap },
@@ -511,25 +544,46 @@ igt_main
 		{ "test_forked_cpu_write", test_forked_cpu_write },
 		{ "test_refcounting", test_refcounting },
 		{ "test_dup", test_dup },
-		{ "test_userptr", test_userptr },
+		{ "test_userptr", test_userptr, SKIP_LMEM | SKIP_USERPTR },
 		{ "test_errors", test_errors },
 		{ "test_invalid_sync_flags", test_invalid_sync_flags },
-		{ "test_aperture_limit", test_aperture_limit },
+		{ "test_aperture_limit", test_aperture_limit, SKIP_LMEM },
 	};
+	uint32_t region;
+	char *ext;
+	int size;
 	int i;
 
 	igt_fixture {
 		fd = drm_open_driver(DRIVER_INTEL);
-		igt_skip_on((check_for_dma_buf_mmap() != 0));
-		errno = 0;
-	}
 
+		query_info = gem_get_query_memory_regions(fd);
+		igt_assert(query_info);
 
-	for (i = 0; i < ARRAY_SIZE(tests); i++) {
-		igt_subtest(tests[i].name)
-			tests[i].fn();
+		set = get_memory_region_set(query_info, I915_SYSTEM_MEMORY,
+					    I915_DEVICE_MEMORY);
+		igt_assert(check_for_dma_buf_mmap(set) == 0);
+		errno = 0;
 	}
 
-	igt_fixture
+	for (i = 0; i < ARRAY_SIZE(tests); i++)
+		igt_subtest_with_dynamic(tests[i].name) {
+			for_each_combination(regions, 1, set) {
+				region = igt_collection_get_value(regions, 0);
+				size = gem_get_batch_size(fd, MEMORY_TYPE_FROM_REGION(region));
+				size = max(size, BO_SIZE);
+				if (check_skip(tests[i].skip, region))
+					continue;
+				ext = memregion_dynamic_subtest_name(regions);
+				igt_dynamic_f("%s-%s", tests[i].name, ext)
+					tests[i].fn(region, size);
+				free(ext);
+			}
+		}
+
+	igt_fixture {
+		free(query_info);
+		igt_collection_destroy(set);
 		close(fd);
+	}
 }
-- 
2.25.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for tests/prime_mmap: Add support for local memory (rev2)
  2021-10-14 11:09 [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory apoorva1.singh
@ 2021-10-14 11:40 ` Patchwork
  2021-10-14 12:31 ` [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory Zbigniew Kempczyński
  2021-10-14 13:44 ` [igt-dev] ✓ Fi.CI.IGT: success for tests/prime_mmap: Add support for local memory (rev2) Patchwork
  2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2021-10-14 11:40 UTC (permalink / raw)
  To: apoorva1.singh; +Cc: igt-dev

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

== Series Details ==

Series: tests/prime_mmap: Add support for local memory (rev2)
URL   : https://patchwork.freedesktop.org/series/95508/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10733 -> IGTPW_6321
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

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

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

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-soraka:      [PASS][3] -> [INCOMPLETE][4] ([i915#4221])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/fi-kbl-soraka/igt@gem_exec_suspend@basic-s0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/fi-kbl-soraka/igt@gem_exec_suspend@basic-s0.html

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

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

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

  * igt@kms_chamelium@dp-crc-fast:
    - fi-kbl-7500u:       [PASS][8] -> [FAIL][9] ([i915#1372])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html

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

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

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          [PASS][12] -> [DMESG-WARN][13] ([i915#4269])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html

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

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

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

  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1372]: https://gitlab.freedesktop.org/drm/intel/issues/1372
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4221]: https://gitlab.freedesktop.org/drm/intel/issues/4221
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533


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

  Additional (2): fi-jsl-1 fi-tgl-1115g4 
  Missing    (2): fi-bsw-cyan fi-hsw-4200u 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6245 -> IGTPW_6321

  CI-20190529: 20190529
  CI_DRM_10733: 1e6cbb9f4ad6ee0fa0f204d4ae5e4c476e037615 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6321: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/index.html
  IGT_6245: 477076d55a3cc53b8bfabae5af59114c8cd74827 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory
  2021-10-14 11:09 [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory apoorva1.singh
  2021-10-14 11:40 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/prime_mmap: Add support for local memory (rev2) Patchwork
@ 2021-10-14 12:31 ` Zbigniew Kempczyński
  2021-10-14 13:44 ` [igt-dev] ✓ Fi.CI.IGT: success for tests/prime_mmap: Add support for local memory (rev2) Patchwork
  2 siblings, 0 replies; 4+ messages in thread
From: Zbigniew Kempczyński @ 2021-10-14 12:31 UTC (permalink / raw)
  To: apoorva1.singh; +Cc: arjun.melkaveri, igt-dev

On Thu, Oct 14, 2021 at 04:39:22PM +0530, apoorva1.singh@intel.com wrote:
> From: Andrzej Turko <andrzej.turko@linux.intel.com>
> 
> Add support for local memory region (Device memory)
> 
> v2:
>   - Replace igt_skip_on() with igt_assert(), as with TTM
>     backend this test will not be able to run on discrete
>     currently.
>   - Fix minor line wrap changes.
> 
> Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com>
> Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Melkaveri, Arjun <arjun.melkaveri@intel.com>
> ---
>  tests/prime_mmap.c | 254 +++++++++++++++++++++++++++------------------
>  1 file changed, 154 insertions(+), 100 deletions(-)
> 
> diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
> index a4e4b4b6..adbfaa22 100644
> --- a/tests/prime_mmap.c
> +++ b/tests/prime_mmap.c
> @@ -42,11 +42,14 @@
>  
>  #include "drm.h"
>  #include "drmtest.h"
> +#include "igt.h"
> +#include "igt_collection.h"
>  #include "i915_drm.h"
>  #include "i915/gem_create.h"
>  #include "i915/gem_mman.h"
>  #include "igt_debugfs.h"
>  #include "ioctl_wrappers.h"
> +#include "i915/intel_memory_region.h"
>  
>  #define BO_SIZE (16*1024)
>  
> @@ -68,119 +71,123 @@ fill_bo(uint32_t handle, size_t size)
>  }
>  
>  static void
> -fill_bo_cpu(char *ptr)
> +fill_bo_cpu(char *ptr, size_t size)
>  {
> -	memcpy(ptr, pattern, sizeof(pattern));
> +	off_t i;
> +	for (i = 0; i < size; i += sizeof(pattern))
> +	{
> +		memcpy(ptr + i, pattern, sizeof(pattern));
> +	}
>  }
>  
>  static void
> -test_correct(void)
> +test_correct(uint32_t region, int size)
>  {
>  	int dma_buf_fd;
>  	char *ptr1, *ptr2;
>  	uint32_t handle;
>  
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	igt_assert(errno == 0);
>  
>  	/* Check correctness vs GEM_MMAP */
> -	ptr1 = gem_mmap__device_coherent(fd, handle, 0, BO_SIZE, PROT_READ);
> -	ptr2 = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr1 = gem_mmap__device_coherent(fd, handle, 0, size, PROT_READ);
> +	ptr2 = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr1 != MAP_FAILED);
>  	igt_assert(ptr2 != MAP_FAILED);
> -	igt_assert(memcmp(ptr1, ptr2, BO_SIZE) == 0);
> +	igt_assert(memcmp(ptr1, ptr2, size) == 0);
>  
>  	/* Check pattern correctness */
>  	igt_assert(memcmp(ptr2, pattern, sizeof(pattern)) == 0);
>  
> -	munmap(ptr1, BO_SIZE);
> -	munmap(ptr2, BO_SIZE);
> +	munmap(ptr1, size);
> +	munmap(ptr2, size);
>  	close(dma_buf_fd);
>  	gem_close(fd, handle);
>  }
>  
>  static void
> -test_map_unmap(void)
> +test_map_unmap(uint32_t region, int size)
>  {
>  	int dma_buf_fd;
>  	char *ptr;
>  	uint32_t handle;
>  
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	igt_assert(errno == 0);
>  
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr != MAP_FAILED);
>  	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
>  
>  	/* Unmap and remap */
> -	munmap(ptr, BO_SIZE);
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	munmap(ptr, size);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr != MAP_FAILED);
>  	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
>  
> -	munmap(ptr, BO_SIZE);
> +	munmap(ptr, size);
>  	close(dma_buf_fd);
>  	gem_close(fd, handle);
>  }
>  
>  /* prime and then unprime and then prime again the same handle */
>  static void
> -test_reprime(void)
> +test_reprime(uint32_t region, int size)
>  {
>  	int dma_buf_fd;
>  	char *ptr;
>  	uint32_t handle;
>  
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	igt_assert(errno == 0);
>  
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr != MAP_FAILED);
>  	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
>  
>  	close (dma_buf_fd);
>  	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
> -	munmap(ptr, BO_SIZE);
> +	munmap(ptr, size);
>  
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr != MAP_FAILED);
>  	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
>  
> -	munmap(ptr, BO_SIZE);
> +	munmap(ptr, size);
>  	close(dma_buf_fd);
>  	gem_close(fd, handle);
>  }
>  
>  /* map from another process */
>  static void
> -test_forked(void)
> +test_forked(uint32_t region, int size)
>  {
>  	int dma_buf_fd;
>  	char *ptr;
>  	uint32_t handle;
>  
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	igt_assert(errno == 0);
>  
>  	igt_fork(childno, 1) {
> -		ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +		ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  		igt_assert(ptr != MAP_FAILED);
>  		igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
> -		munmap(ptr, BO_SIZE);
> +		munmap(ptr, size);
>  		close(dma_buf_fd);
>  	}
>  	close(dma_buf_fd);
> @@ -190,13 +197,13 @@ test_forked(void)
>  
>  /* test simple CPU write */
>  static void
> -test_correct_cpu_write(void)
> +test_correct_cpu_write(uint32_t region, int size)
>  {
>  	int dma_buf_fd;
>  	char *ptr;
>  	uint32_t handle;
>  
> -	handle = gem_create(fd, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
>  
>  	dma_buf_fd = prime_handle_to_fd_for_mmap(fd, handle);
>  
> @@ -204,29 +211,29 @@ test_correct_cpu_write(void)
>  	igt_skip_on(errno == EINVAL);
>  
>  	/* Check correctness of map using write protection (PROT_WRITE) */
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr != MAP_FAILED);
>  
>  	/* Fill bo using CPU */
> -	fill_bo_cpu(ptr);
> +	fill_bo_cpu(ptr, BO_SIZE);
>  
>  	/* Check pattern correctness */
>  	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
>  
> -	munmap(ptr, BO_SIZE);
> +	munmap(ptr, size);
>  	close(dma_buf_fd);
>  	gem_close(fd, handle);
>  }
>  
>  /* map from another process and then write using CPU */
>  static void
> -test_forked_cpu_write(void)
> +test_forked_cpu_write(uint32_t region, int size)
>  {
>  	int dma_buf_fd;
>  	char *ptr;
>  	uint32_t handle;
>  
> -	handle = gem_create(fd, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
>  
>  	dma_buf_fd = prime_handle_to_fd_for_mmap(fd, handle);
>  
> @@ -234,12 +241,12 @@ test_forked_cpu_write(void)
>  	igt_skip_on(errno == EINVAL);
>  
>  	igt_fork(childno, 1) {
> -		ptr = mmap(NULL, BO_SIZE, PROT_READ | PROT_WRITE , MAP_SHARED, dma_buf_fd, 0);
> +		ptr = mmap(NULL, size, PROT_READ | PROT_WRITE , MAP_SHARED, dma_buf_fd, 0);
>  		igt_assert(ptr != MAP_FAILED);
> -		fill_bo_cpu(ptr);
> +		fill_bo_cpu(ptr, BO_SIZE);
>  
>  		igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
> -		munmap(ptr, BO_SIZE);
> +		munmap(ptr, size);
>  		close(dma_buf_fd);
>  	}
>  	close(dma_buf_fd);
> @@ -248,45 +255,45 @@ test_forked_cpu_write(void)
>  }
>  
>  static void
> -test_refcounting(void)
> +test_refcounting(uint32_t region, int size)
>  {
>  	int dma_buf_fd;
>  	char *ptr;
>  	uint32_t handle;
>  
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	igt_assert(errno == 0);
>  	/* Close gem object before mapping */
>  	gem_close(fd, handle);
>  
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr != MAP_FAILED);
>  	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
> -	munmap(ptr, BO_SIZE);
> +	munmap(ptr, size);
>  	close (dma_buf_fd);
>  }
>  
>  /* dup before mmap */
>  static void
> -test_dup(void)
> +test_dup(uint32_t region, int size)
>  {
>  	int dma_buf_fd;
>  	char *ptr;
>  	uint32_t handle;
>  
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  
>  	dma_buf_fd = dup(prime_handle_to_fd(fd, handle));
>  	igt_assert(errno == 0);
>  
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr != MAP_FAILED);
>  	igt_assert(memcmp(ptr, pattern, sizeof(pattern)) == 0);
> -	munmap(ptr, BO_SIZE);
> +	munmap(ptr, size);
>  	gem_close(fd, handle);
>  	close (dma_buf_fd);
>  }
> @@ -324,21 +331,21 @@ static bool has_userptr(void)
>  
>  /* test for mmap(dma_buf_export(userptr)) */
>  static void
> -test_userptr(void)
> +test_userptr(uint32_t region, int size)
>  {
>  	int ret, dma_buf_fd;
>  	void *ptr;
>  	uint32_t handle;
>  
> -	igt_require(has_userptr());
> -
>  	/* create userptr bo */
> -	ret = posix_memalign(&ptr, 4096, BO_SIZE);
> +	ret = posix_memalign(&ptr, 4096, size);
>  	igt_assert_eq(ret, 0);
>  
> -	/* we are not allowed to export unsynchronized userptr. Just create a normal
> -	 * one */

You've also unnecessary touched this line. With this minor nit fixed:

Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>

--
Zbigniew

> -	gem_userptr(fd, (uint32_t *)ptr, BO_SIZE, 0, 0, &handle);
> +	/*
> +	 * we are not allowed to export unsynchronized userptr. Just create a
> +	 * normal one
> +	 */
> +	gem_userptr(fd, (uint32_t *)ptr, size, 0, 0, &handle);
>  
>  	/* export userptr */
>  	ret = prime_handle_to_fd_no_assert(handle, DRM_CLOEXEC, &dma_buf_fd);
> @@ -352,7 +359,7 @@ test_userptr(void)
>  
>  	/* a userptr doesn't have the obj->base.filp, but can be exported via
>  	 * dma-buf, so make sure it fails here */
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr == MAP_FAILED && errno == ENODEV);
>  free_userptr:
>  	gem_close(fd, handle);
> @@ -360,7 +367,7 @@ free_userptr:
>  }
>  
>  static void
> -test_errors(void)
> +test_errors(uint32_t region, int size)
>  {
>  	int i, dma_buf_fd;
>  	char *ptr;
> @@ -369,48 +376,49 @@ test_errors(void)
>  	                       DRM_RDWR - 1, DRM_RDWR + 1};
>  
>  	/* Test for invalid flags */
> -	handle = gem_create(fd, BO_SIZE);
> -	for (i = 0; i < sizeof(invalid_flags) / sizeof(invalid_flags[0]); i++) {
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	for (i = 0; i < ARRAY_SIZE(invalid_flags); i++) {
>  		prime_handle_to_fd_no_assert(handle, invalid_flags[i], &dma_buf_fd);
>  		igt_assert_eq(errno, EINVAL);
>  		errno = 0;
>  	}
> +	gem_close(fd, handle);
>  
>  	/* Close gem object before priming */
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  	gem_close(fd, handle);
>  	prime_handle_to_fd_no_assert(handle, DRM_CLOEXEC, &dma_buf_fd);
>  	igt_assert(dma_buf_fd == -1 && errno == ENOENT);
>  	errno = 0;
>  
>  	/* close fd before mapping */
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	igt_assert(errno == 0);
>  	close(dma_buf_fd);
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr == MAP_FAILED && errno == EBADF);
>  	errno = 0;
>  	gem_close(fd, handle);
>  
>  	/* Map too big */
> -	handle = gem_create(fd, BO_SIZE);
> -	fill_bo(handle, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
> +	fill_bo(handle, size);
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	igt_assert(errno == 0);
> -	ptr = mmap(NULL, BO_SIZE * 2, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +	ptr = mmap(NULL, size * 2, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>  	igt_assert(ptr == MAP_FAILED && errno == EINVAL);
>  	errno = 0;
>  	close(dma_buf_fd);
>  	gem_close(fd, handle);
>  
>  	/* Overlapping the end of the buffer */
> -	handle = gem_create(fd, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	igt_assert(errno == 0);
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, BO_SIZE / 2);
> +	ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, size / 2);
>  	igt_assert(ptr == MAP_FAILED && errno == EINVAL);
>  	errno = 0;
>  	close(dma_buf_fd);
> @@ -419,7 +427,7 @@ test_errors(void)
>  
>  /* Test for invalid flags on sync ioctl */
>  static void
> -test_invalid_sync_flags(void)
> +test_invalid_sync_flags(uint32_t region, int size)
>  {
>  	int i, dma_buf_fd;
>  	uint32_t handle;
> @@ -429,7 +437,7 @@ test_invalid_sync_flags(void)
>  	                       LOCAL_DMA_BUF_SYNC_RW + 1,
>  	                       LOCAL_DMA_BUF_SYNC_VALID_FLAGS_MASK + 1};
>  
> -	handle = gem_create(fd, BO_SIZE);
> +	handle = gem_create_in_memory_regions(fd, size, region);
>  	dma_buf_fd = prime_handle_to_fd(fd, handle);
>  	for (i = 0; i < sizeof(invalid_flags) / sizeof(invalid_flags[0]); i++) {
>  		memset(&sync, 0, sizeof(sync));
> @@ -442,7 +450,7 @@ test_invalid_sync_flags(void)
>  }
>  
>  static void
> -test_aperture_limit(void)
> +test_aperture_limit(uint32_t region, int size)
>  {
>  	int dma_buf_fd1, dma_buf_fd2;
>  	char *ptr1, *ptr2;
> @@ -452,23 +460,22 @@ test_aperture_limit(void)
>  	uint64_t size2 = (gem_mappable_aperture_size(fd) * 3) / 8;
>  
>  	handle1 = gem_create(fd, size1);
> -	fill_bo(handle1, BO_SIZE);
> -
> -	dma_buf_fd1 = prime_handle_to_fd(fd, handle1);
> +	dma_buf_fd1 = prime_handle_to_fd_for_mmap(fd, handle1);
>  	igt_assert(errno == 0);
> -	ptr1 = mmap(NULL, size1, PROT_READ, MAP_SHARED, dma_buf_fd1, 0);
> +	ptr1 = mmap(NULL, size1, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf_fd1, 0);
>  	igt_assert(ptr1 != MAP_FAILED);
> +	fill_bo_cpu(ptr1, size);
>  	igt_assert(memcmp(ptr1, pattern, sizeof(pattern)) == 0);
>  
>  	handle2 = gem_create(fd, size1);
> -	fill_bo(handle2, BO_SIZE);
> -	dma_buf_fd2 = prime_handle_to_fd(fd, handle2);
> +	dma_buf_fd2 = prime_handle_to_fd_for_mmap(fd, handle2);
>  	igt_assert(errno == 0);
> -	ptr2 = mmap(NULL, size2, PROT_READ, MAP_SHARED, dma_buf_fd2, 0);
> +	ptr2 = mmap(NULL, size2, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf_fd2, 0);
>  	igt_assert(ptr2 != MAP_FAILED);
> +	fill_bo_cpu(ptr2, size);
>  	igt_assert(memcmp(ptr2, pattern, sizeof(pattern)) == 0);
>  
> -	igt_assert(memcmp(ptr1, ptr2, BO_SIZE) == 0);
> +	igt_assert(memcmp(ptr1, ptr2, size) == 0);
>  
>  	munmap(ptr1, size1);
>  	munmap(ptr2, size2);
> @@ -479,29 +486,55 @@ test_aperture_limit(void)
>  }
>  
>  static int
> -check_for_dma_buf_mmap(void)
> +check_for_dma_buf_mmap(struct igt_collection *set)
>  {
> +	struct igt_collection *region;
> +	uint32_t reg;
>  	int dma_buf_fd;
>  	char *ptr;
>  	uint32_t handle;
>  	int ret = 1;
>  
> -	handle = gem_create(fd, BO_SIZE);
> -	dma_buf_fd = prime_handle_to_fd(fd, handle);
> -	ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> -	if (ptr != MAP_FAILED)
> -		ret = 0;
> -	munmap(ptr, BO_SIZE);
> -	gem_close(fd, handle);
> -	close(dma_buf_fd);
> +	for_each_combination(region, 1, set) {
> +		reg = igt_collection_get_value(region, 0);
> +		handle = gem_create_in_memory_regions(fd, BO_SIZE, reg);
> +
> +		dma_buf_fd = prime_handle_to_fd(fd, handle);
> +		ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
> +		if (ptr != MAP_FAILED)
> +			ret = 0;
> +		munmap(ptr, BO_SIZE);
> +		gem_close(fd, handle);
> +		close(dma_buf_fd);
> +	}
>  	return ret;
>  }
>  
> +#define SKIP_LMEM (1 << 0)
> +#define SKIP_USERPTR (1 << 1)
> +
> +/*
> + * true skips the test
> + */
> +static bool check_skip(uint32_t skip, uint32_t region)
> +{
> +	if ((skip & SKIP_LMEM) && IS_DEVICE_MEMORY_REGION(region))
> +		return true;
> +
> +	if (skip & SKIP_USERPTR)
> +		return !has_userptr();
> +
> +	return false;
> +}
> +
>  igt_main
>  {
> +	struct igt_collection *set, *regions;
> +	struct drm_i915_query_memory_regions *query_info;
>  	struct {
>  		const char *name;
> -		void (*fn)(void);
> +		void (*fn)(uint32_t, int);
> +		uint32_t skip;
>  	} tests[] = {
>  		{ "test_correct", test_correct },
>  		{ "test_map_unmap", test_map_unmap },
> @@ -511,25 +544,46 @@ igt_main
>  		{ "test_forked_cpu_write", test_forked_cpu_write },
>  		{ "test_refcounting", test_refcounting },
>  		{ "test_dup", test_dup },
> -		{ "test_userptr", test_userptr },
> +		{ "test_userptr", test_userptr, SKIP_LMEM | SKIP_USERPTR },
>  		{ "test_errors", test_errors },
>  		{ "test_invalid_sync_flags", test_invalid_sync_flags },
> -		{ "test_aperture_limit", test_aperture_limit },
> +		{ "test_aperture_limit", test_aperture_limit, SKIP_LMEM },
>  	};
> +	uint32_t region;
> +	char *ext;
> +	int size;
>  	int i;
>  
>  	igt_fixture {
>  		fd = drm_open_driver(DRIVER_INTEL);
> -		igt_skip_on((check_for_dma_buf_mmap() != 0));
> -		errno = 0;
> -	}
>  
> +		query_info = gem_get_query_memory_regions(fd);
> +		igt_assert(query_info);
>  
> -	for (i = 0; i < ARRAY_SIZE(tests); i++) {
> -		igt_subtest(tests[i].name)
> -			tests[i].fn();
> +		set = get_memory_region_set(query_info, I915_SYSTEM_MEMORY,
> +					    I915_DEVICE_MEMORY);
> +		igt_assert(check_for_dma_buf_mmap(set) == 0);
> +		errno = 0;
>  	}
>  
> -	igt_fixture
> +	for (i = 0; i < ARRAY_SIZE(tests); i++)
> +		igt_subtest_with_dynamic(tests[i].name) {
> +			for_each_combination(regions, 1, set) {
> +				region = igt_collection_get_value(regions, 0);
> +				size = gem_get_batch_size(fd, MEMORY_TYPE_FROM_REGION(region));
> +				size = max(size, BO_SIZE);
> +				if (check_skip(tests[i].skip, region))
> +					continue;
> +				ext = memregion_dynamic_subtest_name(regions);
> +				igt_dynamic_f("%s-%s", tests[i].name, ext)
> +					tests[i].fn(region, size);
> +				free(ext);
> +			}
> +		}
> +
> +	igt_fixture {
> +		free(query_info);
> +		igt_collection_destroy(set);
>  		close(fd);
> +	}
>  }
> -- 
> 2.25.1
> 

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

* [igt-dev] ✓ Fi.CI.IGT: success for tests/prime_mmap: Add support for local memory (rev2)
  2021-10-14 11:09 [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory apoorva1.singh
  2021-10-14 11:40 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/prime_mmap: Add support for local memory (rev2) Patchwork
  2021-10-14 12:31 ` [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory Zbigniew Kempczyński
@ 2021-10-14 13:44 ` Patchwork
  2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2021-10-14 13:44 UTC (permalink / raw)
  To: apoorva1.singh; +Cc: igt-dev

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

== Series Details ==

Series: tests/prime_mmap: Add support for local memory (rev2)
URL   : https://patchwork.freedesktop.org/series/95508/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10733_full -> IGTPW_6321_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

New tests
---------

  New tests have been introduced between CI_DRM_10733_full and IGTPW_6321_full:

### New IGT tests (12) ###

  * igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
    - Statuses : 6 pass(s)
    - Exec time: [0.01, 0.07] s

  * igt@prime_mmap@test_correct@test_correct-smem:
    - Statuses : 5 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@prime_mmap@test_correct_cpu_write@test_correct_cpu_write-smem:
    - Statuses : 6 pass(s)
    - Exec time: [0.0, 0.00] s

  * igt@prime_mmap@test_dup@test_dup-smem:
    - Statuses : 5 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@prime_mmap@test_errors@test_errors-smem:
    - Statuses : 4 pass(s)
    - Exec time: [0.01, 0.02] s

  * igt@prime_mmap@test_forked@test_forked-smem:
    - Statuses : 4 pass(s)
    - Exec time: [0.01, 0.04] s

  * igt@prime_mmap@test_forked_cpu_write@test_forked_cpu_write-smem:
    - Statuses : 5 pass(s)
    - Exec time: [0.01, 0.03] s

  * igt@prime_mmap@test_invalid_sync_flags@test_invalid_sync_flags-smem:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@prime_mmap@test_map_unmap@test_map_unmap-smem:
    - Statuses : 6 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@prime_mmap@test_refcounting@test_refcounting-smem:
    - Statuses : 5 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@prime_mmap@test_reprime@test_reprime-smem:
    - Statuses : 6 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@prime_mmap@test_userptr@test_userptr-smem:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@psr2:
    - shard-iclb:         [PASS][1] -> [SKIP][2] ([i915#658])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-iclb2/igt@feature_discovery@psr2.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb3/igt@feature_discovery@psr2.html

  * igt@gem_create@create-massive:
    - shard-snb:          NOTRUN -> [DMESG-WARN][3] ([i915#3002]) +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-snb2/igt@gem_create@create-massive.html

  * igt@gem_ctx_persistence@legacy-engines-mixed:
    - shard-snb:          NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#1099]) +5 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-snb2/igt@gem_ctx_persistence@legacy-engines-mixed.html

  * igt@gem_eio@in-flight-suspend:
    - shard-tglb:         [PASS][5] -> [INCOMPLETE][6] ([i915#456]) +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-tglb8/igt@gem_eio@in-flight-suspend.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb7/igt@gem_eio@in-flight-suspend.html

  * igt@gem_eio@unwedge-stress:
    - shard-iclb:         [PASS][7] -> [TIMEOUT][8] ([i915#2369] / [i915#2481] / [i915#3070])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-iclb5/igt@gem_eio@unwedge-stress.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb8/igt@gem_eio@unwedge-stress.html
    - shard-snb:          NOTRUN -> [FAIL][9] ([i915#3354])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-snb6/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-pace@bcs0:
    - shard-tglb:         NOTRUN -> [FAIL][10] ([i915#2842]) +4 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb7/igt@gem_exec_fair@basic-pace@bcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-kbl:          NOTRUN -> [FAIL][11] ([i915#2842])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl3/igt@gem_exec_fair@basic-pace@vcs0.html
    - shard-glk:          NOTRUN -> [FAIL][12] ([i915#2842])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk8/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
    - shard-iclb:         NOTRUN -> [FAIL][13] ([i915#2842]) +4 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs1.html

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

  * igt@gem_pread@exhaustion:
    - shard-glk:          NOTRUN -> [WARN][15] ([i915#2658])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk9/igt@gem_pread@exhaustion.html
    - shard-apl:          NOTRUN -> [WARN][16] ([i915#2658])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl7/igt@gem_pread@exhaustion.html

  * igt@gem_pxp@display-protected-crc:
    - shard-iclb:         NOTRUN -> [SKIP][17] ([i915#4270])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb7/igt@gem_pxp@display-protected-crc.html
    - shard-tglb:         NOTRUN -> [SKIP][18] ([i915#4270])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb3/igt@gem_pxp@display-protected-crc.html

  * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
    - shard-kbl:          NOTRUN -> [SKIP][19] ([fdo#109271]) +84 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl7/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][20] ([i915#768])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb2/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-kbl:          NOTRUN -> [SKIP][21] ([fdo#109271] / [i915#3323])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl1/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-iclb:         NOTRUN -> [SKIP][22] ([i915#3323])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb3/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-apl:          NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#3323])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl6/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-glk:          NOTRUN -> [SKIP][24] ([fdo#109271] / [i915#3323])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk2/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-tglb:         NOTRUN -> [SKIP][25] ([i915#3323])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb8/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@input-checking:
    - shard-apl:          NOTRUN -> [DMESG-WARN][26] ([i915#3002])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl3/igt@gem_userptr_blits@input-checking.html

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-iclb:         NOTRUN -> [SKIP][27] ([fdo#109289])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb3/igt@gen7_exec_parse@oacontrol-tracking.html
    - shard-tglb:         NOTRUN -> [SKIP][28] ([fdo#109289])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb5/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@gen9_exec_parse@bb-start-param:
    - shard-tglb:         NOTRUN -> [SKIP][29] ([i915#2856]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb2/igt@gen9_exec_parse@bb-start-param.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][30] -> [FAIL][31] ([i915#454])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-iclb5/igt@i915_pm_dc@dc6-psr.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb3/igt@i915_pm_dc@dc6-psr.html

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

  * igt@i915_pm_rpm@modeset-non-lpsp:
    - shard-tglb:         NOTRUN -> [SKIP][33] ([fdo#111644] / [i915#1397] / [i915#2411])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb8/igt@i915_pm_rpm@modeset-non-lpsp.html

  * igt@kms_big_fb@linear-32bpp-rotate-0:
    - shard-glk:          [PASS][34] -> [DMESG-WARN][35] ([i915#118])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-glk5/igt@kms_big_fb@linear-32bpp-rotate-0.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk1/igt@kms_big_fb@linear-32bpp-rotate-0.html

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

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

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-apl:          NOTRUN -> [SKIP][38] ([fdo#109271] / [i915#3777]) +4 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl7/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
    - shard-apl:          NOTRUN -> [SKIP][39] ([fdo#109271]) +289 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl6/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html
    - shard-iclb:         NOTRUN -> [SKIP][40] ([fdo#110723])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3689]) +4 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb2/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886]) +3 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk1/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html
    - shard-kbl:          NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#3886]) +3 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl6/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][44] ([i915#3689] / [i915#3886]) +2 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb3/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - shard-iclb:         NOTRUN -> [SKIP][45] ([fdo#109278] / [i915#3886]) +1 similar issue
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb3/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
    - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#3886]) +13 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl2/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_chamelium@dp-crc-multiple:
    - shard-apl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +30 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl2/igt@kms_chamelium@dp-crc-multiple.html

  * igt@kms_chamelium@dp-hpd-storm:
    - shard-glk:          NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +3 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk1/igt@kms_chamelium@dp-hpd-storm.html

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

  * igt@kms_chamelium@vga-hpd-for-each-pipe:
    - shard-kbl:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +10 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl1/igt@kms_chamelium@vga-hpd-for-each-pipe.html

  * igt@kms_color_chamelium@pipe-a-ctm-blue-to-red:
    - shard-iclb:         NOTRUN -> [SKIP][51] ([fdo#109284] / [fdo#111827]) +3 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb8/igt@kms_color_chamelium@pipe-a-ctm-blue-to-red.html

  * igt@kms_color_chamelium@pipe-c-ctm-red-to-blue:
    - shard-snb:          NOTRUN -> [SKIP][52] ([fdo#109271] / [fdo#111827]) +16 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-snb6/igt@kms_color_chamelium@pipe-c-ctm-red-to-blue.html

  * igt@kms_color_chamelium@pipe-d-ctm-blue-to-red:
    - shard-iclb:         NOTRUN -> [SKIP][53] ([fdo#109278] / [fdo#109284] / [fdo#111827])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb6/igt@kms_color_chamelium@pipe-d-ctm-blue-to-red.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([fdo#111828]) +1 similar issue
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb1/igt@kms_content_protection@atomic-dpms.html
    - shard-kbl:          NOTRUN -> [TIMEOUT][55] ([i915#1319])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl3/igt@kms_content_protection@atomic-dpms.html
    - shard-iclb:         NOTRUN -> [SKIP][56] ([fdo#109300] / [fdo#111066])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb6/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_cursor_crc@pipe-a-cursor-32x32-onscreen:
    - shard-iclb:         NOTRUN -> [SKIP][57] ([fdo#109278]) +7 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb6/igt@kms_cursor_crc@pipe-a-cursor-32x32-onscreen.html
    - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#3319]) +1 similar issue
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-32x32-onscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x170-random:
    - shard-tglb:         NOTRUN -> [SKIP][59] ([fdo#109279] / [i915#3359]) +3 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb2/igt@kms_cursor_crc@pipe-a-cursor-512x170-random.html
    - shard-iclb:         NOTRUN -> [SKIP][60] ([fdo#109278] / [fdo#109279]) +1 similar issue
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb6/igt@kms_cursor_crc@pipe-a-cursor-512x170-random.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x170-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][61] ([i915#3359]) +5 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb7/igt@kms_cursor_crc@pipe-c-cursor-512x170-rapid-movement.html

  * igt@kms_cursor_crc@pipe-d-cursor-size-change:
    - shard-tglb:         [PASS][62] -> [FAIL][63] ([i915#2124])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-tglb2/igt@kms_cursor_crc@pipe-d-cursor-size-change.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb5/igt@kms_cursor_crc@pipe-d-cursor-size-change.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
    - shard-iclb:         NOTRUN -> [SKIP][64] ([fdo#109274] / [fdo#109278])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb5/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@pipe-d-single-bo:
    - shard-glk:          NOTRUN -> [SKIP][65] ([fdo#109271] / [i915#533])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk5/igt@kms_cursor_legacy@pipe-d-single-bo.html
    - shard-kbl:          NOTRUN -> [SKIP][66] ([fdo#109271] / [i915#533])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl1/igt@kms_cursor_legacy@pipe-d-single-bo.html

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

  * igt@kms_dsc@basic-dsc-enable:
    - shard-iclb:         NOTRUN -> [SKIP][68] ([i915#3840])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb1/igt@kms_dsc@basic-dsc-enable.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-apl:          [PASS][69] -> [INCOMPLETE][70] ([i915#180] / [i915#1982])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-apl3/igt@kms_fbcon_fbt@fbc-suspend.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl8/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-iclb:         NOTRUN -> [SKIP][71] ([fdo#109274]) +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb7/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank@c-dp1:
    - shard-apl:          NOTRUN -> [FAIL][72] ([i915#79])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl3/igt@kms_flip@flip-vs-expired-vblank@c-dp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          [PASS][73] -> [DMESG-WARN][74] ([i915#180]) +4 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-kbl3/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl4/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
    - shard-apl:          [PASS][75] -> [DMESG-WARN][76] ([i915#180] / [i915#1982])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

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

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs:
    - shard-apl:          NOTRUN -> [SKIP][78] ([fdo#109271] / [i915#2672])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc:
    - shard-glk:          NOTRUN -> [SKIP][79] ([fdo#109271]) +45 similar issues
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
    - shard-snb:          NOTRUN -> [SKIP][80] ([fdo#109271]) +418 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-snb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite:
    - shard-iclb:         NOTRUN -> [SKIP][81] ([fdo#109280]) +5 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite:
    - shard-tglb:         NOTRUN -> [SKIP][82] ([fdo#111825]) +28 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d:
    - shard-apl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#533]) +2 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl8/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
    - shard-kbl:          NOTRUN -> [FAIL][84] ([fdo#108145] / [i915#265])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl3/igt@kms_plane_alpha_blend@pipe-b-alpha-7efc.html

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
    - shard-apl:          NOTRUN -> [FAIL][85] ([fdo#108145] / [i915#265]) +3 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl7/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max.html

  * igt@kms_plane_lowres@pipe-c-tiling-yf:
    - shard-tglb:         NOTRUN -> [SKIP][86] ([fdo#112054]) +1 similar issue
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb5/igt@kms_plane_lowres@pipe-c-tiling-yf.html

  * igt@kms_prime@basic-crc@first-to-second:
    - shard-tglb:         NOTRUN -> [SKIP][87] ([i915#1836])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb2/igt@kms_prime@basic-crc@first-to-second.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4:
    - shard-tglb:         NOTRUN -> [SKIP][88] ([i915#2920]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2:
    - shard-kbl:          NOTRUN -> [SKIP][89] ([fdo#109271] / [i915#658]) +1 similar issue
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-tglb:         NOTRUN -> [SKIP][90] ([i915#1911])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb5/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr2_su@page_flip:
    - shard-apl:          NOTRUN -> [SKIP][91] ([fdo#109271] / [i915#658]) +4 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl6/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_basic:
    - shard-tglb:         NOTRUN -> [FAIL][92] ([i915#132] / [i915#3467]) +1 similar issue
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb5/igt@kms_psr@psr2_basic.html
    - shard-iclb:         NOTRUN -> [SKIP][93] ([fdo#109441])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb1/igt@kms_psr@psr2_basic.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][94] -> [SKIP][95] ([fdo#109441])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb3/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@nouveau_crc@pipe-b-source-rg:
    - shard-iclb:         NOTRUN -> [SKIP][96] ([i915#2530])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb1/igt@nouveau_crc@pipe-b-source-rg.html
    - shard-tglb:         NOTRUN -> [SKIP][97] ([i915#2530]) +2 similar issues
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb5/igt@nouveau_crc@pipe-b-source-rg.html

  * igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name:
    - shard-tglb:         NOTRUN -> [SKIP][98] ([fdo#109291]) +3 similar issues
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb3/igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name.html
    - shard-iclb:         NOTRUN -> [SKIP][99] ([fdo#109291]) +1 similar issue
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb1/igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name.html

  * igt@prime_vgem@fence-read-hang:
    - shard-tglb:         NOTRUN -> [SKIP][100] ([fdo#109295])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb5/igt@prime_vgem@fence-read-hang.html
    - shard-iclb:         NOTRUN -> [SKIP][101] ([fdo#109295])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb8/igt@prime_vgem@fence-read-hang.html

  * igt@runner@aborted:
    - shard-snb:          NOTRUN -> ([FAIL][102], [FAIL][103]) ([i915#3002])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-snb2/igt@runner@aborted.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-snb6/igt@runner@aborted.html

  * igt@sysfs_clients@sema-50:
    - shard-apl:          NOTRUN -> [SKIP][104] ([fdo#109271] / [i915#2994]) +4 similar issues
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl7/igt@sysfs_clients@sema-50.html
    - shard-glk:          NOTRUN -> [SKIP][105] ([fdo#109271] / [i915#2994]) +2 similar issues
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk5/igt@sysfs_clients@sema-50.html

  * igt@sysfs_clients@split-10:
    - shard-iclb:         NOTRUN -> [SKIP][106] ([i915#2994])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb6/igt@sysfs_clients@split-10.html
    - shard-tglb:         NOTRUN -> [SKIP][107] ([i915#2994])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb1/igt@sysfs_clients@split-10.html
    - shard-kbl:          NOTRUN -> [SKIP][108] ([fdo#109271] / [i915#2994])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl3/igt@sysfs_clients@split-10.html

  
#### Possible fixes ####

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         [TIMEOUT][109] ([i915#2369] / [i915#3063] / [i915#3648]) -> [PASS][110]
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-tglb3/igt@gem_eio@unwedge-stress.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb5/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [FAIL][111] ([i915#2842]) -> [PASS][112]
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-tglb6/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb2/igt@gem_exec_fair@basic-pace-share@rcs0.html
    - shard-glk:          [FAIL][113] ([i915#2842]) -> [PASS][114] +1 similar issue
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_whisper@basic-queues-priority-all:
    - shard-glk:          [DMESG-WARN][115] ([i915#118]) -> [PASS][116]
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-glk8/igt@gem_exec_whisper@basic-queues-priority-all.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk9/igt@gem_exec_whisper@basic-queues-priority-all.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-iclb:         [FAIL][117] ([i915#454]) -> [PASS][118]
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb5/igt@i915_pm_dc@dc6-dpms.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-kbl:          [DMESG-WARN][119] ([i915#180]) -> [PASS][120]
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-kbl4/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-glk:          [FAIL][121] ([i915#72]) -> [PASS][122]
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-edp1:
    - shard-tglb:         [INCOMPLETE][123] ([i915#2411] / [i915#456]) -> [PASS][124] +1 similar issue
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-tglb7/igt@kms_flip@flip-vs-suspend-interruptible@a-edp1.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb6/igt@kms_flip@flip-vs-suspend-interruptible@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
    - shard-apl:          [DMESG-WARN][125] ([i915#180]) -> [PASS][126] +5 similar issues
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-apl2/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile:
    - shard-iclb:         [SKIP][127] ([i915#3701]) -> [PASS][128]
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
    - shard-tglb:         [INCOMPLETE][129] ([i915#456]) -> [PASS][130]
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-tglb7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-tglb3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [SKIP][131] ([fdo#109441]) -> [PASS][132] +2 similar issues
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10733/shard-iclb4/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6321/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.htm

== Logs ==

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

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

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

end of thread, other threads:[~2021-10-14 13:44 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-14 11:09 [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory apoorva1.singh
2021-10-14 11:40 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/prime_mmap: Add support for local memory (rev2) Patchwork
2021-10-14 12:31 ` [igt-dev] [PATCH i-g-t, v2] tests/prime_mmap: Add support for local memory Zbigniew Kempczyński
2021-10-14 13:44 ` [igt-dev] ✓ Fi.CI.IGT: success for tests/prime_mmap: Add support for local memory (rev2) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.