[Intel-gfx] [PATCH v5 1/2] drm/i915: Migrate platform-dependent mock hugepage selftests to live
Cavitt, Jonathan
jonathan.cavitt at intel.com
Thu Mar 2 14:49:11 UTC 2023
-----Original Message-----
From: Auld, Matthew <matthew.auld at intel.com>
Sent: Thursday, March 2, 2023 2:36 AM
To: Cavitt, Jonathan <jonathan.cavitt at intel.com>; intel-gfx at lists.freedesktop.org
Cc: Dutt, Sudeep <sudeep.dutt at intel.com>; thomas.hellstrom at linux.intel.com; maarten.lankhorst at linux.intel.com; Vetter, Daniel <daniel.vetter at intel.com>; De Marchi, Lucas <lucas.demarchi at intel.com>; chris.p.wilson at linux.intel.com
Subject: Re: [PATCH v5 1/2] drm/i915: Migrate platform-dependent mock hugepage selftests to live
>
> On 28/02/2023 14:08, Matthew Auld wrote:
> > On 27/02/2023 17:19, Jonathan Cavitt wrote:
> >> Convert the igt_mock_ppgtt_huge_fill and igt_mock_ppgtt_64K mock
> >> selftests into
> >> live selftests as their requirements have recently become
> >> platform-dependent.
> >> Additionally, apply necessary platform dependency checks to these tests.
> >>
> >> v2: Reorder
> >>
> >> Signed-off-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
> >
> > r-b still stands for the series. Note that CI is busted atm though, so
> > we can't merge this yet. Likely need to re-trigger testing for the
> > series once CI/drm-tip is working again.
>
> CI looks to be back. Can you trigger a retest through patchwork, or
> resend the series?
Retest request submitted.
-Jonathan Cavitt
>
> >
> >
> >> ---
> >> .../gpu/drm/i915/gem/selftests/huge_pages.c | 22 ++++++++++++++-----
> >> 1 file changed, 17 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> >> b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> >> index defece0bcb81..375f119ab261 100644
> >> --- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> >> +++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> >> @@ -710,7 +710,7 @@ static void close_object_list(struct list_head
> >> *objects,
> >> }
> >> }
> >> -static int igt_mock_ppgtt_huge_fill(void *arg)
> >> +static int igt_ppgtt_huge_fill(void *arg)
> >> {
> >> struct i915_ppgtt *ppgtt = arg;
> >> struct drm_i915_private *i915 = ppgtt->vm.i915;
> >> @@ -784,7 +784,8 @@ static int igt_mock_ppgtt_huge_fill(void *arg)
> >> GEM_BUG_ON(!expected_gtt);
> >> GEM_BUG_ON(size);
> >> - if (expected_gtt & I915_GTT_PAGE_SIZE_4K)
> >> + if (expected_gtt & I915_GTT_PAGE_SIZE_4K &&
> >> + GRAPHICS_VER_FULL(i915) < IP_VER(12, 50))
> >> expected_gtt &= ~I915_GTT_PAGE_SIZE_64K;
> >> i915_vma_unpin(vma);
> >> @@ -831,7 +832,7 @@ static int igt_mock_ppgtt_huge_fill(void *arg)
> >> return err;
> >> }
> >> -static int igt_mock_ppgtt_64K(void *arg)
> >> +static int igt_ppgtt_64K(void *arg)
> >> {
> >> struct i915_ppgtt *ppgtt = arg;
> >> struct drm_i915_private *i915 = ppgtt->vm.i915;
> >> @@ -913,6 +914,17 @@ static int igt_mock_ppgtt_64K(void *arg)
> >> unsigned int offset = objects[i].offset;
> >> unsigned int flags = PIN_USER;
> >> + /*
> >> + * For modern GTT models, the requirements for marking a
> >> page-table
> >> + * as 64K have been relaxed. Account for this.
> >> + */
> >> +
> >> + if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) {
> >> + expected_gtt = 0;
> >> + expected_gtt |= size & (SZ_64K | SZ_2M) ?
> >> I915_GTT_PAGE_SIZE_64K : 0;
> >> + expected_gtt |= size & SZ_4K ? I915_GTT_PAGE_SIZE_4K : 0;
> >> + }
> >> +
> >> for (single = 0; single <= 1; single++) {
> >> obj = fake_huge_pages_object(i915, size, !!single);
> >> if (IS_ERR(obj))
> >> @@ -1910,8 +1922,6 @@ int i915_gem_huge_page_mock_selftests(void)
> >> SUBTEST(igt_mock_exhaust_device_supported_pages),
> >> SUBTEST(igt_mock_memory_region_huge_pages),
> >> SUBTEST(igt_mock_ppgtt_misaligned_dma),
> >> - SUBTEST(igt_mock_ppgtt_huge_fill),
> >> - SUBTEST(igt_mock_ppgtt_64K),
> >> };
> >> struct drm_i915_private *dev_priv;
> >> struct i915_ppgtt *ppgtt;
> >> @@ -1962,6 +1972,8 @@ int i915_gem_huge_page_live_selftests(struct
> >> drm_i915_private *i915)
> >> SUBTEST(igt_ppgtt_sanity_check),
> >> SUBTEST(igt_ppgtt_compact),
> >> SUBTEST(igt_ppgtt_mixed),
> >> + SUBTEST(igt_ppgtt_huge_fill),
> >> + SUBTEST(igt_ppgtt_64K),
> >> };
> >> if (!HAS_PPGTT(i915)) {
>
More information about the Intel-gfx
mailing list