Quoting Matthew Auld (2018-10-29 20:37:34) > When using softpin it's not enough to just pad the vma size, we also > need to ensure the vma offset is at the start of the pt boundary, if we > plan to utilize 64K pages. Therefore to improve test coverage we should > use both aligned and unaligned gtt offsets in igt_write_huge. > > Suggested-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Matthew Auld <matthew.auld@xxxxxxxxx> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/selftests/huge_pages.c | 22 +++++++++++++++++---- > 1 file changed, 18 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/selftests/huge_pages.c b/drivers/gpu/drm/i915/selftests/huge_pages.c > index 256001b00e32..26c065c8d2c0 100644 > --- a/drivers/gpu/drm/i915/selftests/huge_pages.c > +++ b/drivers/gpu/drm/i915/selftests/huge_pages.c > @@ -1135,7 +1135,8 @@ static int igt_write_huge(struct i915_gem_context *ctx, > n = 0; > for_each_engine(engine, i915, id) { > if (!intel_engine_can_store_dword(engine)) { > - pr_info("store-dword-imm not supported on engine=%u\n", id); > + pr_info("store-dword-imm not supported on engine=%u\n", > + id); > continue; > } > engines[n++] = engine; > @@ -1167,17 +1168,30 @@ static int igt_write_huge(struct i915_gem_context *ctx, > engine = engines[order[i] % n]; > i = (i + 1) % (n * I915_NUM_ENGINES); > > - err = __igt_write_huge(ctx, engine, obj, size, offset_low, dword, num + 1); > + /* > + * In order to utilize 64K pages we need to both pad the vma > + * size and ensure the vma offset is at the start of the pt > + * boundary, however to improve coverage we opt for testing both > + * aligned and unaligned offsets. > + */ > + if (obj->mm.page_sizes.sg & I915_GTT_PAGE_SIZE_64K) > + offset_low = round_down(offset_low, > + I915_GTT_PAGE_SIZE_2M); > + > + err = __igt_write_huge(ctx, engine, obj, size, offset_low, > + dword, num + 1); > if (err) > break; > > - err = __igt_write_huge(ctx, engine, obj, size, offset_high, dword, num + 1); > + err = __igt_write_huge(ctx, engine, obj, size, offset_high, > + dword, num + 1); Gotcha, alternating between an aligned address and unaligned address. Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx