Subject: sync causes panic loop on sparcstation 5
To: Ben Harris <bjh21@netbsd.org>
From: Greywolf <greywolf@starwolf.com>
List: tech-kern
Date: 07/25/2002 07:57:23
Greetings, all,
I had the rare problem yesterday that my sparcstation wound to a
grinding halt -- almost.
The console getty was not responding, and I'm not sure why.
But I digress.
The real killer was that I dropped into the debugger ("db>"), typed
'sync' and it gleefully threw me a 'panic: kernel data fault', tried
to dump to disk and threw me another one. This repeated about twelve
times before I finally convinced it to stop (via the power switch).
"Gee, it's never done *that* before."
Enclosed is my kernel config, if that helps.
NetBSD lothlorien.starwolf.com 1.6D NetBSD 1.6D (LOTHLORIEN) #8: Mon Jul 15 \
13:48:55 PDT 2002
--- begin conf/LOTHLORIEN
# LOTHLORIEN: SPARCstation 5/170, 192MB, CD-RW, 9G/4G/2G/2G
include "arch/sparc/conf/std.sparc"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
maxusers 32
## System kernel configuration. See options(4) for more detail.
# Options for variants of the Sun SPARC architecure.
# We currently support three architecture types; at least one is required.
options SUN4M # sun4m - SS10, SS20, Classic, etc.
## System options specific to the sparc machine type
# Blink the power LED on some machines to indicate the system load.
options BLINK
## Use a faster console than the PROM's slow drawing routines. Not needed
## for headless (no framebuffer) machines.
#options RASTERCONSOLE # fast rasterop console
#options FONT_GALLANT12x22 # the console font
#options FONT_BOLD8x16 # a somewhat smaller font
## default console colors: black-on-white; this can be changed
## using the following two options.
#options RASTERCONSOLE_FGCOL=WSCOL_BLACK
#options RASTERCONSOLE_BGCOL=WSCOL_WHITE
#### System options that are the same for all ports
## Root device configuration: change the ?'s if you are going to use a
## nonstandard root partition (other than where the kernel is booted from)
## and/or nonstandard root type (not ffs or nfs). Normally this can be
## automagically determined at boot time.
config netbsd root on ? type ?
## System call tracing (see ktrace(1)).
options KTRACE
## Collect statistics on kernel malloc's and free's. This does have a
## significant performance hit on slower machines, so it is intended for
## diagnostic use only.
#options KMEMSTATS
## System V compatible IPC subsystem. (msgctl(2), semctl(2), and shmctl(2))
options SYSVMSG # System V message queues
options SYSVSEM # System V semaphores
#options SEMMNI=10 # number of semaphore identifiers
#options SEMMNS=60 # number of semaphores in system
#options SEMUME=10 # max number of undo entries per process
#options SEMMNU=30 # number of undo structures in system
options SYSVSHM # System V shared memory
#options SHMMAXPGS=1024 # 1024 pages is the default
## Loadable kernel module support; still under development.
#options LKM
#options USERCONF # userconf(4) support
#options PIPE_SOCKETPAIR # smaller, but slower pipe(2)
## NFS boot options; tries DHCP/BOOTP then BOOTPARAM
options NFS_BOOT_BOOTPARAM
#options NFS_BOOT_BOOTP
options NFS_BOOT_DHCP
#### Debugging options
## The DDB in-kernel debugger runs at panic (unless DDB_ONPANIC=0), or at
## serial console break or keyboard reset, where the PROM would normally
## intercept. DDB_HISTORY_SIZE adds up/down arrow command history.
options DDB # kernel dynamic debugger
#options DDB_HISTORY_SIZE=100 # enable history editing in DDB
options DDB_ONPANIC=0 # see also sysctl(8): `ddb.onpanic'
## You may also use gdb, on another computer connected to this machine over
## a serial port. Both KGDB_DEV and KGDB_DEVRATE should be specified;
## KGDB_DEV is a dev_t encoded device number of the serial port to use, where
## the minor device number encodes the PROM enumeration of the serial ports,
## i.e.:
## 0xc00 = ttya, 0xc01 = ttyb, 0xc02 = ttyc, 0xc03 = ttyd.
## (Note: ttyc and ttyd are available only on some sun4 models)
#options KGDB # support for kernel gdb
#options KGDB_DEV=0xc01 # kgdb device number (this is `ttyb')
#options KGDB_DEVRATE=38400 # baud rate
## Compile the kernel with debugging symbols (`netbsd.gdb' is the debug file),
## such that gdb(1) can be used on a kernel coredump.
#makeoptions DEBUG="-g"
## Adds code to the kernel that does internal consistency checks, and will
## cause the kernel to panic if corruption of internal data structures
## is detected.
#options DIAGNOSTIC # extra kernel sanity checking
## Enable (possibly expensive) debugging code that may also display messages
## on the system console
#options DEBUG
## Make SCSI error messages more verbose when explaining their meanings.
options SCSIVERBOSE
options MIIVERBOSE # verbose PHY autoconfig messages
## `INSECURE' turns off the kernel security level (securelevel = 0 always).
## This allows writing to /dev/mem, loading kernel modules while multi-user,
## and other insecurities good only for development work. Do not use this
## option on a production machine.
#options INSECURE
## Allow non-root users to grab /dev/console with programs such as xconsole.
## `xconsole' therefore does not need setuid root with this option enabled.
#options UCONSOLE
## `FDSCRIPTS' allows non-readable but executable scripts by providing a
## pre-opened opaque file to the script interpreter. `SETUIDSCRIPTS',
## which implies FDSCRIPTS, allows scripts to be set-user-id using the same
## opaque file mechanism. Perl calls this "secure setuid scripts."
options FDSCRIPTS
options SETUIDSCRIPTS
## Options for compatibility with previous releases foreign system binaries.
## In the cases of COMPAT_SUNOS and COMPAT_SVR4, you may need to set up
## additional user-level utilities or system configuration files. See
## compat_sunos(8) and compat_svr4(8).
#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_13 # NetBSD 1.3 binary compatibility
options COMPAT_14 # NetBSD 1.4 binary compatibility
options COMPAT_SUNOS # SunOS 4.x binary compatibility
options COMPAT_SVR4 # SunOS 5.x binary compatibility
## File systems. You probably need at least one of FFS or NFS.
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 OVERLAY # overlay file system
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).
#file-system CODA # Coda File System; also needs vcoda (below)
## File system options.
options NFSSERVER # Sun NFS-compatible filesystem server
options QUOTA # FFS quotas
#options FFS_EI # FFS Endian Independent support
options SOFTDEP # FFS soft updates support.
## Network protocol support. In most environments, INET is required.
options INET # IP (Internet Protocol) v4
#options INET6 # IPV6
#options IPSEC # IP security
#options IPSEC_ESP # IP security (encryption part; define w/IPSEC)
#options IPSEC_DEBUG # debug for IP security
options GATEWAY # packet forwarding ("router switch")
options MROUTING # packet forwarding of multicast packets
#options DIRECTED_BROADCAST # allow broadcasts through routers
#options NS # Xerox NS networking
#options NSIP # Xerox NS tunneling over IP
#options ISO,TPIP # OSI networking
#options EON # OSI tunneling over IP
#options CCITT,LLC,HDLC # X.25 packet switched protocol
options NETATALK # AppleTalk (over Ethernet) protocol
options NTP # Network Time Protocol in-kernel support
#options PPS_SYNC # Add serial line synchronization for NTP
options PFIL_HOOKS # Add pfil(9) hooks, intended for custom LKMs.
options IPFILTER_LOG # Add ipmon(8) logging for ipfilter device
#options PPP_BSDCOMP # Add BSD compression to ppp device
#options PPP_DEFLATE # Add deflate (libz) compression to ppp device
#options PPP_FILTER # Add active filters for ppp (via bpf)
#### 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
## SBus to PCMCIA bridge
# Currently enabling nell* with audioamd* causes panic at attach
#nell* at sbus? slot ? offset ? # PCMCIA bridge
#pcmcia* at nell?
#### Standard system devices -- all required for a given architecture
## Auxiliary system registers on sun4c and sun4m
auxreg0 at obio0 # sun4m
## Power status and control register 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
## ECC memory control
eccmemctl0 at mainbus0 # sun4m
## Timer chip found on 4/300, sun4c, and sun4m systems.
timer0 at obio0 # sun4m
#### Serial port configuration
## Zilog 8530 serial chips. Each has two-channels.
## zs0 is ttya and ttyb. zs1 is the keyboard and mouse.
zs0 at obio0 # sun4m
zstty0 at zs0 channel 0 # ttya
zstty1 at zs0 channel 1 # ttyb
zs1 at obio0 # sun4m
kbd0 at zs1 channel 0 # keyboard
ms0 at zs1 channel 1 # mouse
## NS16x50 serial chips and clones. Present on the
## Sun JavaStation-1 and Tadpole SPARCbook 3
com* at obio0 # sun4m
# Parallel port.
bpp* at sbus? slot? offset ?
## PCMCIA serial interfaces
#com* at pcmcia?
#pcmcom* at pcmcia?
#com* at pcmcom?
#### Disk controllers and disks
#
## The following flags may be set for the NCR53c94 based esp driver:
## bits 0-7: disable disconnect/reselect for the corresponding target
## bits 8-15: disable synchronous negotiation for target [bit-8]
dma0 at sbus0 slot ? offset ? # sun4c/sun4m
esp0 at dma0 flags 0x0000 # sun4m
# FSBE/S SCSI
dma* at sbus? slot ? offset ? # SBus
esp* at sbus? slot ? offset ? flags 0x0000 # SBus (older proms)
esp* at dma? flags 0x0000 # SBus
scsibus0 at esp?
scsibus1 at esp?
## Qlogic ISP SBus SCSI Card
isp* at sbus? slot ? offset ?
scsibus* at isp?
## These entries find devices on all SCSI busses and assign
## unit numbers dynamically.
sd0 at scsibus0 target 0 lun 0
sd1 at scsibus0 target 1 lun 0
sd2 at scsibus0 target 2 lun 0
sd3 at scsibus0 target 3 lun 0
sd4 at scsibus0 target 4 lun 0
sd5 at scsibus0 target 5 lun 0
sd* at scsibus? target ? lun ? # SCSI disks
st0 at scsibus0 target 4 lun 0
st1 at scsibus0 target 5 lun 0
st* at scsibus? target ? lun ? # SCSI tapes
cd0 at scsibus0 target 6 lun 0
cd1 at scsibus0 target 5 lun 0
cd* at scsibus? target ? lun ? # SCSI CD-ROMs
ch* at scsibus? target ? lun ? # SCSI changer devices
ss* at scsibus? target ? lun ? # SCSI scanners
ses* at scsibus? target ? lun ? # SCSI SES/SAF-TE
uk* at scsibus? target ? lun ? # unknown SCSI
## Floppy controller and drive found on SPARCstations.
fdc0 at obio0 # sun4m controller
fd* at fdc0 # the drive itself
## A disk-like interface to files. Can be used to create floppy, CD,
## miniroot images, etc.
pseudo-device vnd 4
## Concatenated and striped disks; with this, you can create a software-based
## disk array similar to a "RAID 0" setup. See ccd(4).
pseudo-device ccd 4
## RAIDframe disk driver: software RAID driver. See raid(4).
pseudo-device raid 8
options RAID_AUTOCONFIG # auto-configuration of RAID components
# Options to enable various other RAIDframe RAID types.
#options RF_INCLUDE_EVENODD=1
#options RF_INCLUDE_RAID5_RS=1
#options RF_INCLUDE_PARITYLOGGING=1
#options RF_INCLUDE_CHAINDECLUSTER=1
#options RF_INCLUDE_INTERDECLUSTER=1
#options RF_INCLUDE_PARITY_DECLUSTERING=1
#options RF_INCLUDE_PARITY_DECLUSTERING_DS=1
## Memory disk device, used on boot floppies with compressed
## kernel-plus-root-disk images.
#pseudo-device md 1
#### Network interfaces
## LANCE Ethernet - an AMD 7990 LANCE behind specialized DMA glue
## Three flavors of additional SBus ethernets are available. One attaches
## directly like the sun4c on-board, one uses the ledma device like the
## sun4m on-board, and one uses the lebuffer device.
ledma0 at sbus0 slot ? offset ? # sun4m on-board
le0 at ledma0 # sun4m on-board
le* at sbus? slot ? offset ? # SBus
ledma* at sbus? slot ? offset ? # SBus
le* at ledma? # SBus
lebuffer0 at sbus? slot ? offset ? # SBus
le0 at lebuffer? # SBus
lebuffer* at sbus? slot ? offset ? # SBus
le* at lebuffer? # SBus
## Happy Meal Ethernet
hme* at sbus? slot ? offset ?
# MII/PHY support
exphy* at mii? phy ? # 3Com internal PHYs
icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x
inphy* at mii? phy ? # Intel 82555 PHYs
lxtphy* at mii? phy ? # Level One LXT-970 PHYs
nsphy* at mii? phy ? # NS83840 PHYs
qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs
sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs
tlphy* at mii? phy ? # ThunderLAN PHYs
ukphy* at mii? phy ? # generic unknown PHYs
## Loopback network interface; required
pseudo-device loop
## SLIP and CSLIP interfaces, for IP over a serial line.
pseudo-device sl 2
## PPP, the successor to SLIP. See pppd(8).
#pseudo-device ppp 2
## PPP over Ethernet (RFC 2516)
#pseudo-device pppoe
## Starmode Radio IP, a special hardware network device.
#pseudo-device strip 1
## Network "tunnel" device, allowing protocol stacks to run in the userland.
## This is used by the third-party user-mode "ppp" program, and others.
pseudo-device tun 4
## Generic L3 over IP tunnel
#pseudo-device gre 2 # generic L3 over IP tunnel
## Berkeley Packet Filter, required to run RARPD. A generic C-language
## interface that allows selective examining of incoming packets.
pseudo-device bpfilter 8
## IP Filter, used in firewall and NAT applications. See ipnat(8) for
## one example of the use of the IP Filter.
pseudo-device ipfilter
## for IPv6
pseudo-device gif 4 # IPv[46] over IPv[46] tunnel (RFC1933)
#pseudo-device faith 1 # IPv[46] tcp relay translation i/f
#pseudo-device stf 1 # 6to4 IPv6 over IPv4 encapsulation
## IEEE 802.1Q Virtual LAN encapsulation, see vlan(4).
pseudo-device vlan
## Simple inter-network traffic bridging
pseudo-device bridge
#### Audio and video devices
## /dev/audio support (`audioamd' plus `audio')
##
audioamd0 at sbus0 slot ? offset ? # sun4m
audio* at audioamd0
audiocs0 at sbus0 slot ? offset ? # SUNW,CS4231
audio* at audiocs0
## 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".
bwtwo0 at sbus0 slot ? offset ? # sun4c and sun4m
bwtwo* at sbus? slot ? offset ? #
## Sun "cgthree" Sbus color framebuffer
cgthree0 at sbus? slot ? offset ?
cgthree* at sbus? slot ? offset ?
#cgthree0 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
## Pseudo ttys, required for network logins and programs like screen.
pseudo-device pty # pseudo-terminals
## Random device, used to implement /dev/random (a source of random noise),
## and generate randomness for some kernel formulae.
pseudo-device rnd
# a pseudo device needed for Coda # also needs CODA (above)
#pseudo-device vcoda 4 # coda minicache <-> venus comm.
pseudo-device clockctl # user control of clock subsystem
----- end conf/LOTHLORIEN
--*greywolf;
--
NetBSD: it'll be there when you're ready for it.