[PATCH v2 0/5] Partial GGTT views

Joonas Lahtinen
2015-04-30T11:18:28Z

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