Xorg consuming 1.1GB, is it a leak?
4
votes
1
answer
3864
views
I am facing a problem wherein Xorg starts to consume more and more memory
and finally eats up the whole swap space. As shown below, Xorg's virtual
memory is about 1.1GB. My system runs only one GTK application "main_app"
and I do not have Gnome, I just have IceWM installed. When this scenario
happens, the system crawls and only a reboot is the way to recover.
top - 00:01:09 up 24 days, 6:51, 6 users, load average: 6.89, 3.63, 2.76
Tasks: 126 total, 1 running, 123 sleeping, 2 stopped, 0 zombie
Cpu(s): 1.0%us, 3.4%sy, 0.0%ni, 0.0%id, 95.6%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 505644k total, 442536k used, 63108k free, 1424k buffers
Swap: 2095096k total, 1246372k used, 848724k free, 16400k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1598 root 19 -1 1145m 39m 1308 S 0 8.0 375:06.84 Xorg
2293 root 20 0 100m 6876 3932 S 2 1.4 747:08.62 main_app
514 root 20 0 53460 324 140 S 0 0.1 70:38.16 net.agent
1998 root 20 0 53460 368 140 S 0 0.1 70:40.18 net.agent
23787 root 20 0 53460 9980 196 D 1 2.0 0:00.21 net.agent
23801 root 20 0 53460 9248 196 D 1 1.8 0:00.19 net.agent
1343 root 20 0 28472 804 564 S 0 0.2 0:03.88 rsyslogd
3179 root 20 0 23712 180 136 S 0 0.0 0:15.82 MSPAgent
As seen below, the /proc/pid/smaps shows that the xorg's heap has all of the 1.1GB.
08231000-4da43000 rw-p 00000000 00:00 0 [heap]
Size: 1138760 kB
Rss: 35444 kB
Pss: 35444 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 1476 kB
Private_Dirty: 33968 kB
Referenced: 26436 kB
Swap: 1103276 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
I ran xrestop, but I see that "main_app" is not the culprit.
xrestop - Display: :0.0
Monitoring 9 clients. XErrors: 0
Pixmaps: 1465K total, Other: 35K total, All: 1500K total
res-base Wins GCs Fnts Pxms Misc Pxm mem Other Total PID Identifier
0e00000 7 30 2 8 27 1378K 3K 1381K 2293 main_app
0c00000 67 8 1 38 840 87K 22K 109K ?
0800000 2 7 6 1 22 0B 6K 6K 1647 uxterm
0000000 1 0 2 0 36 0B 2K 2K ?
0a00000 2 1 0 0 1 0B 96B 96B ?
1000000 1 1 0 0 0 0B 48B 48B ? xrestop
0400000 1 1 0 0 0 0B 48B 48B ?
0600000 0 1 0 0 0 0B 24B 24B ?
0200000 0 1 0 0 0 0B 24B 24B ?
I am not sure why xorg keeps growing. Please give me some pointers on where and
what to look for.
I am on Debian Linux:
debian:~# uname -a
Linux debian 2.6.32-5-686 #1 SMP Tue Mar 8 21:36:00 UTC 2011 i686 GNU/Linux
debian:~#
Intel(R) Atom(TM) CPU N270 @ 1.60GHz
Following is the pmap output for the xorg process. Interestingly, the total is 1.1GB, however, the individual entries do not add up to it.
debian:~# pmap -x 1598 | more
1598: /usr/bin/X :0 -br -nocursor -auth /tmp/serverauth.O1gWpWvWuP
Address Kbytes RSS Dirty Mode Mapping
08048000 0 404 0 r-x-- Xorg
081e3000 0 24 12 rw--- Xorg
081ef000 0 40 24 rw--- [ anon ]
08231000 0 36188 35232 rw--- [ anon ]
b5422000 0 1892 1888 rw--- [ anon ]
b59a1000 0 384 0 rw-s- [ shmid=0x520000 ]
b5bd6000 0 0 0 rw--- [ anon ]
b5e85000 0 0 0 r-x-- libexpat.so.1.5.2
b5ea9000 0 0 0 rw--- libexpat.so.1.5.2
b5eab000 0 0 0 r-x-- evdev_drv.so
b5eb3000 0 0 0 rw--- evdev_drv.so
b5eb4000 0 0 0 r-x-- swrast_dri.so
b60c8000 0 0 0 rw--- swrast_dri.so
b60cd000 0 1876 1876 rw--- [ anon ]
b6f83000 0 3072 0 rw-s- fb0
b7283000 0 8 0 r-x-- libshadow.so
b7288000 0 4 4 rw--- libshadow.so
b7289000 0 56 0 r-x-- libfb.so
b72a6000 0 4 4 rw--- libfb.so
b72a7000 0 0 0 r-x-- libfbdevhw.so
b72ab000 0 0 0 rw--- libfbdevhw.so
b72ac000 0 4 0 r-x-- fbdev_drv.so
b72b0000 0 4 0 rw--- fbdev_drv.so
b72b1000 0 0 0 r-x-- librecord.so
b72b7000 0 0 0 rw--- librecord.so
b72b8000 0 12 0 r-x-- libglx.so
b7307000 0 8 0 rw--- libglx.so
b730a000 0 12 0 r-x-- libselinux.so.1
b7323000 0 0 0 r---- libselinux.so.1
b7324000 0 0 0 rw--- libselinux.so.1
b7325000 0 0 0 r-x-- libextmod.so
b7341000 0 4 4 rw--- libextmod.so
b7343000 0 0 0 r-x-- libdrm.so.2.4.0
b734c000 0 0 0 rw--- libdrm.so.2.4.0
b734d000 0 0 0 r-x-- libdri.so
b7355000 0 0 0 rw--- libdri.so
b7356000 0 0 0 r-x-- libgcc_s.so.1
b7373000 0 0 0 rw--- libgcc_s.so.1
b7374000 0 4 4 rw--- [ anon ]
b7376000 0 0 0 r-x-- libgpg-error.so.0.4.0
b7379000 0 0 0 rw--- libgpg-error.so.0.4.0
b737a000 0 0 0 r-x-- libfontenc.so.1.0.0
b737f000 0 0 0 rw--- libfontenc.so.1.0.0
b7380000 0 0 0 r-x-- libbz2.so.1.0.4
b7390000 0 0 0 rw--- libbz2.so.1.0.4
b7391000 0 0 0 r-x-- libfreetype.so.6.6.0
b7404000 0 0 0 rw--- libfreetype.so.6.6.0
b7408000 0 0 0 r-x-- libz.so.1.2.3.4
b741b000 0 0 0 rw--- libz.so.1.2.3.4
b741c000 0 0 0 rw--- [ anon ]
b741d000 0 128 0 r-x-- libc-2.11.2.so
b755d000 0 4 0 r---- libc-2.11.2.so
b755f000 0 4 0 rw--- libc-2.11.2.so
b7560000 0 8 4 rw--- [ anon ]
b7563000 0 8 0 r-x-- librt-2.11.2.so
b756a000 0 4 0 r---- librt-2.11.2.so
b756b000 0 0 0 rw--- librt-2.11.2.so
b756c000 0 4 0 r-x-- libm-2.11.2.so
b7590000 0 0 0 r---- libm-2.11.2.so
b7591000 0 0 0 rw--- libm-2.11.2.so
b7592000 0 0 0 r-x-- libaudit.so.0.0.0
b75a9000 0 4 0 r---- libaudit.so.0.0.0
b75aa000 0 0 0 rw--- libaudit.so.0.0.0
b75ab000 0 0 0 r-x-- libgcrypt.so.11.5.3
b761c000 0 8 4 rw--- libgcrypt.so.11.5.3
b761f000 0 0 0 r-x-- libXdmcp.so.6.0.0
b7623000 0 0 0 rw--- libXdmcp.so.6.0.0
b7624000 0 0 0 rw--- [ anon ]
b7625000 0 72 0 r-x-- libpixman-1.so.0.16.4
b767c000 0 8 0 rw--- libpixman-1.so.0.16.4
b767e000 0 0 0 r-x-- libXau.so.6.0.0
b7680000 0 0 0 rw--- libXau.so.6.0.0
b7681000 0 8 0 r-x-- libXfont.so.1.4.1
b76b5000 0 0 0 rw--- libXfont.so.1.4.1
b76b7000 0 12 0 r-x-- libpthread-2.11.2.so
b76cc000 0 4 0 r---- libpthread-2.11.2.so
b76cd000 0 0 0 rw--- libpthread-2.11.2.so
b76ce000 0 0 0 rw--- [ anon ]
b76d0000 0 4 0 r-x-- libdl-2.11.2.so
b76d2000 0 4 0 r---- libdl-2.11.2.so
b76d3000 0 0 0 rw--- libdl-2.11.2.so
b76d4000 0 4 0 rw--- [ anon ]
b76d5000 0 0 0 r-x-- libpciaccess.so.0.10.8
b76dc000 0 0 0 rw--- libpciaccess.so.0.10.8
b76dd000 0 4 0 r-x-- libudev.so.0.9.3
b76e9000 0 0 0 r---- libudev.so.0.9.3
b76ea000 0 0 0 rw--- libudev.so.0.9.3
b76eb000 0 0 0 r-x-- libdri2.so
b76ed000 0 0 0 rw--- libdri2.so
b76ee000 0 16 0 r-x-- libdbe.so
b76f2000 0 4 0 rw--- libdbe.so
b76f3000 0 4 0 rw--- [ anon ]
b76f6000 0 4 0 r-x-- [ anon ]
b76f7000 0 8 0 r-x-- ld-2.11.2.so
b7712000 0 0 0 r---- ld-2.11.2.so
b7713000 0 0 0 rw--- ld-2.11.2.so
bfcb7000 0 16 16 rw--- [ stack ]
-------- ------- ------- ------- -------
total kB 1197560 - - -
debian:~#
pmap -d shows the 1.1GB mapped against an anonymous map.
debian:~# pmap -d 1598 | more
1598: /usr/bin/X :0 -br -nocursor -auth /tmp/serverauth.O1gWpWvWuP
Address Kbytes Mode Offset Device Mapping
08048000 1644 r-x-- 0000000000000000 008:00001 Xorg
081e3000 48 rw--- 000000000019b000 008:00001 Xorg
081ef000 44 rw--- 0000000000000000 000:00000 [ anon ]
08231000 1164236 rw--- 0000000000000000 000:00000 [ anon ]
b5422000 3752 rw--- 0000000000000000 000:00000 [ anon ]
b59a1000 384 rw-s- 0000000000000000 000:00004 [ shmid=0x520000 ]
I need a way now to identify the owner of address 08231000.
The Controller is given below..
debian:~# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
debian:~#
debian:~#
Modules loaded by Xorg are as below..
debian:~# grep -i "Loading" /var/log/Xorg.0.log
(II) Loading /usr/lib/xorg/modules/extensions/libdbe.so
(II) Loading extension DOUBLE-BUFFER
(II) Loading /usr/lib/xorg/modules/extensions/libdri2.so
(II) Loading extension DRI2
(II) Loading /usr/lib/xorg/modules/extensions/libextmod.so
(II) Loading extension SELinux
(II) Loading extension MIT-SCREEN-SAVER
(II) Loading extension XFree86-VidModeExtension
(II) Loading extension XFree86-DGA
(II) Loading extension DPMS
(II) Loading extension XVideo
(II) Loading extension XVideo-MotionCompensation
(II) Loading extension X-Resource
(II) Loading /usr/lib/xorg/modules/extensions/libdri.so
(II) Loading extension XFree86-DRI
(II) Loading /usr/lib/xorg/modules/extensions/libglx.so
(II) Loading extension GLX
(II) Loading /usr/lib/xorg/modules/extensions/librecord.so
(II) Loading extension RECORD
(II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
(II) Loading sub module "fbdevhw"
(II) Loading /usr/lib/xorg/modules/linux/libfbdevhw.so
(II) Loading sub module "fb"
(II) Loading /usr/lib/xorg/modules/libfb.so
(II) Loading sub module "shadow"
(II) Loading /usr/lib/xorg/modules/libshadow.so
(II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
debian:~#
debian:~# /usr/bin/Xorg -version
X.Org X Server 1.7.7
Release Date: 2010-05-04
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.32.29-dsa-ia32 i686 Debian
Current Operating System: Linux debian 2.6.32-5-686 #1 SMP Tue Mar 8 21:36:00 UTC 2011 i686
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-686 root=/dev/sda1 nomodeset
Build Date: 19 February 2011 02:37:36PM
xorg-server 2:1.7.7-13 (Cyril Brulebois )
Current version of pixman: 0.16.4
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
debian:~#
Asked by ReddyGB
(71 rep)
Dec 4, 2014, 06:37 PM
Last activity: Feb 18, 2022, 02:04 PM
Last activity: Feb 18, 2022, 02:04 PM