Date: Sat, 17 Aug 1996 07:53:40 -0700 (PDT) From: Matthew Dillon <dillon@backplane.com> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/1501: vmstat reports impossible avm after starting up X Message-ID: <199608171453.HAA00446@apollo.backplane.com> Resent-Message-ID: <199608171500.IAA29410@freefall.freebsd.org>
index | next in thread | raw e-mail
>Number: 1501
>Category: kern
>Synopsis: vmstat reports impossible avm after starting up X
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Aug 17 08:00:01 PDT 1996
>Last-Modified:
>Originator: Matthew Dillon
>Organization:
BEST Internet Communications
>Release: FreeBSD 2.1-STABLE i386
>Environment:
running 2.1.5 patched to (ctm) src-2.1.0.0154.gz
Pentium 90
32 MB ram
>Description:
vmstat comes back with reasonable numbers in the avm field, for
example:
0 0 0 95372 5704 37 0 1 0 46 0 2 0 0 302 207 47 1 2 97
Until I run xdm. It then comes back with a 2 GByte+ avm, clearly
impossible.
0 0 02523444 5704 37 0 1 0 46 0 2 0 0 302 207 47 1 2 97
I added a debugging printf in vm_meter.c in the loop that collects
the metering information that vmstat uses. My debugging printf
simply prints out the size of each object. I found that after running
xdm, the size of exactly one of the objects in the object returned
an impossible number as shown below. I do not know which process this
object belongs to, but it's a good bet that it's the X server. Perhaps
it's the video map ??? I dunno.
Aug 17 07:38:38 apollo /kernel: object f0c24d80 size 3936256
Aug 17 07:38:38 apollo /kernel: object f0c24c00 size 4096
Aug 17 07:38:38 apollo /kernel: object f0c2b080 size 73728
Aug 17 07:38:38 apollo /kernel: object f0c2b600 size 8192
Aug 17 07:38:38 apollo /kernel: object f0c2fc80 size 4096
Aug 17 07:38:38 apollo /kernel: object f0c35600 size 12288
Aug 17 07:38:38 apollo /kernel: object f0c37f80 size 20480
Aug 17 07:38:38 apollo /kernel: object f0c37e80 size -1609564160
Aug 17 07:38:38 apollo /kernel: object f0c37c80 size 16384
Aug 17 07:38:38 apollo /kernel: object f0c37c00 size 8192
Aug 17 07:38:38 apollo /kernel: object f0c37b00 size 12288
Aug 17 07:38:38 apollo /kernel: object f0c37a80 size 4096
Aug 17 07:38:38 apollo /kernel: object f0c37a00 size 4096
Aug 17 07:38:38 apollo /kernel: object f0c37980 size 16384
>How-To-Repeat:
Run xdm (Using XFree86 with the Cirrus accel. driver)
Then run 'vmstat 5'
>Fix:
I added a quick hack to vm_meter to ignore size's that were < 0
(from the point of view of a signed 32 bit int). That is not
the correct fix. The correct fix would be to locate the code
generating the bogus object size and fix that.
>Audit-Trail:
>Unformatted:
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608171453.HAA00446>
