[igt-dev] [PATCH i-g-t 2/3] Force spin-batch to cause a hang as required

Andi Shyti andi.shyti at intel.com
Thu Sep 19 14:09:09 UTC 2019


On Wed, Sep 11, 2019 at 11:15:00AM +0100, Chris Wilson wrote:
> When using a spinner to trigger a hang, make it unpreemptable so that it
> appears like a true hang.
> 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=109661
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

Reviewed-by: Andi Shyti <andi.shyti at intel.com>

Andi

> ---
>  tests/i915/gem_eio.c        | 4 +++-
>  tests/i915/gem_exec_fence.c | 3 ++-
>  tests/kms_busy.c            | 3 ++-
>  3 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> index e0213c76c..e7f5d4ddb 100644
> --- a/tests/i915/gem_eio.c
> +++ b/tests/i915/gem_eio.c
> @@ -178,7 +178,9 @@ static igt_spin_t * __spin_poll(int fd, uint32_t ctx, unsigned long flags)
>  	struct igt_spin_factory opts = {
>  		.ctx = ctx,
>  		.engine = flags,
> -		.flags = IGT_SPIN_FAST | IGT_SPIN_FENCE_OUT,
> +		.flags = (IGT_SPIN_FAST |
> +			  IGT_SPIN_NO_PREEMPTION |
> +			  IGT_SPIN_FENCE_OUT),
>  	};
>  
>  	if (gem_can_store_dword(fd, opts.engine))
> diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
> index 207182922..2f04d7af4 100644
> --- a/tests/i915/gem_exec_fence.c
> +++ b/tests/i915/gem_exec_fence.c
> @@ -331,7 +331,8 @@ static void test_fence_await(int fd, unsigned ring, unsigned flags)
>  
>  	spin = igt_spin_new(fd,
>  			    .engine = ring,
> -			    .flags = IGT_SPIN_FENCE_OUT);
> +			    .flags = (IGT_SPIN_FENCE_OUT |
> +				      IGT_SPIN_NO_PREEMPTION));
>  	igt_assert(spin->out_fence != -1);
>  
>  	i = 0;
> diff --git a/tests/kms_busy.c b/tests/kms_busy.c
> index 66f26cd08..7e5ab3d19 100644
> --- a/tests/kms_busy.c
> +++ b/tests/kms_busy.c
> @@ -271,7 +271,8 @@ static void test_pageflip_modeset_hang(igt_display_t *dpy,
>  
>  	t = igt_spin_new(dpy->drm_fd,
>  			 .engine = ring,
> -			 .dependency = fb.gem_handle);
> +			 .dependency = fb.gem_handle,
> +			 .flags = IGT_SPIN_NO_PREEMPTION);
>  
>  	do_or_die(drmModePageFlip(dpy->drm_fd, dpy->pipes[pipe].crtc_id, fb.fb_id, DRM_MODE_PAGE_FLIP_EVENT, &fb));
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list