Re: [Intel-gfx] [PATCH i-g-t] i915/gem_softpin: Check the last 32b page is excluded

2020-12-16 Thread Chris Wilson
Quoting Tang, CQ (2020-12-16 21:23:04)
> 
> 
> > -Original Message-
> > From: Chris Wilson 
> > Sent: Wednesday, December 16, 2020 12:53 PM
> > To: intel-gfx@lists.freedesktop.org
> > Cc: Chris Wilson ; Tang, CQ 
> > Subject: [PATCH i-g-t] i915/gem_softpin: Check the last 32b page is excluded
> > 
> > In order to prevent issues with 32b stateless address, the last page under 
> > 4G
> > is excluded for non-48b objects.
> > 
> > Signed-off-by: Chris Wilson 
> > Cc: CQ Tang 
> > ---
> >  tests/i915/gem_softpin.c | 37
> > +
> >  1 file changed, 37 insertions(+)
> > 
> > diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c index
> > a3e6dcac3..703beb77d 100644
> > --- a/tests/i915/gem_softpin.c
> > +++ b/tests/i915/gem_softpin.c
> > @@ -156,6 +156,39 @@ static void test_zero(int i915)
> >   gem_close(i915, object.handle);
> >  }
> > 
> > +static void test_32b_last_page(int i915) {
> > + uint64_t sz, gtt = gem_aperture_size(i915);
> > + struct drm_i915_gem_exec_object2 object = {
> > + .flags = EXEC_OBJECT_PINNED,
> > + };
> > + struct drm_i915_gem_execbuffer2 execbuf = {
> > + .buffers_ptr = to_user_pointer(),
> > + .buffer_count = 1,
> > + };
> > +
> > + /*
> > +  * The last page under 32b is excluded for !48b objects in order to
> > +  * prevent issues with stateless addressing.
> > +  */
> > +
> > + igt_require(gtt >= 1ull << 32);
> > + object.handle = batch_create(i915, ),
> 
> Where is this batch_create() version?

In upstream. Just the regular batch_create() but returning the allocated
size.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH i-g-t] i915/gem_softpin: Check the last 32b page is excluded

2020-12-16 Thread Tang, CQ



> -Original Message-
> From: Chris Wilson 
> Sent: Wednesday, December 16, 2020 12:53 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Chris Wilson ; Tang, CQ 
> Subject: [PATCH i-g-t] i915/gem_softpin: Check the last 32b page is excluded
> 
> In order to prevent issues with 32b stateless address, the last page under 4G
> is excluded for non-48b objects.
> 
> Signed-off-by: Chris Wilson 
> Cc: CQ Tang 
> ---
>  tests/i915/gem_softpin.c | 37
> +
>  1 file changed, 37 insertions(+)
> 
> diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c index
> a3e6dcac3..703beb77d 100644
> --- a/tests/i915/gem_softpin.c
> +++ b/tests/i915/gem_softpin.c
> @@ -156,6 +156,39 @@ static void test_zero(int i915)
>   gem_close(i915, object.handle);
>  }
> 
> +static void test_32b_last_page(int i915) {
> + uint64_t sz, gtt = gem_aperture_size(i915);
> + struct drm_i915_gem_exec_object2 object = {
> + .flags = EXEC_OBJECT_PINNED,
> + };
> + struct drm_i915_gem_execbuffer2 execbuf = {
> + .buffers_ptr = to_user_pointer(),
> + .buffer_count = 1,
> + };
> +
> + /*
> +  * The last page under 32b is excluded for !48b objects in order to
> +  * prevent issues with stateless addressing.
> +  */
> +
> + igt_require(gtt >= 1ull << 32);
> + object.handle = batch_create(i915, ),

Where is this batch_create() version?

--CQ

> +
> + object.offset = 1ull << 32;
> + object.offset -= sz;
> + igt_assert_f(__gem_execbuf(i915, ) == -EINVAL,
> +  "execbuf succeeded with object.offset=%llx
> + %"PRIx64"\n",
> +  object.offset, sz);
> +
> + object.offset -= 4096;
> + igt_assert_f(__gem_execbuf(i915, ) == 0,
> +  "execbuf failed with object.offset=%llx + %"PRIx64"\n",
> +  object.offset, sz);
> +
> + gem_close(i915, object.handle);
> +}
> +
>  static void test_softpin(int fd)
>  {
>   const uint32_t size = 1024 * 1024;
> @@ -622,6 +655,10 @@ igt_main
>   igt_require(gem_uses_full_ppgtt(fd));
>   test_zero(fd);
>   }
> + igt_subtest("32b-excludes-last-page") {
> + igt_require(gem_uses_full_ppgtt(fd));
> + test_32b_last_page(fd);
> + }
>   igt_subtest("softpin")
>   test_softpin(fd);
>   igt_subtest("overlap")
> --
> 2.29.2

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