[igt-dev] [PATCH i-g-t 1/2] i915/gem_exec_params: Assert a 4G object does _not_ fit without 48b

Tang, CQ cq.tang at intel.com
Tue Dec 15 21:47:49 UTC 2020



> -----Original Message-----
> From: Chris Wilson <chris at chris-wilson.co.uk>
> Sent: Tuesday, December 15, 2020 1:07 PM
> To: intel-gfx at lists.freedesktop.org
> Cc: igt-dev at lists.freedesktop.org; Chris Wilson <chris at chris-wilson.co.uk>;
> Tang, CQ <cq.tang at intel.com>
> Subject: [PATCH i-g-t 1/2] i915/gem_exec_params: Assert a 4G object does
> _not_ fit without 48b
> 
> Without opting into 48B addressing, objects are strictly limited to being
> placed only the first (4G - 4K). This is to avoid an issue with stateless 32b
> addressing being unable to access the last 32b page.
> Assert that we do indeed fail to fit in a 4G object without setting the
> EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag.
> 
> Reported-by: CQ Tang <cq.tang at intel.com>
> References:: 48ea1e32c39d ("drm/i915/gen9: Set PIN_ZONE_4G end to 4GB -
> 1 page")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: CQ Tang <cq.tang at intel.com>
> ---
>  tests/i915/gem_exec_params.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/i915/gem_exec_params.c b/tests/i915/gem_exec_params.c
> index c405f4eb7..e679c512a 100644
> --- a/tests/i915/gem_exec_params.c
> +++ b/tests/i915/gem_exec_params.c
> @@ -340,7 +340,13 @@ static void test_larger_than_life_batch(int fd)
>         for_each_engine(e, fd) {
>  	       /* Keep the batch_len implicit [0] */
>  	       execbuf.flags = eb_ring(e);
> -	       gem_execbuf(fd, &execbuf);
> +
> +	       /* non-48b objects are limited to the low (4G - 4K) */
> +	       igt_assert_eq(__gem_execbuf(fd, &execbuf), -ENOSPC);
> +
> +	       exec.flags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
> +	       igt_assert_eq(__gem_execbuf(fd, &execbuf), 0);
> +	       exec.flags = 0;

It is good to test both cases.
Reviewed-by: CQ Tang <cq.tang at intel.com>


>         }
> 
>         gem_sync(fd, exec.handle);
> --
> 2.29.2



More information about the igt-dev mailing list