[Intel-gfx] [PATCH] drm/i915: Fix CPU-spinning hangs related to fence usage using an LRU.
Chris Wilson
chris at chris-wilson.co.uk
Tue Sep 1 13:10:46 CEST 2009
Excerpts from Eric Anholt's message of Sat Aug 29 21:26:41 +0100 2009:
> The lack of a proper LRU was partially worked around by taking the fence
> with the object containing the oldest seqno to steal from. But if there
> are multiple objects inactive, then they don't have seqnos and the first
> in 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.
I added a gem_fence_thrash to intel-gpu-tools/test, in case the success
reports from the bugs weren't enough to convince you that the patch
works. ;-)
However, gem_fence_thrash does throw up one weird result on my i915:
Before:
$ time ./gem_fence_thrash:
real 1m11.795s
user 0m9.493s
sys 1m2.244s
After (with LRU fences):
$ time ./gem_fence_thrash
real 2m2.457s
user 0m13.745s
sys 1m48.383s
The cause is not entirely obvious on the CPU profiles (and as can be
seen above the CPU is 100% busy).
-ickle
More information about the Intel-gfx
mailing list