Message ID | 20191104171330.24821-5-janusz.krzysztofik@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Calculate softpin offsets from minimum GTT alignment | expand |
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@linux.intel.com> >Reviewed-by: Chris Wilson <chris@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@intel.com> >
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;