diff mbox series

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

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

Commit Message

Janusz Krzysztofik Nov. 4, 2019, 5:13 p.m. UTC
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(-)

Comments

Vanshidhar Konda Nov. 4, 2019, 8:49 p.m. UTC | #1
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 mbox series

Patch

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;