[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