On Mon, Aug 20, 2012 at 9:42 AM, Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxx> wrote: > How is this different from just calling with no_wait == false? > As far as I can tell, both paths end up with the same result.. > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxx> NAK this seriously modify the behavior. The ttm_eu_del_from_lru_locked part is important. It must happen with lru lock held and without any dropping of this lock prior to wait for bo unreserve. Cheers, Jerome > > diff --git a/drivers/gpu/drm/ttm/ttm_execbuf_util.c b/drivers/gpu/drm/ttm/ttm_execbuf_util.c > index 3f48a46..4e7b596 100644 > --- a/drivers/gpu/drm/ttm/ttm_execbuf_util.c > +++ b/drivers/gpu/drm/ttm/ttm_execbuf_util.c > @@ -82,22 +82,6 @@ static void ttm_eu_list_ref_sub(struct list_head *list) > } > } > > -static int ttm_eu_wait_unreserved_locked(struct list_head *list, > - struct ttm_buffer_object *bo) > -{ > - struct ttm_bo_global *glob = bo->glob; > - int ret; > - > - ttm_eu_del_from_lru_locked(list); > - spin_unlock(&glob->lru_lock); > - ret = ttm_bo_wait_unreserved(bo, true); > - spin_lock(&glob->lru_lock); > - if (unlikely(ret != 0)) > - ttm_eu_backoff_reservation_locked(list); > - return ret; > -} > - > - > void ttm_eu_backoff_reservation(struct list_head *list) > { > struct ttm_validate_buffer *entry; > @@ -152,19 +136,10 @@ retry: > list_for_each_entry(entry, list, head) { > struct ttm_buffer_object *bo = entry->bo; > > -retry_this_bo: > - ret = ttm_bo_reserve_locked(bo, true, true, true, val_seq); > + ret = ttm_bo_reserve_locked(bo, true, false, true, val_seq); > switch (ret) { > case 0: > break; > - case -EBUSY: > - ret = ttm_eu_wait_unreserved_locked(list, bo); > - if (unlikely(ret != 0)) { > - spin_unlock(&glob->lru_lock); > - ttm_eu_list_ref_sub(list); > - return ret; > - } > - goto retry_this_bo; > case -EAGAIN: > ttm_eu_backoff_reservation_locked(list); > spin_unlock(&glob->lru_lock); > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel