Possible radeon-related kernel memory leak

Michel Dänzer michel at daenzer.net
Wed Feb 13 02:51:00 PST 2013


On Die, 2013-02-12 at 22:54 +0100, Hubert Kario wrote: 
> On Monday 11 of February 2013 13:00:41 Michel Dänzer wrote:
> > On Son, 2013-02-10 at 15:01 +0100, Hubert Kario wrote:
> > > On Friday 08 of February 2013 17:43:17 Michel Dänzer wrote:
> > > > I suspect the memory is used for TTM buffer objects, e.g. for X server
> > > > pixmaps.
> > > 
> > > xrestop lists around 200MiB of pixmaps, I don't know if they are
> > > included in the X process or originating process resident set size, but
> > > even if they aren't (and are included only in "kernel dynamic memory"),
> > > it's still not the 800MiB difference I see. They don't grow over time.
> > 
> > Unfortunately, xrestop doesn't always show everything either. See e.g.
> > http://bugs.debian.org/695757 for a similar problem.
> 
> That's a shame. Is there some way to get this information at all? Or is it 
> necessary to fix the kernel/X server to either track or allow it to return 
> all the information it tracks?

Not sure.


> > > > > Even if I turn off all applications and restart kwin, it's still at
> > > > > 1G.
> > > > 
> > > > xlsclients only lists kwin at that point, no other clients?
> > > 
> > > no, there's still the plasma desktop, krunner, probably something
> > > else...
> > 
> > Have you tried killing those?
> 
> If I have the problem next time, I'll try restarting or killing everything 
> that shows up in xlsclients
> 
> Is there any specific data you want to see before and after killing those 
> applications? And before and after killing X (without system restart) if 
> restarting X clients doesn't resolve the issue?

Not sure offhand what to look at other than the numbers you've posted.

But really, if the memory is reclaimed when X dies, by definition it's
not leaked in the kernel.


> > > > Note that X11 allows clients to create pixmaps in such a way that they
> > > > aren't automatically destroyed even if the client dies. This can be
> > > > used
> > > > e.g. for desktop backgrounds or for caching pixmaps between processes.
> > > 
> > > Will they still be visible in xrestop if the parent process dies?
> > 
> > I'm not sure such pixmaps are visible in xrestop in the first place.
> 
> Wouldn't this be considered memory leak if a SIGKILL leaves X resources 
> still allocated??

Assuming you mean SIGKILL of the client, no, that's how this mechanism
was designed.


> > > Do you think it's not related to the errors I get sometimes while
> > > running
> > > games?
> > > 
> > > radeon: The kernel rejected CS, see dmesg for more information
> > > 
> > > with the following error in dmesg (full kernel stack trace in first mail
> > > in thread):
> > > 
> > > [drm:radeon_cs_ioctl] ERROR Failed to parse relocation -12
> > > 
> > > Can't this cause leaks of kernel memory that are freed only on full X
> > > re-
> > > initialisation?
> > 
> > These errors are symptoms of running out of kernel memory, probably not
> > the cause of it.
> 
> Thing is, when I'm playing the game in question I turn off everything 
> besides the KDE services and background daemons, so I have close to 3.5GiB 
> of free memory.

You could be running into
https://bugzilla.kernel.org/show_bug.cgi?id=49981


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the xorg-driver-ati mailing list