lkml.org 
[lkml]   [2020]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.6 039/166] drm/ttm: flush the fence on the bo after we individualize the reservation object
    Date
    From: xinhui pan <xinhui.pan@amd.com>

    [ Upstream commit 1bbcf69e42fe7fd49b6f4339c970729d0e343753 ]

    As we move the ttm_bo_individualize_resv() upwards, we need flush the
    copied fence too. Otherwise the driver keeps waiting for fence.

    run&Kill kfdtest, then perf top.

    25.53% [ttm] [k] ttm_bo_delayed_delete
    24.29% [kernel] [k] dma_resv_test_signaled_rcu
    19.72% [kernel] [k] ww_mutex_lock

    Fix: 378e2d5b("drm/ttm: fix ttm_bo_cleanup_refs_or_queue once more")
    Signed-off-by: xinhui pan <xinhui.pan@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Link: https://patchwork.freedesktop.org/series/72339/
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/ttm/ttm_bo.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
    index 5df596fb0280c..fe420ca454e0a 100644
    --- a/drivers/gpu/drm/ttm/ttm_bo.c
    +++ b/drivers/gpu/drm/ttm/ttm_bo.c
    @@ -498,8 +498,10 @@ static void ttm_bo_cleanup_refs_or_queue(struct ttm_buffer_object *bo)

    dma_resv_unlock(bo->base.resv);
    }
    - if (bo->base.resv != &bo->base._resv)
    + if (bo->base.resv != &bo->base._resv) {
    + ttm_bo_flush_all_fences(bo);
    dma_resv_unlock(&bo->base._resv);
    + }

    error:
    kref_get(&bo->list_kref);
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-04-22 12:38    [W:4.371 / U:1.588 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site