All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v10 00/11] drm/i915: ttm for stolen
@ 2022-07-07 20:02 ` Robert Beckett
  0 siblings, 0 replies; 47+ messages in thread
From: Robert Beckett @ 2022-07-07 20:02 UTC (permalink / raw)
  To: dri-devel, intel-gfx
  Cc: Robert Beckett, Thomas Hellström, kernel, Matthew Auld

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

v9:	- drop patch 8 "drm/i915: allow memory region creators to alloc and free the region"
	  store bias reservation in drm_i915_private instead.
	- Restrict reset selftest to only test !GuC engines.
	  Resetting individual GuC engines from host is not supported
	- Wait for outstanding requests in reset selftest
	  This prevents previous engine test context cleanup appearing
	  as false positive stolen corruption check

v10:	- Fix wiating on requests early error path during reset selftest
	  If a single request fails to complete, the others would not be
	  put, resulting in leaks. Make sure all requests are put before
	  test exit.

Robert Beckett (11):
  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/ttm: add buffer pin on alloc flag
  drm/i915/selftest: don't attempt engine reset of guc submission
    engines
  drm/i915/selftest: wait for requests during engine reset selftest
  drm/i915: stolen memory use ttm backend

 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    | 425 ++++++------------
 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      |  53 ++-
 drivers/gpu/drm/i915/i915_debugfs.c           |   7 +-
 drivers/gpu/drm/i915/i915_drv.h               |   6 +-
 drivers/gpu/drm/i915/intel_region_ttm.c       |  80 +++-
 drivers/gpu/drm/i915/intel_region_ttm.h       |   8 +-
 drivers/gpu/drm/i915/selftests/mock_region.c  |  12 +-
 16 files changed, 420 insertions(+), 377 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2022-07-08 15:38 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-07 20:02 [PATCH v10 00/11] drm/i915: ttm for stolen Robert Beckett
2022-07-07 20:02 ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02 ` [PATCH v10 01/11] drm/i915/ttm: dont trample cache_level overrides during ttm move Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 02/11] drm/i915: limit ttm to dma32 for i965G[M] Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 03/11] drm/i915/ttm: only trust snooping for dgfx when deciding default cache_level Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 04/11] drm/i915/gem: selftest should not attempt mmap of private regions Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-08  7:53   ` Matthew Auld
2022-07-08  7:53     ` [Intel-gfx] " Matthew Auld
2022-07-08  7:53     ` Matthew Auld
2022-07-08 13:22     ` Robert Beckett
2022-07-08 13:22       ` [Intel-gfx] " Robert Beckett
2022-07-08 13:27       ` Matthew Auld
2022-07-08 13:27         ` [Intel-gfx] " Matthew Auld
2022-07-08 13:31         ` Robert Beckett
2022-07-08 13:31           ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02 ` [PATCH v10 05/11] drm/i915: instantiate ttm ranger manager for stolen memory Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 06/11] drm/i915: sanitize mem_flags for stolen buffers Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 07/11] drm/i915: ttm move/clear logic fix Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 08/11] drm/i915/ttm: add buffer pin on alloc flag Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 09/11] drm/i915/selftest: don't attempt engine reset of guc submission engines Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 10/11] drm/i915/selftest: wait for requests during engine reset selftest Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 20:02 ` [PATCH v10 11/11] drm/i915: stolen memory use ttm backend Robert Beckett
2022-07-07 20:02   ` [Intel-gfx] " Robert Beckett
2022-07-07 20:02   ` Robert Beckett
2022-07-07 21:02 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: ttm for stolen (rev8) Patchwork
2022-07-07 21:25 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-07-08 15:38 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.