Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jun 2004 13:40:07 -0500
From:      Craig Boston <craig@xfoil.gank.org>
To:        Brian Fundakowski Feldman <green@freebsd.org>
Cc:        Kris Kennaway <kris@obsecurity.org>
Subject:   Re: (continued) XFree86 problem?
Message-ID:  <200406171340.07828.craig@xfoil.gank.org>
In-Reply-To: <20040617175020.GF15918@green.homeunix.org>
References:  <200406161455.13175.lesha@intercaf.ru> <200406170927.38606.craig@xfoil.gank.org> <20040617175020.GF15918@green.homeunix.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 17 June 2004 12:50 pm, Brian Fundakowski Feldman wrote:
> At the least, you can get a very distant overview by mounting /proc and
> looking at the /proc/<pid>/map of the X server.  It should give you a
> reasonable amount of information on at least whether all your memory is
> being used by anonymous memory, or device mappings, or file mappings...

Sorry for the >80 char columns, but this looked pretty awful wrapped...
Comments inline.

So, assuming that the third column is resident memory measured in pages:

>0x8048000 0x81af000 213 221 0xc6ad6ef4 r-x 2 1 0x4 COW NC vnode /usr/X11R6/bin/XFree86
>0x81af000 0x81e0000 13 0 0xc6ad6000 rw- 1 0 0x2184 COW NNC vnode /usr/X11R6/bin/XFree86
904K for the binary itself, that certainly seems reasonable.

>0x81e0000 0x81f3000 17 0 0xc6e08c60 rw- 1 0 0x2184 COW NNC swap -
>0x81f3000 0x89b0000 611 0 0xc6acd210 rwx 1 0 0x2184 COW NNC swap -
>0x89b0000 0x1050c000 30498 0 0xc7065108 rwx 1 0 0x2184 COW NNC swap -
>0x1050c000 0x1a667000 41239 0 0xc6e51d68 rwx 1 0 0x2184 NCOW NNC swap -
282M of allocated memory, this is where the bulk is (xrestop is reporting
55M total at the moment).  It COULD be pixmap cache, but 220M seems
excessive for that.

>0x281af000 0x281cc000 23 0 0xc1042294 r-x 192 90 0x4 COW NC vnode /libexec/ld-elf.so.1
>0x281cc000 0x281ce000 0 0 0xc6acd294 rw- 1 0 0x2184 COW NC vnode /libexec/ld-elf.so.1

>0x281ce000 0x281d2000 0 0 0xc6f19dec rw- 1 0 0x2184 COW NNC swap -
>0x281d2000 0x281e3000 0 0 0xc72508c4 rwx 1 0 0x2184 COW NNC swap -
0?  Maybe this memory is swapped out...  It's only 84k anyway.

>0x281e3000 0x281ed000 10 0 0xc647c6b4 r-x 116 66 0x4 COW NC vnode /lib/libz.so.2
>0x281ed000 0x281ee000 1 0 0xc6ad6e70 r-x 1 0 0x2184 COW NC vnode /lib/libz.so.2
>0x281ee000 0x281f0000 1 0 0xc6adb4a4 rwx 1 0 0x2184 COW NC vnode /lib/libz.so.2
>0x281f0000 0x28203000 14 0 0xc6478318 r-x 77 40 0x4 COW NC vnode /lib/libm.so.2
>0x28203000 0x28204000 0 0 0xc6adb7bc r-x 1 0 0x2184 COW NC vnode /lib/libm.so.2
>0x28204000 0x28208000 1 0 0xc6ad6d68 rwx 1 0 0x2184 COW NC vnode /lib/libm.so.2
>0x28208000 0x282c5000 141 0 0xc6ad618c r-x 1 0 0x2184 COW NC vnode /lib/libc.so.5
>0x282c5000 0x282c6000 1 0 0xc6ad6108 r-x 1 0 0x2184 COW NC vnode /lib/libc.so.5
>0x282c6000 0x282cc000 4 0 0xc855d8c4 rwx 1 0 0x2184 COW NNC vnode /lib/libc.so.5

Under a meg of VM space for shared libraries.

>0x282cc000 0x282df000 4 0 0xc8571c60 rwx 1 0 0x2184 COW NNC swap -

>0x282e3000 0x282e7000 3 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -
>0x282e7000 0x282f7000 16 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -
>0x282f7000 0x282fb000 4 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -
>0x28303000 0x28343000 1 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -
>0x28343000 0x28353000 0 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -

Memory mapped registers for video cards maybe?

>0x28400000 0x29400000 4096 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -

No idea what this is for...

>0x29400000 0x2ac00000 6144 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -
>0x2ac00000 0x2b400000 2048 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -
>0x2b400000 0x2f400000 16384 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -

Video memory.  The first two are for a dual-head mga card with 32MB of video
RAM -- it's split into 24M for the first and 8M for the second.  The other
one is a 64M nv card.

>0x2f400000 0x2fc00000 2048 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -
>0x2fc00000 0x30400000 2048 0 0xc6aca840 rwx 16 0 0x184 NCOW NNC device -

Not sure on this either.

>0x30400000 0x30460000 96 0 0xc6c908c4 rwx 3 0 0x194 NCOW NNC default -
>0x30460000 0x304c6000 101 0 0xc8413630 rwx 1 0 0x2184 NCOW NNC default -
>0x304c6000 0x30526000 96 0 0xc6e9bd68 rwx 3 0 0x194 NCOW NNC default -
>0x30526000 0x30586000 96 0 0xc7a57b58 rwx 3 0 0x194 NCOW NNC default -
>0x30586000 0x305e6000 96 0 0xc72157bc rwx 3 0 0x194 NCOW NNC default -
>0x305e6000 0x30646000 96 0 0xc6f05a50 rwx 3 0 0x194 NCOW NNC default -
>0x30646000 0x307a1000 347 0 0xc7264d68 r-x 3 0 0x194 NCOW NNC default -
>0x307a1000 0x31539000 865 0 0xc7110a50 r-x 4 0 0x194 NCOW NNC default -
>0x31539000 0x31599000 96 0 0xc8414ce4 rwx 3 0 0x194 NCOW NNC default -
>0x31599000 0x315f9000 96 0 0xc83fcad4 rwx 3 0 0x194 NCOW NNC default -
>0xbfb80000 0xbfba0000 12 0 0xc702ca50 rwx 1 0 0x2184 NCOW NNC default -

What does "default" mean?  Whatever it is accounts for only about 18M.

>0xbfba0000 0xbfbe0000 64 0 0xc6f73ef4 rwx 1 0 0x2184 COW NNC swap -
>0xbfbe0000 0xbfc00000 32 0 0xc6d5d4a4 rwx 1 0 0x2184 COW NNC swap -

Just a tiny bit more way out here.

I suppose the real test would be to try to debug the XFree86 process and track
where it's getting allocated.  That's one of the pieces of code (along with
wine and gcc) that I'm scared of though :)

Anyway, my case isn't so bad -- I'm okay with just restarting X once a week.
So don't expend a ton of effort on my behalf :)  AK's report looks more
severe though, 538M in only 7 minutes of CPU time...  It would be interesting
to see the process map from that system to determine how much is video RAM
and how much is just swapped out...

Craig



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406171340.07828.craig>