Skip site navigation (1)Skip section navigation (2)
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>

next in thread | raw e-mail | index | archive | help

>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:



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