[Bug 60028] Post-3.7.x memory leak, Radeon Evergreen, bisected
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue Jan 29 08:10:24 PST 2013
https://bugs.freedesktop.org/show_bug.cgi?id=60028
--- Comment #3 from Dave Witbrodt <dawitbro at sbcglobal.net> ---
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 at 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 at redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
The previous commit, which worked fine, was:
commit 9af20792124850369e764965690b99b20623dfc4
Author: Daniel Vetter <daniel.vetter at 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 at ffwll.ch>
Signed-off-by: Alex Deucher <alexander.deucher at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20130129/5145f1b3/attachment-0001.html>
More information about the dri-devel
mailing list