On Wed, 8 Jul 2020 at 14:48, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > > The GEM object is grossly overweight for the practicality of tracking > large numbers of individual pages, yet it is currently our only > abstraction for tracking DMA allocations. Since those allocations need > to be reserved upfront before an operation, and that we need to break > away from simple system memory, we need to ditch using plain struct page > wrappers. > > In the process, we drop the WC mapping as we ended up clflushing > everything anyway due to various issues across a wider range of > platforms. Though in a future step, we need to drop the kmap_atomic > approach which suggests we need to pre-map all the pages and keep them > mapped. > > v2: Verify our large scratch page is suitably DMA aligned; and manually > clear the scratch since we are allocating random struct pages. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Matthew Auld <matthew.auld@xxxxxxxxx> > --- > .../gpu/drm/i915/gem/i915_gem_object_types.h | 1 + > .../gpu/drm/i915/gem/selftests/huge_pages.c | 2 +- > .../drm/i915/gem/selftests/i915_gem_context.c | 2 +- > drivers/gpu/drm/i915/gt/gen6_ppgtt.c | 53 +-- > drivers/gpu/drm/i915/gt/gen6_ppgtt.h | 1 + > drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 89 ++--- > drivers/gpu/drm/i915/gt/intel_ggtt.c | 37 ++- > drivers/gpu/drm/i915/gt/intel_gtt.c | 303 ++++-------------- > drivers/gpu/drm/i915/gt/intel_gtt.h | 94 ++---- > drivers/gpu/drm/i915/gt/intel_ppgtt.c | 42 ++- > .../gpu/drm/i915/gt/intel_ring_submission.c | 16 +- > drivers/gpu/drm/i915/gvt/scheduler.c | 17 +- > drivers/gpu/drm/i915/i915_drv.c | 1 + > drivers/gpu/drm/i915/i915_drv.h | 5 - > drivers/gpu/drm/i915/i915_vma.c | 18 +- > drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 23 ++ > drivers/gpu/drm/i915/selftests/mock_gtt.c | 4 + > 17 files changed, 287 insertions(+), 421 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h > index 5335f799b548..d0847d7896f9 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h > @@ -282,6 +282,7 @@ struct drm_i915_gem_object { > } userptr; > > unsigned long scratch; > + u64 encode; > > void *gvt_info; > }; > diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c > index 8291ede6902c..9fb06fcc8f8f 100644 > --- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c > +++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c > @@ -393,7 +393,7 @@ static int igt_mock_exhaust_device_supported_pages(void *arg) > */ > > for (i = 1; i < BIT(ARRAY_SIZE(page_sizes)); i++) { > - unsigned int combination = 0; > + unsigned int combination = SZ_4K; Just an unrelated change? _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx