[Intel-gfx] [PATCH 15/15] drm/i915: no more agp for gem

Chris Wilson chris at chris-wilson.co.uk
Sun Nov 7 11:55:07 CET 2010


On Sun, 7 Nov 2010 11:20:26 +0100, Daniel Vetter <daniel at ffwll.ch> wrote:
> Wrt future plans: My idea behind separating the dmar mapping and the gtt
> pte writing was to be able to keep around the dmar mapping even when the
> bo is not bound to the gtt. Together with a phys_memory domain to avoid
> cflush on rebind, that should pretty much kill aperture trashing.

Lots of overlap with what I am attempting right now. I've just
approached the problem from top-down and looked at reusing dead-bo as
handles into GTT space. Keeping a page cache is essential to minimise
clflush on aperture thrashing, after that the rebind penalty is next on
the CPU profiles. The observation is that workloads tend to keep reusing
the same buffer sizes, and so we can get a very good hit rate from
keeping a deferred-free list and stealing the GTT space from those dead
bo. (Now the worst offender is scanning the deferred-free list for
victims, but a win overall.)

Approaching this from the bottom up, we can start tracking inactive bound
pages in the GTT manager, such that the rebind penalty can be avoided in
far more cases. Interesting...

For the time being, I'll keep on improving my understanding of the VM by
bugfixing my current page-stealer which (I believe) is fundamental to
transferring pages between the GTT and system/swap cheaply.

[And I may look at one or two bugs. ;-]
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list