I don't know much about AMD gpu. Patches 1-6 look good to me. On Wed, Apr 06, 2016 at 11:12:02AM +0200, Christian König wrote: > From: Christian König <christian.koenig@xxxxxxx> > > When we use an extern reservation object that otherwise waits for every > fence registered with it. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/ttm/ttm_bo.c | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > index 4cbf265..367b87b 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo.c > +++ b/drivers/gpu/drm/ttm/ttm_bo.c > @@ -998,13 +998,19 @@ static int ttm_bo_move_buffer(struct ttm_buffer_object *bo, > lockdep_assert_held(&bo->resv->lock.base); > > /* > - * FIXME: It's possible to pipeline buffer moves. > - * Have the driver move function wait for idle when necessary, > - * instead of doing it here. > + * Don't wait for the BO on initial allocation. This is important when > + * the BO has an imported reservation object. > */ > - ret = ttm_bo_wait(bo, false, interruptible, no_wait_gpu); > - if (ret) > - return ret; > + if (bo->mem.mem_type != TTM_PL_SYSTEM || bo->ttm != NULL) { > + /* > + * FIXME: It's possible to pipeline buffer moves. > + * Have the driver move function wait for idle when necessary, > + * instead of doing it here. > + */ > + ret = ttm_bo_wait(bo, false, interruptible, no_wait_gpu); > + if (ret) > + return ret; > + } > mem.num_pages = bo->num_pages; > mem.size = mem.num_pages << PAGE_SHIFT; > mem.page_alignment = bo->mem.page_alignment; > -- > 2.5.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel