This series adds partial GGTT views and uses them from the GTT mmap
fault handler for objects bigger than the whole aperture. This use case
was earlier early detected and rejected completely, so no previous code
paths are changed, only a new one is added. This allows to handle huge
objects (compared to aperture size) through mmap from user land.

And not only huge objects, but when objects are of regular size and
aperture is shrinked due to virtualization (like with vGT). XenGT is the
original and primary target for this initial partial GGTT view support,
where programs fail due to the GGTT being extremely small, but payloads
remain the same.

Tiling is not supported yet. The gem_mmap_gtt suite passes without
errors even when the mmap fault handler would be converted to
unconditionally use partial views.

Regards, Joonas

v2:
- Cleanups, and bump the activation treshold to only cover the code the
  code path that was previously early rejected.

Joonas Lahtinen (5):
  drm/i915: Do not clear mappings beyond VMA size
  drm/i915: Do not make assumptions on GGTT VMA sizes
  drm/i915: Consider object pinned if any VMA is pinned
  drm/i915: Add a partial GGTT view type
  drm/i915: Use partial view in mmap fault handler

 drivers/gpu/drm/i915/i915_gem.c     | 179 +++++++++++++++++++++++-------------
 drivers/gpu/drm/i915/i915_gem_gtt.c |  76 ++++++++++++++-
 drivers/gpu/drm/i915/i915_gem_gtt.h |  19 +++-
 3 files changed, 204 insertions(+), 70 deletions(-)

-- 
1.9.3



_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to