drm/i915/ttm: Drop region reference counting
There is an interesting refcounting loop: struct intel_memory_region has a struct ttm_resource_manager, ttm_resource_manager->move may hold a reference to i915_request, i915_request may hold a reference to intel_context, intel_context may hold a reference to drm_i915_gem_object, drm_i915_gem_object may hold a reference to intel_memory_region. Break this loop by dropping region reference counting. In addition, Have regions with a manager moving fence make sure that all region objects are released before freeing the region. v6: - Fix a code comment. Signed-off-by:Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by:
Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20211122214554.371864-4-thomas.hellstrom@linux.intel.com
Showing
- drivers/gpu/drm/i915/gem/i915_gem_region.c 1 addition, 3 deletionsdrivers/gpu/drm/i915/gem/i915_gem_region.c
- drivers/gpu/drm/i915/gem/i915_gem_shmem.c 2 additions, 1 deletiondrivers/gpu/drm/i915/gem/i915_gem_shmem.c
- drivers/gpu/drm/i915/gem/i915_gem_stolen.c 4 additions, 2 deletionsdrivers/gpu/drm/i915/gem/i915_gem_stolen.c
- drivers/gpu/drm/i915/gem/i915_gem_ttm.c 2 additions, 1 deletiondrivers/gpu/drm/i915/gem/i915_gem_ttm.c
- drivers/gpu/drm/i915/gem/selftests/huge_pages.c 1 addition, 1 deletiondrivers/gpu/drm/i915/gem/selftests/huge_pages.c
- drivers/gpu/drm/i915/gt/intel_region_lmem.c 7 additions, 3 deletionsdrivers/gpu/drm/i915/gt/intel_region_lmem.c
- drivers/gpu/drm/i915/intel_memory_region.c 7 additions, 19 deletionsdrivers/gpu/drm/i915/intel_memory_region.c
- drivers/gpu/drm/i915/intel_memory_region.h 2 additions, 7 deletionsdrivers/gpu/drm/i915/intel_memory_region.h
- drivers/gpu/drm/i915/intel_region_ttm.c 33 additions, 2 deletionsdrivers/gpu/drm/i915/intel_region_ttm.c
- drivers/gpu/drm/i915/intel_region_ttm.h 1 addition, 1 deletiondrivers/gpu/drm/i915/intel_region_ttm.h
- drivers/gpu/drm/i915/selftests/intel_memory_region.c 4 additions, 4 deletionsdrivers/gpu/drm/i915/selftests/intel_memory_region.c
- drivers/gpu/drm/i915/selftests/mock_region.c 5 additions, 2 deletionsdrivers/gpu/drm/i915/selftests/mock_region.c
Loading