[PATCH 00/13] drm/i915: ttm for stolen
Robert Beckett
bob.beckett at collabora.com
Fri Jun 24 17:15:53 UTC 2022
This series refactors i915's stolen memory region to use ttm.
v2: handle disabled stolen similar to legacy version.
relying on ttm to fail allocs works fine, but is dmesg noisy and causes testing
dmesg warning regressions.
v3: rebase to latest drm-tip.
fix v2 code refactor which could leave a buffer pinned.
locally passes fftl again now.
v4: - Allow memory regions creators to do allocation. Allows stolen region to track
it's own reservations.
- Pre-reserve first page of stolen mem (add back WaSkipStolenMemoryFirstPage:bdw+)
- Improve commit descritpion for "drm/i915: sanitize mem_flags for stolen buffers"
- replace i915_gem_object_pin_pages_unlocked() call with manual locking and pinning.
this avoids ww ctx class reuse during context creation -> ring vma obj alloc.
v5: - detect both types of stolen as stolen buffers in
"drm/i915: sanitize mem_flags for stolen buffers"
- in stolen_object_init limit page size to mem region minimum.
The range allocator expects the page_size to define the
alignment
v6: - Share first 4 patches from ttm for internal series as generic
i915 ttm fixes
- Drop patch 4 from v5. We don't need separate object ops just
to satisfy test interfaces. The tests have now been fixed via
checking whether the memory region is private to decide
whether to mmap
- Add new buffer pin alloc flag to allow creation of buffers in
their final ttm placement instead of deferring until
get_pages. This fixes legacy fallback paths for buffer
allocations during stolen memory pressure.
v7: - fix mock_region_get_pages() to correctly handle I915_BO_INVALID_OFFSET
v8: - Reserve I915_GEM_STOLEN_BIAS area from stolen
Robert Beckett (13):
drm/i915/ttm: dont trample cache_level overrides during ttm move
drm/i915: limit ttm to dma32 for i965G[M]
drm/i915/ttm: only trust snooping for dgfx when deciding default
cache_level
drm/i915/gem: selftest should not attempt mmap of private regions
drm/i915: instantiate ttm ranger manager for stolen memory
drm/i915: sanitize mem_flags for stolen buffers
drm/i915: ttm move/clear logic fix
drm/i915: allow memory region creators to alloc and free the region
drm/i915/ttm: add buffer pin on alloc flag
drm/i915: stolen memory use ttm backend
[DEBUG] dump before data for comparison
[DEBUG] dump busy debug
[DEBUG] dump stolen region
drivers/gpu/drm/i915/display/intel_fbc.c | 78 ++--
drivers/gpu/drm/i915/gem/i915_gem_object.c | 1 +
.../gpu/drm/i915/gem/i915_gem_object_types.h | 16 +-
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 441 +++++++-----------
drivers/gpu/drm/i915/gem/i915_gem_stolen.h | 21 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 29 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.h | 7 +
drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 47 +-
.../drm/i915/gem/selftests/i915_gem_mman.c | 3 +
drivers/gpu/drm/i915/gt/intel_rc6.c | 4 +-
drivers/gpu/drm/i915/gt/selftest_reset.c | 120 ++++-
drivers/gpu/drm/i915/i915_debugfs.c | 7 +-
drivers/gpu/drm/i915/i915_drv.h | 5 -
drivers/gpu/drm/i915/intel_memory_region.c | 16 +-
drivers/gpu/drm/i915/intel_memory_region.h | 2 +
drivers/gpu/drm/i915/intel_region_ttm.c | 107 ++++-
drivers/gpu/drm/i915/intel_region_ttm.h | 21 +-
drivers/gpu/drm/i915/selftests/mock_region.c | 12 +-
18 files changed, 565 insertions(+), 372 deletions(-)
--
2.25.1
More information about the Intel-gfx-trybot
mailing list