[PATCH igt] igt/gem_evict_(alignment, everything): Limit to low 4G

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These tests do not tell the kernel they can use the upper 48bits of
aperture space, and cause eviction on the low 4G just as effectively
exercising the evict code.

Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
---
 tests/gem_evict_alignment.c  | 35 +++++++++++++++++++++++++++++------
 tests/gem_evict_everything.c | 33 +++++++++++++++++++++++++++------
 2 files changed, 56 insertions(+), 12 deletions(-)

diff --git a/tests/gem_evict_alignment.c b/tests/gem_evict_alignment.c
index a5dfd0d9..8e6180bb 100644
--- a/tests/gem_evict_alignment.c
+++ b/tests/gem_evict_alignment.c
@@ -196,29 +196,46 @@ igt_main
 	igt_fixture {
 		fd = drm_open_driver(DRIVER_INTEL);
 		igt_require_gem(fd);
+		igt_fork_hang_detector(fd);
 	}
 
 	igt_subtest("minor-normal") {
 		size = 1024 * 1024;
-		count = 3*gem_aperture_size(fd) / size / 4;
+		count = gem_aperture_size(fd);
+		if (count >> 32)
+			count = 1 << 32;
+		count = 3 * count / size / 4;
 		minor_evictions(fd, size, count);
 	}
 
 	igt_subtest("major-normal") {
-		size = 3*gem_aperture_size(fd) / 4;
+		size = gem_aperture_size(fd);
+		if (size >> 32)
+			size = 1 << 32;
+		size = 3 * size / 4;
 		count = 4;
 		major_evictions(fd, size, count);
 	}
 
+	igt_fixture {
+		igt_stop_hang_detector();
+	}
+
 	igt_fork_signal_helper();
 	igt_subtest("minor-interruptible") {
 		size = 1024 * 1024;
-		count = 3*gem_aperture_size(fd) / size / 4;
+		count = gem_aperture_size(fd);
+		if (count >> 32)
+			count = 1 << 32;
+		count = 3 * count / size / 4;
 		minor_evictions(fd, size, count);
 	}
 
 	igt_subtest("major-interruptible") {
-		size = 3*gem_aperture_size(fd) / 4;
+		size = gem_aperture_size(fd);
+		if (size >> 32)
+			size = 1 << 32;
+		size = 3 * size / 4;
 		count = 4;
 		major_evictions(fd, size, count);
 	}
@@ -226,12 +243,18 @@ igt_main
 	igt_subtest("minor-hang") {
 		igt_fork_hang_helper();
 		size = 1024 * 1024;
-		count = 3*gem_aperture_size(fd) / size / 4;
+		count = gem_aperture_size(fd);
+		if (count >> 32)
+			count = 1 << 32;
+		count = 3 * count / size / 4;
 		minor_evictions(fd, size, count);
 	}
 
 	igt_subtest("major-hang") {
-		size = 3*gem_aperture_size(fd) / 4;
+		size = gem_aperture_size(fd);
+		if (size >> 32)
+			size = 1 << 32;
+		size = 3 * size / 4;
 		count = 4;
 		major_evictions(fd, size, count);
 	}
diff --git a/tests/gem_evict_everything.c b/tests/gem_evict_everything.c
index 2f93cde1..6aec7c18 100644
--- a/tests/gem_evict_everything.c
+++ b/tests/gem_evict_everything.c
@@ -185,7 +185,12 @@ igt_main
 		igt_require_gem(fd);
 
 		size = 1024 * 1024;
-		count = 3*gem_aperture_size(fd) / size / 4;
+		count = gem_aperture_size(fd);
+		if (count >> 32)
+			count = 1 << 32;
+		count = 3 * count / size / 4;
+
+		igt_fork_hang_detector(fd);
 	}
 
 	for (unsigned flags = 0; flags < ALL_FORKING_EVICTIONS + 1; flags++) {
@@ -210,14 +215,20 @@ igt_main
 		test_minor_evictions(fd, size, count);
 
 	igt_subtest("major-normal") {
-		size = 3*gem_aperture_size(fd) / 4;
+		size = gem_aperture_size(fd);
+		if (size >> 32)
+			size = 1 << 32;
+		size = 3 * size / 4;
 		count = 4;
 		test_major_evictions(fd, size, count);
 	}
 
 	igt_fixture {
 		size = 1024 * 1024;
-		count = 3*gem_aperture_size(fd) / size / 4;
+		count = gem_aperture_size(fd);
+		if (count >> 32)
+			count = 1 << 32;
+		count = 3 * count / size / 4;
 	}
 
 	igt_fork_signal_helper();
@@ -232,16 +243,23 @@ igt_main
 		test_minor_evictions(fd, size, count);
 
 	igt_subtest("major-interruptible") {
-		size = 3*gem_aperture_size(fd) / 4;
+		size = gem_aperture_size(fd);
+		if (size >> 32)
+			size = 1 << 32;
+		size = 3 * size / 4;
 		count = 4;
 		test_major_evictions(fd, size, count);
 	}
 
 	igt_fixture {
+		igt_stop_hang_detector();
 		igt_fork_hang_helper();
 
 		size = 1024 * 1024;
-		count = 3*gem_aperture_size(fd) / size / 4;
+		count = gem_aperture_size(fd);
+		if (count >> 32)
+			count = 1 << 32;
+		count = 3 * count / size / 4;
 	}
 
 	igt_subtest("mlocked-hang")
@@ -254,7 +272,10 @@ igt_main
 		test_minor_evictions(fd, size, count);
 
 	igt_subtest("major-hang") {
-		size = 3*gem_aperture_size(fd) / 4;
+		size = gem_aperture_size(fd);
+		if (size >> 32)
+			size = 1 << 32;
+		size = 3 * size / 4;
 		count = 4;
 		test_major_evictions(fd, size, count);
 	}
-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux