[igt-dev] [PATCH i-g-t v5 4/4] tests/gem_ctx_shared: Align objects using minimum GTT alignment

Vanshidhar Konda vanshidhar.r.konda at intel.com
Mon Nov 4 20:49:13 UTC 2019


On Mon, Nov 04, 2019 at 06:13:30PM +0100, Janusz Krzysztofik wrote:
>exec-shared-gtt-* subtests use hardcoded values for object size and
>softpin offset, based on 4kB GTT alignment assumption.  That may result
>in those subtests failing when run on future backing stores with
>possibly larger minimum page sizes.
>
>Replace hardcoded constants with values calculated from minimum GTT
>alignment of actual backing store the test is running on.
>
>v2: Update helper name, use 'minimum GTT alignment' term across the
>    change, adjust variable name.
>v3: Name the variable 'stride', not 'alignment', it better reflects
>    its purpose (Chris).
>
>Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
>Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
>---
> tests/i915/gem_ctx_shared.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
>diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
>index f7852482..cb726b4d 100644
>--- a/tests/i915/gem_ctx_shared.c
>+++ b/tests/i915/gem_ctx_shared.c
>@@ -41,6 +41,7 @@
> #include "igt_rand.h"
> #include "igt_vgem.h"
> #include "sync_file.h"
>+#include "i915/gem_gtt_topology.c"
>
> #define LO 0
> #define HI 1
>@@ -195,6 +196,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
> 	uint32_t scratch, *s;
> 	uint32_t batch, cs[16];
> 	uint64_t offset;
>+	uint64_t stride;
> 	int i;
>
> 	gem_require_ring(i915, ring);
>@@ -203,7 +205,8 @@ static void exec_shared_gtt(int i915, unsigned int ring)
> 	clone = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
>
> 	/* Find a hole big enough for both objects later */
>-	scratch = gem_create(i915, 16384);
>+	stride = 2 * gem_gtt_min_alignment(i915);
>+	scratch = gem_create(i915, 2 * stride);
> 	gem_write(i915, scratch, 0, &bbe, sizeof(bbe));
> 	obj.handle = scratch;
> 	gem_execbuf(i915, &execbuf);
>@@ -246,7 +249,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
> 	gem_write(i915, batch, 0, cs, sizeof(cs));
>
> 	obj.handle = batch;
>-	obj.offset += 8192; /* make sure we don't cause an eviction! */
>+	obj.offset += stride; /* make sure we don't cause an eviction! */
> 	execbuf.rsvd1 = clone;
> 	if (gen > 3 && gen < 6)
> 		execbuf.flags |= I915_EXEC_SECURE;
>-- 
>2.21.0

Reviewed-by: Vanshidhar Konda <vanshidhar.r.konda at intel.com>

>


More information about the igt-dev mailing list