Re: [PATCH v5 1/2] drm/i915: Migrate platform-dependent mock hugepage selftests to live

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----Original Message-----
From: Auld, Matthew <matthew.auld@xxxxxxxxx> 
Sent: Thursday, March 2, 2023 2:36 AM
To: Cavitt, Jonathan <jonathan.cavitt@xxxxxxxxx>; intel-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Dutt, Sudeep <sudeep.dutt@xxxxxxxxx>; thomas.hellstrom@xxxxxxxxxxxxxxx; maarten.lankhorst@xxxxxxxxxxxxxxx; Vetter, Daniel <daniel.vetter@xxxxxxxxx>; De Marchi, Lucas <lucas.demarchi@xxxxxxxxx>; chris.p.wilson@xxxxxxxxxxxxxxx
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@xxxxxxxxx>
> > 
> > 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)) {
> 




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux