[Intel-gfx] [PATCH] drm/i915/selftests: Wait request to finish

Matthew Auld matthew.auld at intel.com
Mon Oct 18 07:54:14 UTC 2021


On 18/10/2021 04:42, Oak Zeng wrote:
> Caller of function igt_gpu_fill_dw assumes when this function
> returns, the gpu command to fill dword is already finished.
> Caller usually checks the GPU filling result immediately, see
> the usage in function __igt_write_huge. If there is no wait,
> when function igt_gpu_fill_dw returns, the GPU command is not
> guaranteed to be finished. So wait for request to finish.

AFAIK the existing callers only expect that the request will be 
scheduled to run at some point, like in the case of __igt_write_huge(), 
before we read the page contents via the CPU, there is an object_wait(). 
Also in the shrink_thp test I guess we intentionally don't want to wait 
directly in the test, since part of what we are testing is that the 
shrinker ensures the object is idle before unbinding it.

> 
> Signed-off-by: Oak Zeng <oak.zeng at intel.com>
> ---
>   drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
> index b35c1219c852..5fa595ed30b1 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
> @@ -157,6 +157,7 @@ int igt_gpu_fill_dw(struct intel_context *ce,
>   	if (err)
>   		i915_request_set_error_once(rq, err);
>   	i915_request_add(rq);
> +	err = i915_request_wait(rq, 0, HZ/5);
>   err_batch:
>   	i915_vma_unpin_and_release(&batch, 0);
>   	return err;
> 


More information about the Intel-gfx mailing list