On 09/12/2012 02:48 PM, Maarten Lankhorst wrote:
Hey Thomas, I'm playing around with moving reservations from ttm to global, but how ttm ttm is handling reservations is getting in the way. The code wants to move the bo from the lru lock at the same time a reservation is made, but that seems to be slightly too strict. It would really help me if that guarantee is removed.
Hi, Maarten. Removing that restriction is not really possible at the moment. Also the memory accounting code depends on this, and may cause reservations in the most awkward places. Since these reservations don't have a ticket they may and will cause deadlocks. So in short the restriction is there to avoid deadlocks caused by ticketless reservations.
Is it true that only the ttm_mem_evict code depends on it? And in that case wouldn't it be better to attempt to free any buffer that can be reserved without blocking first, instead of blocking on the first entry in the list?
Normally there is no reservation blocking, since the items on the LRU lists are guaranteed not to be reserved, but if we reserve without taking off LRU lists, the above may be a good optimization.
This would make integration a lot easier, since I could wait with taking the lru lock until after reservation is complete, or any time before unreserving. ~Maarten
/Thomas _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel