Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Dec 1995 20:45:26 -0800
From:      deborah@microunity.com (Deborah Gronke Bennett)
To:        bugs@freebsd.org
Cc:        gmo@microunity.com
Subject:   vm_object_deallocate panic in FreeBSD 2.0.5
Message-ID:  <9512142045.ZM12001@gallifrey.microunity.com>

next in thread | raw e-mail | index | archive | help
Here is my configuration:

Gateway 2000 P5-90 PC
Triton Chipset on motherboard
ATI GX Mach64 Graphics Card
IDE CD-ROM
1 GB IDE disk
PS/2 Mouse
Dell UltraScan monitor

The PC is installed with FreeBSD 2.0.5 from a local network image
taken from the CD-ROM. It has a kern-developer install plus DES.
It does not have XFree86 installed locally, but there is a full
image of the usr/X11R6 tree on an auspex server. This machine has
been running reliably with 2.0.5 for a while (several months) and has
mostly been used to debug a device driver for an ISA card. When I
found this bug, neither the device driver nor the card it controls are
present on the PC in question.

I recently have been testing a setup to run X11 on this PC without installing
XFree86 locally. In the process, I seem to have run across a bug which shows
up in vm_object_deallocate.

Here's the stack traceback from DDB:

panic: vm_object_deallocate: object deallocated too many times
Debugger("panic")
Stopped at      _Debugger+0x2b: movb    $0,_in_Debugger.110
db> trace
_Debugger(f011657b,f0116570,f018dc4b,efbffe9c,f072c700) at _Debugger+0x2b
_panic(f018dc4b,f072ba80,0,f0726d00,efbffed0) at _panic+0x3b
_vm_object_deallocate(f072c700,f0726d00,f0730a40,f01e618c,f072ba80) at
_vm_object_deallocate+0x21
_vn_close(f072ba80,1,f0727280,f0726d00,efbfff34) at _vn_close+0x70
_vn_closefile(f0730a40,f0726d00,f0725d00,4,f0726d00) at _vn_closefile+0x19
_closef(f0730a40,f0726d00,f01e7300,f0726d00,1) at _closef+0x12c
_close(f0726d00,efbfff94,efbfff8c,8136060,b49) at _close+0x83
_syscall(27,27,3b000,b49,efbfd6c0) at _syscall+0xfb
Bad user frame pointer: 0xefbfd6c0
db>

Here's how I caused the problem:

Build a GENERIC kernel, and add these options:

options               COMCONSOLE              #prefer serial console to video
console
options               DDB
options               BREAK_TO_DEBUGGER       #a BREAK on a comconsole goes to
                                      #DDB, if available.
device                psm0    at isa? port "IO_KBD" conflicts tty irq 12 vector
psmintr

(I need psm0 because of my mouse type. I need COMCONSOLE because after the
X server causes the crash, any DDB output won't go to the graphics console.
I added BREAK_TO_DEBUGGER in case the problem was not a crash but a hang.)

Boot this GENERIC_SERIAL kernel.
Log in as root.
Setenv path /usr/X11/bin:$PATH
startx
	(the grey screen is painted, and the X cursor appears in the middle.
	 no windows appear, and the cursor won't move)

/usr/X11 is a symlink to /usr/X11R6. /usr/X11R6 is mounted from our
auspex server, not through an automounter, but from the /etc/fstab file.
The only changes to usr/X11R6 on the server are the link from
usr/X11R6/bin/X to usr/X11R6/bin/XF86_Mach64, and the presence of
the XF86Config file in usr/X11R6/lib/X11.

Another note: a similar machine (a Gateway 133MHz pentium, same motherboard,
same graphics, but SCSI disk and CD-ROM and SCSI tape) will run
with the exact same XF86Config file and a locally installed copy of
XFree86 with no problems.

Here is the contents of my XF86Config file:

# File generated by xf86config.

#
# Copyright (c) 1994 by The XFree86 Project, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Except as contained in this notice, the name of the XFree86 Project shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#

# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.
# **********************************************************************

# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************

Section "Files"

# The location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.

    RgbPath	"/usr/X11R6/lib/X11/rgb"

# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
#
# If you don't have a floating point coprocessor and emacs, Mosaic or other
# programs take long to start up, try moving the Type1 and Speedo directory
# to the end of this list (or comment them out).
#

    FontPath	"/usr/X11R6/lib/X11/fonts/misc/"
    FontPath	"/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath	"/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/"

EndSection

# **********************************************************************
# Server flags section.
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is
# received.  This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging

#    NoTrapSignals

# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# This allows clients to receive this key event.

#    DontZap

# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
# sequences.  This allows clients to receive these key events.

#    DontZoom

EndSection

# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Keyboard section
# **********************************************************************

Section "Keyboard"

    Protocol	"Standard"

# when using XQUEUE, comment out the above line, and uncomment the
# following line

#    Protocol	"Xqueue"

    AutoRepeat	500 5
# Let the server do the NumLock processing.  This should only be required
# when using pre-R6 clients
#    ServerNumLock

# Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Xleds      1 2 3

# To set the LeftAlt to Meta, RightAlt key to ModeShift,
# RightCtl key to Compose, and ScrollLock key to ModeLock:

#    LeftAlt     Meta
#    RightAlt    ModeShift
#    RightCtl    Compose
#    ScrollLock  ModeLock

EndSection


# **********************************************************************
# Pointer section
# **********************************************************************

Section "Pointer"
    Protocol    "PS/2"
    Device      "/dev/psm0"

# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.

#    Protocol	"Xqueue"

# Baudrate and SampleRate are only for some Logitech mice

#    BaudRate	9600
#    SampleRate	150

# Emulate3Buttons is an option for 2-button Microsoft mice

    Emulate3Buttons

# ChordMiddle is an option for some 3-button Logitech mice

#    ChordMiddle

EndSection


# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

    Identifier  "Vivitron_1776"
    VendorName  "Vivitron"
    ModelName   "1776"

# Bandwidth is in MHz unless units are specified

#    Bandwidth	25.2

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

    HorizSync   31.5 - 64.3

#    HorizSync	30-64         # multisync
#    HorizSync	31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync	15-25, 30-50  # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

    VertRefresh 50-120

# Modes can be specified in two formats.  A compact one-line format, or
# a multi-line format.

# These two are equivalent

#    ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace

#    Mode "1024x768i"
#        DotClock	45
#        HTimings	1024 1048 1208 1264
#        VTimings	768 776 784 817
#        Flags		"Interlace"
#    EndMode

# This is a set of standard mode timings. Modes that are out of monitor spec
# are automatically deleted by the server (provided the HorizSync and
# VertRefresh lines are correct), so there's no immediate need to
# delete mode timings (unless particular mode timings don't work on your
# monitor). With these modes, the best standard mode that your monitor
# and video card can support for a given resolution is automatically
# used.

# 640x400 @ 70 Hz, 31.5 kHz hsync
Modeline "640x400"     25.175 640  664  760  800   400  409  411  450
# 640x480 @ 60 Hz, 31.5 kHz hsync
Modeline "640x480"     25.175 640  664  760  800   480  491  493  525
# 800x600 @ 56 Hz, 35.15 kHz hsync
ModeLine "800x600"     36     800  824  896 1024   600  601  603  625
# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync
Modeline "1024x768"    44.9  1024 1048 1208 1264   768  776  784  817 Interlace

# 640x480 @ 72 Hz, 36.5 kHz hsync
Modeline "640x480"     31.5   640  680  720  864   480  488  491  521
# 800x600 @ 60 Hz, 37.8 kHz hsync
Modeline "800x600"     40     800  840  968 1056   600  601  605  628 +hsync
+vsync

# 800x600 @ 72 Hz, 48.0 kHz hsync
Modeline "800x600"     50     800  856  976 1040   600  637  643  666 +hsync
+vsync
# 1024x768 @ 60 Hz, 48.4 kHz hsync
Modeline "1024x768"    65    1024 1032 1176 1344   768  771  777  806 -hsync
-vsync

# 1024x768 @ 70 Hz, 56.5 kHz hsync
Modeline "1024x768"    75    1024 1048 1184 1328   768  771  777  806 -hsync
-vsync
# 1280x1024 @ 87 Hz interlaced, 51 kHz hsync
Modeline "1280x1024"   80    1280 1296 1512 1568  1024 1025 1037 1165 Interlace

# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768"    85    1024 1032 1152 1360   768  784  787  823
# 1280x1024 @ 61 Hz, 64.2 kHz hsync
Modeline "1280x1024"  110    1280 1328 1512 1712  1024 1025 1028 1054

# 1280x1024 @ 74 Hz, 78.85 kHz hsync
Modeline "1280x1024"  135    1280 1312 1456 1712  1024 1027 1030 1064

# Low-res Doublescan modes
# If your chipset does not support doublescan, you get a 'squashed'
# resolution like 320x400.

# 320x200 @ 70 Hz, 31.5 kHz hsync, 8:5 aspect ratio
Modeline "320x200"     12.588 320  336  384  400   200  204  205  225
Doublescan
# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio
Modeline "320x240"     12.588 320  336  384  400   240  245  246  262
Doublescan
# 320x240 @ 72 Hz, 36.5 kHz hsync
Modeline "320x240"     15.750 320  336  384  400   240  244  246  262
Doublescan
# 400x300 @ 56 Hz, 35.2 kHz hsync, 4:3 aspect ratio
ModeLine "400x300"     18     400  416  448  512   300  301  602  312
Doublescan
# 400x300 @ 60 Hz, 37.8 kHz hsync
Modeline "400x300"     20     400  416  480  528   300  301  303  314
Doublescan
# 400x300 @ 72 Hz, 48.0 kHz hsync
Modeline "400x300"     25     400  424  488  520   300  319  322  333
Doublescan
# 480x300 @ 56 Hz, 35.2 kHz hsync, 8:5 aspect ratio
ModeLine "480x300"     21.656 480  496  536  616   300  301  302  312
Doublescan
# 480x300 @ 60 Hz, 37.8 kHz hsync
Modeline "480x300"     23.890 480  496  576  632   300  301  303  314
Doublescan
# 480x300 @ 63 Hz, 39.6 kHz hsync
Modeline "480x300"     25     480  496  576  632   300  301  303  314
Doublescan
# 480x300 @ 72 Hz, 48.0 kHz hsync
Modeline "480x300"     29.952 480  504  584  624   300  319  322  333
Doublescan

EndSection


# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

# Standard VGA Device:

Section "Device"
    Identifier	"Generic VGA"
    VendorName	"Unknown"
    BoardName	"Unknown"
    Chipset	"generic"

#    VideoRam	256

#    Clocks	25.2 28.3

EndSection

# Sample Device for accelerated server:

# Section "Device"
#    Identifier	"Actix GE32+ 2MB"
#    VendorName	"Actix"
#    BoardName	"GE32+"
#    Ramdac	"ATT20C490"
#    Dacspeed	110
#    Option	"dac_8_bit"
#    Clocks	 25.0  28.0  40.0   0.0  50.0  77.0  36.0  45.0
#    Clocks	130.0 120.0  80.0  31.0 110.0  65.0  75.0  94.0
# EndSection

# Device configured by xf86config:

Section "Device"
    Identifier  "ATI_GX_Mach64"
    VendorName  "ATI"
    BoardName   "GX_Mach64"
    #VideoRam    2048
    Clocks  50.35  56.64  63.00  72.00  40.00  44.90  49.50  50.00
    Clocks   0.00 110.00 126.00 135.00   0.00  80.00  75.00  65.00
    Clocks  25.18  28.32  31.50  36.00  20.00  22.45  24.75  25.00
    Clocks   0.00  55.00  63.00  67.50   0.00  40.00  37.50  32.50
EndSection


# **********************************************************************
# Screen sections
# **********************************************************************

# The Colour SVGA server

Section "Screen"
    Driver      "svga"
    Device      "Generic VGA"
    #Device      "ATI_GX_Mach64"
    Monitor     "Vivitron_1776"
    Subsection "Display"
        Depth       8
        #Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
        Virtual     320 200
        #Virtual     1280 1024
    EndSubsection
EndSection

# The 16-color VGA server

Section "Screen"
    Driver      "vga16"
    Device      "Generic VGA"
    Monitor     "Vivitron_1776"
    Subsection "Display"
        Modes       "640x480" "800x600"
        ViewPort    0 0
        Virtual     800 600
    EndSubsection
EndSection

# The Mono server

Section "Screen"
    Driver      "vga2"
    Device      "Generic VGA"
    Monitor     "Vivitron_1776"
    Subsection "Display"
        Modes       "640x480" "800x600"
        ViewPort    0 0
        Virtual     800 600
    EndSubsection
EndSection

# The accelerated servers (S3, Mach32, Mach8, 8514, P9000, AGX, W32, Mach64)

Section "Screen"
    Driver      "accel"
    Device      "ATI_GX_Mach64"
    Monitor     "Vivitron_1776"
    Subsection "Display"
        Depth       8
        Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
        Virtual     1280 1024
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes       "1024x768" "800x600" "640x480"
        ViewPort    0 0
        Virtual     1024 768
    EndSubsection
    Subsection "Display"
        Depth       32
        Modes       "800x600" "640x480"
        ViewPort    0 0
        Virtual     800 600
    EndSubsection
EndSection






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