RFC: Some TTM patches

Christian König deathsimple at vodafone.de
Wed Apr 6 09:12:01 UTC 2016


Hi everyone,

attached are six TTM patches and one Amdgpu patch I came up with while working
on a new TTM feature.

The first patch is a bug fix. TTM was always waiting for on a BO to be idle
when initially creating it. Previously that didn't matter much because a newly
created BO should always be idle. But with the possibility of importing DMA-buf
reservation objects into a TTM BO that sometimes isn't the case any more.

Patches 2, 3 and 4 are just cleanups, e.g. removal of unused parameters and
variables.

Patches 5 and 6 now finally implement the new LRU features in TTM. Basically
we want to give the driver more fine grained control about the order in which
the BOs are added to the LRU.

For this patch number 5 implements an optional LRU removal callback, giving the
driver the chance to updates it's internal LRU handling as well.

Patch number 6 add two callback functions which return the list head after which
a BO should be inserted into the LRU. Default implementations for those are
provided and wired up in all drivers with this patch.

The Amdgpu patch now uses the new callbacks to implement a LRU order so that VM
page table BOs always come behind everything else. I actually don't intent to
commit this patch, but it was good for testing.

In the end we want to use this LRU order for allowing HSA applications to have
their BOs after the graphics allocations because preempting HSA processes under
resource shortage has a huge bunch of overhead.

Another use Alex suggested is to sort the BOs in the LRU by size. So that we
don't swap out a 200MB BO to make room for a 1MB allocation.

Please review and comment,
Christian.



More information about the dri-devel mailing list