Bug 19200 - A memory leak in either radeon driver or xorg
Summary: A memory leak in either radeon driver or xorg
Status: RESOLVED MOVED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-20 07:13 UTC by Maciej Piechotka
Modified: 2019-11-19 07:29 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
restop output with Xorg with res memory 1.4g (4.00 KB, text/plain)
2012-10-29 09:06 UTC, Paolo Patruno
no flags Details

Description Maciej Piechotka 2008-12-20 07:13:02 UTC
After a few days up X11 consumes over 200 MiB of memory (physical - about 600 MiB of vmemory). I guess it is a memory leak.

I'm using:
x11-drivers/xf86-video-ati - git (otherwise there is no 2D/3D acceleration)
x11-base/xorg-server - 1.5.3
sys-kernel/zen-sources - 2.6.27-r31

System uname: Linux-2.6.27-zen3-i686-Intel-R-_Celeron-R-_M_processor_1.50GHz-with-gentoo-2.0.0
Timestamp of tree: Sat, 20 Dec 2008 03:01:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p48
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.6.1
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.6.2
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.3.0-r1
sys-apps/sandbox:    1.2.18.1-r3
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.19
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-Os -mtune=pentium-m -march=pentium-m -mfpmath=sse -pipe -momit-leaf-frame-pointer -ggdb -w -ftree-vectorize -ftree-loop-optimize -freorder-blocks-and-partition -fgcse-sm -fgcse-las -fgcse-after-reload -ftracer -maccumulate-outgoing-args"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-Os -mtune=pentium-m -march=pentium-m -mfpmath=sse -pipe -momit-leaf-frame-pointer -ggdb -w -ftree-vectorize -ftree-loop-optimize -freorder-blocks-and-partition -fgcse-sm -fgcse-las -fgcse-after-reload -ftracer -maccumulate-outgoing-args -fvisibility-inlines-hidden"
DISTDIR="/var/tmp/distfiles"
FEATURES="ccache collision-protect cvs digest distlocks fixpackages multilib-strict parallel-fetch prelink preserve-libs protect-owned sandbox sfperms sign splitdebug stricter unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--add-needed -Wl,--as-needed -Wl,--hash-style=both -Wl,--sort-common"
LINGUAS="en_GB en_US pl"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage-crossdev /usr/portage/local/layman/rbu /usr/portage/local/layman/x11 /usr/portage/local/layman/java-overlay /usr/portage/local/layman/my-gnome /usr/portage/local/layman/zen-overlay /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aac acl acpi alsa applet attr avahi avalon bash-completion berkdb bittorrent boo browseplugin bzip2 c++ cairo calendar caps cddb cdparanoia cdr cli clisp consolekit context cracklib crypt cups curl curlwrappers cxx d daap dbus deskbar detex devhelp disk-partition djvu docbook dri dvd dvdnav dvdr dvdread eclipse eds emacs emboss encode eog epiphany esd evo evolution exif expat extra fam ffmpeg flac flash fortran fuse galago gconf gd gdbm gdl gedit gif gimp git glib glut gmail gmp gnome gnome-keyring gnutls gpm groovy gsf gstreamer gtk guile hal iconv idle imap inherit-graph inotify ipod iproute2 ipv6 isdnlog jabber java java5 java6 jingle jpeg jpeg2k jython keyring kpathsea kqemu laptop latex libburn libffi libgda libnotify libsexy logrotate lucene mad maildir mailwrapper mhash midi mikmod mmap mmx mono moonlight mozilla mp3 mpeg mudflap mule musicbrainz nautilus ncurses network networkmanager nls nntp no-old-linux nptl nptlonly nsplugin nss ntpl ogg oggvorbis openal opengl openmp pam pango pbm pccts pch pcre pda pdf perl png policykit pop postgres ppds pppd pulseaudio python qt3support quicktime raw readline reflection regex reiserfs resolvconf rhino ruby samba scanner science sdl session snmp soap soup sourceview spell spl sqlite sqlite3 sse sse2 ssh ssl startup-notification subversion svg symlink sysfs syslog tcpd tetex theora threads threadsafe tiff timidity totem tracker trayicon truetype unicode usb valgrind vim vorbis vte webkit wifi win32codecs wxwindows x86 xattr xcb xforms xhtml xml xml2 xorg xsl xslt xulrunner xv zeroconf zlib" ALSA_CARDS="atiixp" ALSA_PCM_PLUGINS="null empty dmix dshare ioplug" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="panasonic" ELIBC="glibc" INPUT_DEVICES="evdev mouse keyboard" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en_US pl" NETBEANS_MODULES="ide java websvccommon " USERLAND="GNU" VIDEO_CARDS="radeon"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

PS. I know that you would need valgrid log but running an old system I will not manage to get it (it will take ages).
Comment 1 Matt Turner 2009-02-10 09:17:46 UTC
And does the leak not happen without using xf86-video-ati?
Comment 2 Maciej Piechotka 2009-02-10 10:51:35 UTC
(In reply to comment #1)
> And does the leak not happen without using xf86-video-ati?
> 

I'll check. What driver should I use?
Comment 3 Alex Deucher 2009-02-10 11:27:32 UTC
You'll probably want to take a look at xrestop.
http://freedesktop.org/wiki/Software/xrestop
Comment 4 Maciej Piechotka 2009-02-14 06:27:59 UTC
(In reply to comment #3)
> You'll probably want to take a look at xrestop.
> http://freedesktop.org/wiki/Software/xrestop
> 

xrestop - Display: localhost:0
          Monitoring 37 clients. XErrors: 1
          Pixmaps:   25783K total, Other:     208K total, All:   25991K total

I guess it is approximetly the same as at the beginning. However a few days ago xorg occupied 40 MiB (I'll check as I'll restart X soon) and now it cooupies 70 MiB.
Comment 5 Maciej Piechotka 2009-03-11 16:51:55 UTC
xrestop - Display: localhost:0
          Monitoring 37 clients. XErrors: 0
          Pixmaps:   43245K total, Other:     221K total, All:   43466K total

And here's output for 90 MiB X.
Comment 6 Alex Deucher 2012-04-25 05:55:01 UTC
Is this still an issue with a newer driver/kernel?
Comment 7 Michal Suchanek 2012-04-25 09:20:44 UTC
I would like to see the leak myself.

I run a X server for almost a month now and both VSS and RSS are smaller than stated here:

463m virtual 139m resident

I would expect that the memory consumption rises over first few days due to heap fragmentation, etc.
Comment 8 Paolo Patruno 2012-10-29 08:30:53 UTC
A valgrind session with memory leak:

https://bugzilla.redhat.com/show_bug.cgi?id=808641
https://bugzilla.redhat.com/attachment.cgi?id=634908

The output of top after less the 3 days:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 1680 root      20   0 2223m 1.4g 1800 D  7.6 72.9 394:21.05 Xorg
Comment 9 Paolo Patruno 2012-10-29 09:06:10 UTC
Created attachment 69216 [details]
restop output with Xorg  with res memory 1.4g
Comment 10 Paolo Patruno 2012-10-29 09:07:15 UTC
a restop output with noveau driver is attached associated with the same top before:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 1680 root      20   0 2223m 1.4g 1800 D  7.6 72.9 394:21.05 Xorg
Comment 11 Michal Suchanek 2012-10-29 10:02:17 UTC
The log shows that you are running X server 1.11.

This is old and no longer supported.

Can you reproduce the issue with recent X server?

There have been some memory allocation issues addressed in recent patches so you should at least get less noise in the valgrind output.

Specifically, atom.c should not leak now or not as much. EXA and pixman would be quite different in the old server and current code.
Comment 12 Michel Dänzer 2012-10-29 13:54:41 UTC
Paolo, please file your own report.
Comment 13 Paolo Patruno 2012-10-31 23:25:41 UTC
After a few hours I definitely cannot compile a newer version of xorg on Fedora 16. There are too much dependencies and some compile problems in glx/glxdri2.c.
More precisely I compile xserver after a few tricks in glxdri2.c but I cannot compile all the drivers ..
So using some application like audacious audio player in Fedora 16 (but I think in other distributions) after some hours/days the machine becomes unusable.
A patch for version 1.11 for major and repeated leak will be welcome ...
thanks
Comment 14 Martin Peres 2019-11-19 07:29:10 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/issues/5.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.