From: <th...@tu...> - 2007-11-19 13:23:42
|
Jerome Glisse wrote: > Hi, > > I think i found a dead lock in the code: > in drm_bo_move.c:drm_buffer_object_transfer the dev->struct_mutex is taken > while this mutex is take there is a call to drm_fence.c:drm_fence_reference_unlocked > and the function try to acquire dev->struct_mutex lock so deadlock i believe > that drm_bo_move.c:drm_buffer_object_transfer should call drm_fence.c:drm_fence_reference_locked > and do the rest of drm_fence.c:drm_fence_reference_unlocked by itself. > > My fix: > replace drm_fence_reference_unlocked(&fbo->fence, bo->fence); > by fbo->fence = drm_fence_reference_locked(bo->fence); > > Is there anythings i am missing ? Btw i see the deadlock in my code anytime i > have to move a buffer while i am validating it, i believe you never get > through this path on i915 as everythings is ttm so there is no call to move right ? > > Cheers, > Jerome Glisse > Jerome, Good catch. Yes it's correct this path is never hit on i915 currently. The i915 move blit path has been disabled since it requires the hardware lock. Can you commit and push the fix? /Thomas > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > -- > _______________________________________________ > Dri-devel mailing list > Dri...@li... > https://lists.sourceforge.net/lists/listinfo/dri-devel > |