From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 60028] Post-3.7.x memory leak, Radeon Evergreen, bisected Date: Tue, 29 Jan 2013 16:10:24 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1019002589==" Return-path: Received: from culpepper.freedesktop.org (unknown [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 6AA8EE5EBB for ; Tue, 29 Jan 2013 08:10:24 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============1019002589== Content-Type: multipart/alternative; boundary="1359475824.FbBa5030.32730"; charset="us-ascii" --1359475824.FbBa5030.32730 Date: Tue, 29 Jan 2013 16:10:24 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" https://bugs.freedesktop.org/show_bug.cgi?id=60028 --- Comment #3 from Dave Witbrodt --- Bisecting So far, I have only bisected using my local custom kernel branch. As described above, I use stable kernel releases to avoid the massive breakage that frequently occurs in -rc kernels, and I cherry pick commits from drm-fixes and drm-next. This is a potential source of error (on my part), so I will not be offended if anyone objects to me reporting bugs against such kernels. My justification is that the HEAD of drm-fixes, which is 3.8.0~rc3 at commit 48367432 of Jan. 26 also leaks memory if I build it and use it on my system. I bisected using my custom branch first only to save time: I add cherry picks in bunches, and keep separate list files of which commits I have used, so manually bisecting using those files rapidly led me to the first commit which caused the kernel to leak memory. [I will bisect using drm-fixes (or drm-next) if asked, but there are issues with Mesa not being compatible before a certain point in mid-December, so that I would have to use an older version of Mesa or patch some of the older bisection points with later commits in order to use the version of Mesa I currently have installed.] For this testing, I started with stable kernel 3.7.4 and applied my lists of cherry picks that had built up since 3.7-rc7 or so. I had built up 11 lists of commits as I added new upstream code to my local branch, so I could perform a manual bisection by applying an entire list at a time until I found a kernel which leaked memory. From that, I would know which list introduce the problem, and I could build kernels at each commit in that list until I found the first one that resulted in leaks. (If anyone is interested in those lists I will be glad to post them; I have only withheld them for the sake of brevity.) The manual bisection led me to a last good commit and a first bad commit. The cherry picking process causes my branch to have new SHA1 ID numbers, so I instead of using the 'git log' info from my branch am will use the info from the drm-airlied/drm-fixes branch. The first bad commit was: commit 4ac0533abaec2b83a7f2c675010eedd55664bc26 Author: Jerome Glisse Date: Thu Dec 13 12:08:11 2012 -0500 drm/radeon: fix htile buffer size computation for command stream checker Fix the size computation of the htile buffer. Signed-off-by: Jerome Glisse Signed-off-by: Alex Deucher The previous commit, which worked fine, was: commit 9af20792124850369e764965690b99b20623dfc4 Author: Daniel Vetter Date: Tue Dec 11 23:42:24 2012 +0100 drm/radeon: fix fence locking in the pageflip callback We need to hold bdev->fence_lock while grabbing a reference to the fence, to prevent concurrent clearing/changing of the ttm_bo->sync_obj field. Signed-off-by: Daniel Vetter Signed-off-by: Alex Deucher This was a time-consuming process, but much shorter than it would have been using 'git bisect' in drm-fixes. Later, I made two attempts to revert the "bad" code on top of the HEAD of my local branch. -- You are receiving this mail because: You are the assignee for the bug. --1359475824.FbBa5030.32730 Date: Tue, 29 Jan 2013 16:10:24 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"

Comment # 3 on bug 60028 from
Bisecting

So far, I have only bisected using my local custom kernel branch.  As described
above, I use stable kernel releases to avoid the massive breakage that
frequently occurs in -rc kernels, and I cherry pick commits from drm-fixes and
drm-next.  This is a potential source of error (on my part), so I will not be
offended if anyone objects to me reporting bugs against such kernels.  My
justification is that the HEAD of drm-fixes, which is

    3.8.0~rc3 at commit 48367432 of Jan. 26

also leaks memory if I build it and use it on my system.  I bisected using my
custom branch first only to save time:  I add cherry picks in bunches, and keep
separate list files of which commits I have used, so manually bisecting using
those files rapidly led me to the first commit which caused the kernel to leak
memory.

[I will bisect using drm-fixes (or drm-next) if asked, but there are issues
with Mesa not being compatible before a certain point in mid-December, so that
I would have to use an older version of Mesa or patch some of the older
bisection points with later commits in order to use the version of Mesa
I currently have installed.]

For this testing, I started with stable kernel 3.7.4 and applied my lists of
cherry picks that had built up since 3.7-rc7 or so.  I had built up 11 lists of
commits as I added new upstream code to my local branch, so I could perform a
manual bisection by applying an entire list at a time until I found a kernel
which leaked memory.  From that, I would know which list introduce the problem,
and I could build kernels at each commit in that list until I found the first
one that resulted in leaks.  (If anyone is interested in those lists I will be
glad to post them; I have only withheld them for the sake of brevity.)

The manual bisection led me to a last good commit and a first bad commit.  The
cherry picking process causes my branch to have new SHA1 ID numbers, so I
instead of using the 'git log' info from my branch am will use the info
from the drm-airlied/drm-fixes branch.  The first bad commit was:

    commit 4ac0533abaec2b83a7f2c675010eedd55664bc26
    Author: Jerome Glisse <jglisse@redhat.com>
    Date:   Thu Dec 13 12:08:11 2012 -0500

        drm/radeon: fix htile buffer size computation for command stream
checker

        Fix the size computation of the htile buffer.

        Signed-off-by: Jerome Glisse <jglisse@redhat.com>
        Signed-off-by: Alex Deucher <alexander.deucher@amd.com>


The previous commit, which worked fine, was:

    commit 9af20792124850369e764965690b99b20623dfc4
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Tue Dec 11 23:42:24 2012 +0100

        drm/radeon: fix fence locking in the pageflip callback

        We need to hold bdev->fence_lock while grabbing a reference to
        the fence, to prevent concurrent clearing/changing of the
        ttm_bo->sync_obj field.

        Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
        Signed-off-by: Alex Deucher <alexander.deucher@amd.com>


This was a time-consuming process, but much shorter than it would have been
using 'git bisect' in drm-fixes.  Later, I made two attempts to revert the
"bad" code on top of the HEAD of my local branch.


You are receiving this mail because:
  • You are the assignee for the bug.
--1359475824.FbBa5030.32730-- --===============1019002589== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel --===============1019002589==--