On 10/11/2012 09:26 PM, Thomas Hellstrom wrote:
On 10/11/2012 08:42 PM, Maarten Lankhorst wrote:

I can't see how the waiting reserve in ttm_bo_cleanup_refs would cause a deadlock, because the buffer about to be reserved is always *last* in a reservation sequence, and the reservation is always released (or the buffer destroyed) before trying to reserve another buffer. Technically the buffer is not looked up from a LRU list but from the delayed delete list.
Could you describe such a deadlock case?
(There is a bug in there, though that the reservation is not released if the buffer is no longer
on the reservation list here):

if (unlikely(ret != 0) || list_empty(&bo->ddestroy)) {
     spin_unlock(&glob->lru_lock);
     return ret;
}

Actually I was looking at older code. That bug is already fixed.

/Thomas

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to