Subject: Re: panic: pv_unlink0 - status report
To: None <port-sparc@NetBSD.ORG>
From: Erik E. Fair <fair@clock.org>
List: port-sparc
Date: 05/05/1997 22:57:03
I am pretty prepared at this point to say that the frequency of the bug is
related to kernel size; I just booted a kernel that is stable past the end
of /etc/rc (like that other one I built by luck) from sources current as of
yesterday (May 4).

text    data    bss     dec     hex
1155072 113032  69544   1337648 146930  /netbsd
1138688 112456  69544   1320688 1426f0  /netbsd.bad
1245184 113056  63976   1422216 15b388  /netbsd.gen-dbug
1114112 110424  66600   1291136 13b380  /netbsd.prev

netbsd.prev is what I was running; a CESIUM kernel with makeoptions DEBUG=3D=
"-g"

netbsd.bad dies with panic: pv_unlink0 near the end of /etc/rc (CESIUM
kernel, with DEBUG and makeoptions DEBUG=3D"-g", but with all unused device
drivers (mostly the Sun graphics drivers other than cgsix) removed), and
this despite having "pmapdebug =3D PDB_SANITYCHK". The current /netbsd kerne=
l
also has this debug feature turned on.

netbsd.gen-dbug is a GENERIC kernel with makeoptions DEBUG=3D"-g" (which
worked fine for long enough that I decided to try and compile a CESIUM
kernel the same way)

Another oddity that some others may have noticed - vmstat occasionally
reports vastly more pages in use than the system even has. I'm gonna go
poke at that, with some hope that it might give me insight...

	Erik Fair <fair@clock.org> (got zmailer working again)


# dmesg
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 1.2D (CESIUM) #8: Sun May  4 22:10:49 PDT 1997
    root@cesium.clock.org:/usr/src/sys/arch/sparc/compile/CESIUM
real mem =3D 100188160
avail mem =3D 93556736
using 768 buffers containing 3145728 bytes of memory
bootpath: /iommu@0,10000000/sbus@0,10001000/dma@0,81000/esp@0,80000/sd@0,0
mainbus0 (root): SUNW,SPARCstation-LX
cpu0 at mainbus0: TMS390S10 @ 50 MHz, on-chip FPU
cpu0: physical 4K instruction (32 b/l), 2K data (16 b/l) cache enabled
obio0 at mainbus0
clock0 at obio0 addr 0x71200000: mk48t08 (eeprom)
timer0 at obio0 addr 0x71d00000 delay constant 23
zs0 at obio0 addr 0x71100000 pri 12, softpri 6
zs0a: console i/o
zs1 at obio0 addr 0x71000000 pri 12, softpri 6
[slavioconfig at obio0] addr 0x71800000 not configured
auxreg0 at obio0 addr 0x71900000
power0 at obio0 addr 0x71910000
fdc0 at obio0 addr 0x71400000 pri 11, softpri 4: chip 82077
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
iommu0 at mainbus0 addr 0x10000000: version 1/4, page-size 4096, range 64MB
sbus0 at iommu0: clock =3D 25 MHz
dma0 at sbus0 slot 4 offset 0x8400000: rev 2
esp0 at dma0 slot 0x4 offset 0x8800000 pri 4: ESP200, 40MHz, SCSI ID 7
scsibus0 at esp0: 8 targets
sd0 at scsibus0 targ 3 lun 0: <QUANTUM, FIREBALL1080S, 1Q09> SCSI2 0/direct
fixed
sd0: 1042MB, 3835 cyl, 4 head, 139 sec, 512 bytes/sec
SUNW,bpp at sbus0 slot 4 offset 0xc800000 not configured
ledma0 at sbus0 slot 4 offset 0x8400010: rev 2
le0 at ledma0 slot 0x4 offset 0x8c00000 pri 6: address 08:00:20:00:5a:bc
le0: 8 receive buffers, 2 transmit buffers
dma1 at sbus0 slot 0 offset 0x81000: rev esc
esp1 at dma1 slot 0x0 offset 0x80000 pri 5: ESP200, 40MHz, SCSI ID 7
scsibus1 at esp1: 8 targets
sd1 at scsibus1 targ 0 lun 0: <DEC, DSP5350S, 427B> SCSI2 0/direct fixed
sd1: 3406MB, 3055 cyl, 25 head, 91 sec, 512 bytes/sec
sd3 at scsibus1 targ 1 lun 0: <DEC, DSP5350S, 427B> SCSI2 0/direct fixed
sd3: 3406MB, 3055 cyl, 25 head, 91 sec, 512 bytes/sec
lebuffer0 at sbus0 slot 0 offset 0x40000
le1 at lebuffer0 slot 0x0 offset 0x60000 pri 7: address 08:00:20:00:5a:bc
le1: 64 receive buffers, 16 transmit buffers
SUNW,DBRIe at sbus0 slot 2 offset 0x10000 not configured
cgsix0 at sbus0 slot 3 offset 0x0: SUNW,501-1672, 1152 x 900, rev 8
init: copying out path `/sbin/init' 11


# cat /sys/arch/sparc/conf/CESIUM
#       $NetBSD: GENERIC,v 1.42 1997/03/13 00:46:13 cgd Exp $

include "arch/sparc/conf/std.sparc"

makeoptions     DEBUG=3D"-g"

maxusers        32

# Options for variants of the Sun SPARC architecure.
# At least one is required.
options         SUN4M           # sun4m - SS10, SS20, Classic, etc.

# Standard system options
options         KTRACE          # system call tracing
options         SYSVMSG         # System V message queues
options         SYSVSEM         # System V semaphores
options         SYSVSHM         # System V shared memory
#options        SHMMAXPGS=3D1024  # 1024 pages is the default
options         LKM             # loadable kernel modules
#options        INSECURE        # disable kernel security level
#options        UCONSOLE        # allow anyone to steal the virtual console

# Debugging options
#options        DDB             # kernel dynamic debugger
options         DEBUG           # kernel debugging code
options         DIAGNOSTIC      # extra kernel sanity checking
#options        KGDB            # support for kernel gdb
#options        KGDBDEV=3D0xc01   # kgdb device number (dev_t)
#options        KGDBRATE=3D38400  # baud rate

# Compatibility options
options         COMPAT_43       # 4.3BSD system interfaces
options         COMPAT_10       # NetBSD 1.0 binary compatibility
options         COMPAT_11       # NetBSD 1.1 binary compatibility
options         COMPAT_12       # NetBSD 1.2 binary compatibility
options         COMPAT_SUNOS    # SunOS 4.x binary compatibility
options         COMPAT_SVR4     # SunOS 5.x binary compatibility
options         EXEC_ELF32      # Exec module for SunOS 5.x binaries.

# Filesystem options
file-system     FFS             # Berkeley Fast Filesystem
file-system     NFS             # Sun NFS-compatible filesystem client
file-system     KERNFS          # kernel data-structure filesystem
file-system     NULLFS          # NULL layered filesystem
file-system     MFS             # memory-based filesystem
file-system     FDESC           # user file descriptor filesystem
file-system     UMAPFS          # uid/gid remapping filesystem
file-system     LFS             # Log-based filesystem (still experimental)
file-system     PORTAL          # portal filesystem (still experimental)
file-system     PROCFS          # /proc
file-system     CD9660          # ISO 9660 + Rock Ridge file system
file-system     UNION           # union file system
file-system     MSDOSFS         # MS-DOS FAT filesystem(s).

options         NFSSERVER       # Sun NFS-compatible filesystem server
options         QUOTA           # FFS quotas
options         FIFO            # POSIX fifo support (in all filesystems)

options         NTP             # Kernel phased locked loop code
options         PPS             # Kernel PPS sync dreiver for serial ports

# Networking options
options         INET            # IP stack
options         TCP_COMPAT_42   # compatibility with 4.2BSD TCP/IP
options         GATEWAY         # IP packet forwarding
#options        ISO,TPIP        # OSI networking
#options        EON             # OSI tunneling over IP
#options        CCITT,LLC,HDLC  # X.25
#options        PFIL_HOOKS      # pfil(9) packet filter hooks.
options         MROUTING        # IP multicast

# Options for SPARCstation hardware
options         RASTERCONSOLE   # fast rasterop console

# Generic swap; second partition of root disk or network.
#config         netbsd  root on ? type ?
config          netbsd  root on sd1a type ffs swap on sd1b and sd3b

# Main bus and CPU .. all systems.
mainbus0 at root
cpu0    at mainbus0

# Bus types found on SPARC systems.
obio0   at mainbus0                             # sun4 and sun4m
iommu0  at mainbus0                             # sun4m
sbus0   at iommu0                               # sun4m

audio0  at obio0                                # sun4m
audio0  at sbus0 slot ? offset ?                # sun4m

auxreg0 at obio0                                # sun4m

# Power status and control register found on Sun4m systems
power0  at obio0

# Mostek clock found on 4/300, sun4c, and sun4m systems.
# The Mostek clock NVRAM is the "eeprom" on sun4/300 systems.
clock0  at obio0                                # sun4m

# Memory error registers.
memreg0 at obio0                                # sun4m

# Timer chip found on 4/300, sun4c, and sun4m systems.
timer0  at obio0                                # sun4m

# Zilog 8530 serial chips.  Each has two-channels.
# zs0 is ttya and ttyb.  zs1 is the keyboard and mouse.
zs0     at obio0                                        # sun4m
zs1     at obio0                                        # sun4m

#
# Note the flags on the esp entries below, that work around
# deficiencies in the current driver:
#       bits 0-7:  disable disconnect/reselect for the corresponding target
#       bits 8-15: disable synch negotiation for target [bit-8]
#       Note: targets 4-7 have disconnect/reselect enabled on the premise
#             that tape devices normally have one of these targets. Tape
#             devices should be allowed to disconnect for the SCSI bus
#             to operate acceptably.
#

# sun4c or sun4m SCSI - an NCR53c94 or equivalent behind
# specialized DMA glue
dma0    at sbus0 slot ? offset ?                        # on-board SCSI
esp0    at dma0 flags 0xff0f                            # sun4m

# FSBE/S SCSI - an NCR53c94 or equivalent behind
dma1    at sbus0 slot 0 offset 0x81000
dma*    at sbus? slot ? offset ?                        # SBus SCSI

esp1    at dma1 flags 0xff0f
esp*    at sbus? slot ? offset ? flags 0xff0f           # two flavours
esp*    at dma? flags 0xff0f                            # depending on model


# sun4m Ethernet - an AMD 7990 LANCE behind
# specialized DMA glue
ledma0  at sbus0 slot ? offset ?                        # sun4m on-board
le0     at ledma0                                       #

# Additional SBus LANCE devices - glued on by lebuffer
lebuffer0       at sbus0 slot ? offset ?                # sun4m SBus
lebuffer*       at sbus? slot ? offset ?                # sun4m SBus
le0     at lebuffer0                                    #
le*     at lebuffer?                                    #

# Sun "bwtwo" black and white framebuffer, found on sun4, sun4c, and sun4m
# systems.  If your sun4 system has a cgfour installed in the P4 slot,
# the P4 entries for "bwtwo" will attach to the overlay plane of the
# "cgfour".
bwtwo*  at sbus? slot ? offset ?                # sun4c and sun4m

# Sun "cgthree" Sbus color framebuffer
cgthree0 at sbus? slot ? offset ?
cgthree* at sbus? slot ? offset ?
#cgthree0 at obio? slot ? offset ?              # sun4m
#cgthree* at obio? slot ? offset ?              # sun4m

# Sun "cgsix" accelerated color framebuffer.
cgsix0  at sbus? slot ? offset ?
cgsix*  at sbus? slot ? offset ?

# Sun "tcx" accelerated color framebuffer.
tcx0    at sbus? slot ? offset ?
tcx*    at sbus? slot ? offset ?

# Sun "cgfourteen" accelerated 24-bit framebuffer.
cgfourteen0     at obio0                        # sun4m

# SCSI bus layer.  SCSI devices attach to the SCSI bus, which attaches
# to the underlying hardware controller.
scsibus0 at esp0
scsibus1 at esp1
scsibus* at esp?

# fix disks at particular locations so that a dead or new disk
# doesn't screw up fstab
# built-in slow SCSI - even numbered drives
# the odd target ordering is to accomodate the internal drive at ID 3
sd0     at scsibus0 target 3 lun 0              # internal (sigh - sunos)
sd2     at scsibus0 target 1 lun 0              # external slow
sd4     at scsibus0 target 2 lun 0              # external slow
sd6     at scsibus0 target 0 lun 0              # external slow (note - ID
swap with 3)
# FSBE/S Fast SCSI-2 - odd numbered drives
sd1     at scsibus1 target 0 lun 0              # external fast
sd3     at scsibus1 target 1 lun 0              # external fast
sd5     at scsibus1 target 2 lun 0              # external fast
sd7     at scsibus1 target 3 lun 0              # external fast

# These entries find devices on all SCSI busses and assign
# unit numbers dynamically.
sd*     at scsibus? target ? lun ?              # SCSI disks
st*     at scsibus? target ? lun ?              # SCSI tapes
cd*     at scsibus? target ? lun ?              # SCSI CD-ROMs
ch*     at scsibus? target ? lun ?              # SCSI changer devices

# Floppy controller and drive found on SPARCstations.
fdc0    at obio0                                # sun4m controller
fd*     at fdc0                                 # the drive itself

pseudo-device   loop            # loopback interface; required
pseudo-device   pty     128     # pseudo-ttys (for network, etc.)
pseudo-device   sl      2       # SLIP interfaces
pseudo-device   kbd             # Sun keyboard
pseudo-device   ppp     2       # PPP interfaces
pseudo-device   tun     4       # Network "tunnel" device
pseudo-device   bpfilter 16     # Berkeley Packet Filter
pseudo-device   vnd     4       # disk-like interface to files
pseudo-device   ccd     4       # concatenated and striped disks
#pseudo-device  strip   1       # radio clock
#pseudo-device  ipfilter        # ip filter