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

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

 



On Tue, Aug 15, 2017 at 11:34:30AM +0100, Chris Wilson wrote:
> 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>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@xxxxxxxxx>
> ---
>  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
_______________________________________________
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