mirror_ubuntu-kernels/drivers/gpu/drm/i915/gem
Chris Wilson 2826d447fb drm/i915/gem: Remove shared locking on freeing objects
The obj->base.resv may be shared across many objects, some of which may
still be live and locked, preventing objects from being freed
indefintely. We could individualise the lock during the free, or rely on
a freed object having no contention and being able to immediately free
the pages it owns.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/6469
Fixes: be7612fd66 ("drm/i915: Require object lock when freeing pages during destruction")
Fixes: 6cb12fbda1 ("drm/i915: Use trylock instead of blocking lock for __i915_gem_free_objects.")
Cc: <stable@vger.kernel.org> # v5.17+
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Nirmoy Das <nirmoy.das@intel.com>
Acked-by: Nirmoy Das <nirmoy.das@intel.com>
Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220726144844.18429-1-nirmoy.das@intel.com
(cherry picked from commit 7dd5c56531)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2022-08-08 14:06:59 -04:00
..
selftests drm/i915/selftests: Grab the runtime pm in shrink_thp 2022-07-07 09:16:43 +01:00
i915_gem_busy.c dma-buf: specify usage while adding fences to dma_resv obj v7 2022-04-07 12:53:53 +02:00
i915_gem_clflush.c dma-buf: add DMA_RESV_USAGE_KERNEL v3 2022-04-07 12:53:54 +02:00
i915_gem_clflush.h
i915_gem_context_types.h drm/i915: Fixup kerneldoc in struct i915_gem_context 2022-04-06 08:33:40 +01:00
i915_gem_context.c drm/i915/gem: add missing else 2022-06-22 07:50:03 +01:00
i915_gem_context.h drm/i915/gem: Use to_gt() helper for GGTT accesses 2022-01-05 10:43:36 -08:00
i915_gem_create.c drm/i915/uapi: add NEEDS_CPU_ACCESS hint 2022-07-01 08:30:00 +01:00
i915_gem_create.h drm/i915: split out gem/i915_gem_create.h from i915_drv.h 2022-02-11 14:43:28 +02:00
i915_gem_dmabuf.c drm/i915/dmabuf: Fix prime_mmap to work when using LMEM 2022-03-07 00:09:13 +05:30
i915_gem_dmabuf.h drm/i915: split out gem/i915_gem_dmabuf.h from i915_drv.h 2022-02-11 13:50:37 +02:00
i915_gem_domain.c drm/i915: tweak the ordering in cpu_write_needs_clflush 2022-06-27 12:56:52 +01:00
i915_gem_domain.h drm/i915: split out gem/i915_gem_domain.h from i915_drv.h 2022-02-14 11:25:52 +02:00
i915_gem_execbuffer.c drm/i915/uapi: tweak error capture on recoverable contexts 2022-07-01 08:30:00 +01:00
i915_gem_internal.c drm/i915: split out i915_gem_internal.h from i915_drv.h 2022-02-11 12:52:50 +02:00
i915_gem_internal.h drm/i915: split out i915_gem_internal.h from i915_drv.h 2022-02-11 12:52:50 +02:00
i915_gem_ioctls.h
i915_gem_lmem.c Merge tag 'drm-intel-next-2022-05-20' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-gt-next 2022-05-23 09:34:47 +01:00
i915_gem_lmem.h
i915_gem_mman.c drm/i915: Sunset igpu legacy mmap support based on GRAPHICS_VER_FULL 2022-04-11 09:11:21 +03:00
i915_gem_mman.h
i915_gem_object_types.h drm/i915/gt: Batch TLB invalidations 2022-08-08 14:06:55 -04:00
i915_gem_object.c drm/i915/gem: Remove shared locking on freeing objects 2022-08-08 14:06:59 -04:00
i915_gem_object.h drm/i915/ttm: disallow CPU fallback mode for ccs pages 2022-07-01 08:30:31 +01:00
i915_gem_pages.c drm/i915/gt: Batch TLB invalidations 2022-08-08 14:06:55 -04:00
i915_gem_phys.c drm/i915: move i915_gem_object_needs_bit17_swizzle() to i915_gem_tiling.[ch] 2022-03-17 11:35:36 +02:00
i915_gem_pm.c Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
i915_gem_pm.h
i915_gem_region.c drm/i915/ttm: fix 32b build 2022-07-13 16:06:08 +01:00
i915_gem_region.h drm/i915: add i915_gem_object_create_region_at() 2022-03-16 17:50:34 +00:00
i915_gem_shmem.c Merge tag 'drm-intel-gt-next-2022-06-29' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2022-07-01 14:14:52 +10:00
i915_gem_shrinker.c drm/i915/gem: Make drop_pages() return bool 2022-05-10 09:39:15 -07:00
i915_gem_shrinker.h
i915_gem_stolen.c drm/i915: Prefer "XEHP_" prefix for registers 2022-06-27 07:44:25 -07:00
i915_gem_stolen.h drm/i915: add i915_gem_object_create_region_at() 2022-03-16 17:50:34 +00:00
i915_gem_throttle.c drm/i915: split out i915_file_private.h from i915_drv.h 2022-02-14 13:16:28 +02:00
i915_gem_tiling.c drm/i915: Fix spelling typo in comment 2022-06-22 07:49:25 +01:00
i915_gem_tiling.h drm/i915: move i915_gem_object_needs_bit17_swizzle() to i915_gem_tiling.[ch] 2022-03-17 11:35:36 +02:00
i915_gem_ttm_move.c drm/i915/ttm: disallow CPU fallback mode for ccs pages 2022-07-01 08:30:31 +01:00
i915_gem_ttm_move.h drm/i915/ttm: handle blitter failure on DG2 2022-07-01 08:30:00 +01:00
i915_gem_ttm_pm.c
i915_gem_ttm_pm.h
i915_gem_ttm.c drm/i915/ttm: fix 32b build 2022-07-13 16:06:08 +01:00
i915_gem_ttm.h drm/i915/ttm: handle blitter failure on DG2 2022-07-01 08:30:00 +01:00
i915_gem_userptr.c dma-buf: add DMA_RESV_USAGE_BOOKKEEP v3 2022-04-07 12:53:54 +02:00
i915_gem_userptr.h drm/i915: split out gem/i915_gem_userptr.h from i915_drv.h 2022-01-10 15:43:19 +02:00
i915_gem_wait.c drm/i915/gem: Look for waitboosting across the whole object prior to individual waits 2022-07-12 17:44:36 -04:00
i915_gemfs.c drm/i915: Only setup private tmpfs mount when needed and fix logging 2022-05-09 14:03:50 +01:00
i915_gemfs.h drm/i915: Only setup private tmpfs mount when needed and fix logging 2022-05-09 14:03:50 +01:00