]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Fix CPU-spinning hangs related to fence usage by using an LRU.
authorEric Anholt <eric@anholt.net>
Sat, 29 Aug 2009 19:49:51 +0000 (12:49 -0700)
committerEric Anholt <eric@anholt.net>
Sun, 30 Aug 2009 00:37:21 +0000 (17:37 -0700)
commit14682ab4469ac5f0d4b3346a8a042246d8350fed
treedd0e468fa4a1a287fc365dc5b4ce546b68234377
parent53343c97226345dbdfc1454567a454fdccf22b11
drm/i915: Fix CPU-spinning hangs related to fence usage by using an LRU.

The lack of a proper LRU was partially worked around by taking the fence
from the object containing the oldest seqno.  But if there are multiple
objects inactive, then they don't have seqnos and the first fence reg
among them would be chosen.  If you were trying to copy data between two
mappings, this could result in each page fault stealing the fence from
the other argument, and your application hanging.

https://bugs.freedesktop.org/show_bug.cgi?id=23566
https://bugs.freedesktop.org/show_bug.cgi?id=23220
https://bugs.freedesktop.org/show_bug.cgi?id=23253
https://bugs.freedesktop.org/show_bug.cgi?id=23366

Cc: Stable Team <stable@kernel.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c