lkml.org 
[lkml]   [2018]   [Oct]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 16/44] drm/syncobj: Dont leak fences when WAIT_FOR_SUBMIT is set
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jason Ekstrand <jason@jlekstrand.net>

    commit 337fe9f5c1e7de1f391c6a692531379d2aa2ee11 upstream.

    We attempt to get fences earlier in the hopes that everything will
    already have fences and no callbacks will be needed. If we do succeed
    in getting a fence, getting one a second time will result in a duplicate
    ref with no unref. This is causing memory leaks in Vulkan applications
    that create a lot of fences; playing for a few hours can, apparently,
    bring down the system.

    Cc: stable@vger.kernel.org
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107899
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180926071703.15257-1-jason.ekstrand@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpu/drm/drm_syncobj.c | 5 +++++
    1 file changed, 5 insertions(+)

    --- a/drivers/gpu/drm/drm_syncobj.c
    +++ b/drivers/gpu/drm/drm_syncobj.c
    @@ -97,6 +97,8 @@ static int drm_syncobj_fence_get_or_add_
    {
    int ret;

    + WARN_ON(*fence);
    +
    *fence = drm_syncobj_fence_get(syncobj);
    if (*fence)
    return 1;
    @@ -744,6 +746,9 @@ static signed long drm_syncobj_array_wai

    if (flags & DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT) {
    for (i = 0; i < count; ++i) {
    + if (entries[i].fence)
    + continue;
    +
    drm_syncobj_fence_get_or_add_callback(syncobjs[i],
    &entries[i].fence,
    &entries[i].syncobj_cb,

    \
     
     \ /
      Last update: 2018-10-11 17:52    [W:4.188 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site