]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gem: Remove shared locking on freeing objects
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 26 Jul 2022 14:48:44 +0000 (16:48 +0200)
committerMatthew Auld <matthew.auld@intel.com>
Wed, 3 Aug 2022 09:27:24 +0000 (10:27 +0100)
commit460408ba6ec02a930e5375aa0a448c85d6ec64ed
treecb1537d818fd60a280bafc971a372c8fc906c843
parent8b526a2335c120c7db5c94f9be7f59165d317299
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: 8545ee4f08e7 ("drm/i915: Require object lock when freeing pages during destruction")
Fixes: b40ba2da794f ("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
drivers/gpu/drm/i915/gem/i915_gem_object.c
drivers/gpu/drm/i915/i915_drv.h