]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gem: Mark the buffer pool as active for the cmdparser
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 4 Jun 2020 10:37:30 +0000 (11:37 +0100)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Mon, 8 Jun 2020 09:52:44 +0000 (12:52 +0300)
commit27b4542fd0d23e64d8b20415bc1c57e995cd1e54
tree4e9f5894faddceef53c6e0b3b1b7a3d120ac0990
parent3bca1cec6b087b817fec0ec407c0a8def4fbad2f
drm/i915/gem: Mark the buffer pool as active for the cmdparser

If the execbuf is interrupted after building the cmdparser pipeline, and
before we commit to submitting the request to HW, we would attempt to
clean up the cmdparser early. While we held active references to the vma
being parsed and constructed, we did not hold an active reference for
the buffer pool itself. The result was that an interrupted execbuf could
still have run the cmdparser pipeline, but since the buffer pool was
idle, its target vma could have been recycled.

Note this problem only occurs if the cmdparser is running async due to
pipelined waits on busy fences, and the execbuf is interrupted.

Fixes: f1c2907b8e7e ("drm/i915/gem: Asynchronous cmdparser")
Fixes: 7b9d144b2c5c ("drm/i915/gt: Move the batch buffer pool from the engine to the gt")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200604103751.18816-1-chris@chris-wilson.co.uk
(cherry picked from commit 57a78ca4eceab1ecb0299fba8a10211289329889)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c