Subject: kern/5104: i386 -current 'bad dir' panic (with UVM, PMAP_NEW)
To: None <gnats-bugs@gnats.netbsd.org>
From: Giles Lean <giles@nemeton.com.au>
List: netbsd-bugs
Date: 03/03/1998 23:24:51
>Number:         5104
>Category:       kern
>Synopsis:       i386 -current 'bad dir' panic (with UVM, NEW_PMAP)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Mar  3 04:35:00 1998
>Last-Modified:
>Originator:     Giles Lean
>Organization:
Giles Lean               <giles@nemeton.com.au>             +61 3 9480 2118
Nemeton Pty. Ltd.                                       fax +61 3 9480 1771
PGP Fingerprint (DA68EE41) 9F FB 28 37 81 F2 AC F3  8A B0 37 E5 73 CF 39 E7
>Release:        Feb 18th 1998
>Environment:
	
System: NetBSD topaz.nemeton.com.au 1.3C NetBSD 1.3C (TOPAZ) #0: Wed Feb 18 21:16:34 EST 1998 giles@topaz.nemeton.com.au:/b/NetBSD/current-build/src/sys/arch/i386/compile/TOPAZ i386


>Description:
Script started on Mon Mar  2 21:30:04 1998
topaz [crash]$ gdb /b/NetBSD/current-build/src/sys/arch/i386/compile/TOPAZ/netsys/arch/i386/compile/TOPAZ/net                                               <bsd.gdb
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i386-netbsd), Copyright 1996 Free Software Foundation, Inc...
(gdb) target kcore netbsd.2.core
panic: bad dir
#0  0xf04bcf00 in ?? ()
(gdb) bt
#0  0xf04bcf00 in ?? ()
#1  0x249c000 in ?? ()
#2  0xf01b55a3 in cpu_reboot (howto=256, bootstr=0x0)
    at ../../../../arch/i386/i386/machdep.c:1288
#3  0xf0121310 in log (level=-266733835, 
    fmt=0xf121c000 "if [ -n \"$PWD\" ]\nthen\n\talias ls=\"/bin/ls -AF\"\n\talias df=\"df -k\"\n\talias h=history\n\talias j=\"jobs -l\"\n\talias ls=\"ls -gAF\"\n\talias r=\"stty $STTY\"\n\talias startx=\"exec /usr/X11R6/bin/startx -- -bpp 16 > $HO"...) at ../../../../kern/subr_prf.c:184
#4  0xf019f737 in ufs_dirbad (ip=0xf0490500, offset=0, 
    how=0xf019e998 "mangled entry") at ../../../../ufs/ufs/ufs_lookup.c:626
#5  0xf019eebd in ufs_lookup (v=0xf48cae40)
    at ../../../../ufs/ufs/ufs_lookup.c:279
#6  0xf0135cd2 in lookup (ndp=0xf48caef8) at ../../../../sys/vnode_if.h:71
#7  0xf0135806 in namei (ndp=0xf48caef8) at ../../../../kern/vfs_lookup.c:151
#8  0xf0139d0d in sys_unlink (p=0xf04ca400, v=0xf48caf88, retval=0xf48caf80)
    at ../../../../kern/vfs_syscalls.c:1133
#9  0xf01bbbc8 in syscall (frame={tf_es = 43, tf_ds = 43, tf_edi = 175, 
      tf_esi = 0, tf_ebp = -272644440, tf_ebx = -272645464, tf_edx = 13, 
      tf_ecx = -272645584, tf_eax = 10, tf_trapno = 3, tf_err = 2, 
      tf_eip = 1076191059, tf_cs = 35, tf_eflags = 12870, tf_esp = -272645496, 
      tf_ss = 43, tf_vm86_es = 0, tf_vm86_ds = 0, tf_vm86_fs = 0, 
      tf_vm86_gs = 0}) at ../../../../arch/i386/i386/trap.c:717
(gdb) quit

The config file:
#	$NetBSD: GENERIC,v 1.133 1998/01/29 01:53:03 tron Exp $
#
#	TOPAZ
#	- diskless kernel
#	- SCSI, IDE and ATAPI support
#

include "arch/i386/conf/std.i386"

maxusers	32		# estimated number of users

# CPU support.  At least one is REQUIRED.
#options 	I386_CPU
options 	I486_CPU
options 	I586_CPU
#options 	I686_CPU	

# CPU-related options.
#options 	MATH_EMULATE	# floating point emulation
#options 	VM86		# virtual 8086 emulation
#options 	USER_LDT	# user-settable LDT; used by WINE
# eliminate delay no-ops in I/O; recommended on all but very old machines
options 	DUMMY_NOPS

# Misc. i386-specific options
options 	XSERVER		# X server support in console drivers

# This option allows you to force a serial console at the specified
# I/O address.   see console(4) for details.
#options 	"CONSDEVNAME=\"com\""

# The following options override the memory sizes passed in from the boot
# block.  Use them *only* if the boot block is unable to determine the correct
# values.  Note that the BIOS may *correctly* report less than 640k of base
# memory if the extended BIOS data area is located at the top of base memory
# (as is the case on most recent systems).
#options 	REALBASEMEM=...	# size of base memory
#options 	REALEXTMEM=...	# size of extended memory

# Standard system options

options 	UCONSOLE	# users can use TIOCCONS (for xconsole)
options 	INSECURE	# disable kernel security levels

# Summer time, so that we co-exisit with Windows.  (Mutter mutter ...)
options 	RTC_OFFSET=-660	# hardware clock is this many mins. west of GMT
#options 	NTP		# NTP phase/frequency locked loop

options 	KTRACE		# system call tracing via ktrace(1)

options 	UVM		# Use UVM instead of Mach VM.
options		PMAP_NEW	# mrg special XXX

options 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
options 	SYSVSHM		# System V-like memory sharing
#options 	SHMMAXPGS=1024	# 1024 pages is the default

options 	LKM		# loadable kernel modules

# Diagnostic/debugging support options
options 	DIAGNOSTIC	# cheap kernel consistency checks
options 	DEBUG		# expensive debugging checks/support
options 	KMEMSTATS	# kernel memory statistics (vmstat -m)
#options 	DDB		# in-kernel debugger
#options 	DDB_HISTORY_SIZE=100	# enable history editing in DDB
#options 	KGDB		# remote debugger
#options 	"KGDB_DEVNAME=\"com\"",KGDBADDR=0x3f8,KGDBRATE=9600
makeoptions	DEBUG="-g"	# compile full symbol table

# Compatibility options
options 	COMPAT_NOMID	# compatibility with 386BSD, BSDI, NetBSD 0.8,
options 	COMPAT_09	# NetBSD 0.9,
options 	COMPAT_10	# NetBSD 1.0,
options 	COMPAT_11	# NetBSD 1.1,
options 	COMPAT_12	# NetBSD 1.2,
options 	COMPAT_13	# NetBSD 1.3,
options 	COMPAT_43	# and 4.3BSD

#options 	COMPAT_SVR4	# binary compatibility with SVR4
#options 	COMPAT_IBCS2	# binary compatibility with SCO and ISC
options 	COMPAT_LINUX	# binary compatibility with Linux
options 	COMPAT_FREEBSD	# binary compatibility with FreeBSD

# Executable format options
options 	EXEC_ELF32	# 32-bit ELF executables (SVR4, Linux)

# File systems
file-system 	FFS		# UFS
#file-system 	EXT2FS		# second extended file system (linux)
#file-system 	LFS		# log-structured file system
file-system 	MFS		# memory file system
file-system 	NFS		# Network File System client
file-system 	CD9660		# ISO 9660 + Rock Ridge file system
file-system 	MSDOSFS		# MS-DOS file system
file-system 	FDESC		# /dev/fd
file-system 	KERNFS		# /kern
#file-system 	NULLFS		# loopback file system
#file-system 	PORTAL		# portal filesystem (still experimental)
#file-system 	PROCFS		# /proc
#file-system 	UMAPFS		# NULLFS + uid and gid remapping
#file-system 	UNION		# union file system

# File system options
#options 	QUOTA		# UFS quotas
options 	NFSSERVER	# Network File System server
options 	FIFO		# FIFOs; RECOMMENDED
#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
				# immutable) behave as system flags.

# Networking options
options 	GATEWAY		# packet forwarding
options 	INET		# IP + ICMP + TCP + UDP
#options 	MROUTING	# IP multicast routing
#options 	NS		# XNS
#options 	NSIP		# XNS tunneling over IP
#options 	ISO,TPIP	# OSI
#options 	EON		# OSI tunneling over IP
#options 	CCITT,LLC,HDLC	# X.25
#options 	NETATALK	# AppleTalk networking protocols
#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
#options 	PPP_DEFLATE	# Deflate compression support for PPP
#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
#options 	PFIL_HOOKS	# pfil(9) packet filter hooks
#options 	IPFILTER_LOG	# ipmon(8) log support

# Compatibility with 4.2BSD implementation of TCP/IP.  Not recommended.
#options 	TCP_COMPAT_42

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
#options 	EISAVERBOSE	# verbose EISA device autoconfig messages
#options 	PCIVERBOSE	# verbose PCI device autoconfig messages
#options 	PCMCIAVERBOSE	# verbose PCMCIA configuration messages
#options 	SCSIVERBOSE	# human readable SCSI error messages

options 	NFS_BOOT_BOOTP,NFS_BOOT_BOOTPARAM

# Kernel root file system and dump configuration.
#config		netbsd	root on ? type ?
#config		netbsd	root on sd0a type ffs
#config		netbsd	root on ? type nfs
config		netbsd	root on ? type nfs dumps on wd1b

#
# Device configuration
#

mainbus0 at root

#apm0	at mainbus0			# Advanced power management


# Basic Bus Support

# PCI bus support
pci*	at mainbus? bus ?
pci*	at pchb? bus ?
pci*	at ppb? bus ?

# PCI bridges
pchb*	at pci? dev ? function ?	# PCI-Host bridges
pcib*	at pci? dev ? function ?	# PCI-ISA bridges
ppb*	at pci? dev ? function ?	# PCI-PCI bridges

# EISA bus support
#eisa*	at mainbus?

# ISA bus support
isa*	at mainbus?
isa*	at pcib?

# PCMCIA bus support
#pcmcia*	at pcic? controller ? socket ?

# ISA PCMCIA controllers
#pcic0	at isa? port 0x3e0 iomem 0xd0000 iosiz 0x4000
#pcic1	at isa? port 0x3e2 iomem 0xd4000 iosiz 0x4000

# ISA Plug-and-Play bus support
isapnp0	at isa?


# Coprocessor Support

# Math Coprocessor support
npx0	at isa? port 0xf0 irq 13	# x86 math coprocessor


# Console Devices

# ISA console.  You can only configure one of these!
pc0	at isa? port 0x60 irq 1		# pccons generic PC console driver
#vt0	at isa? port 0x60 irq 1		# PCVT console driver


# Serial Devices

# PCI serial interfaces
#cy*	at pci? dev ? function ?	# Cyclades Cyclom-Y serial boards

# ISA Plug-and-Play serial interfaces
#com*	at isapnp?			# Modems and serial boards

# PCMCIA serial interfaces
#com*	at pcmcia? function ?		# Modems and serial cards

# ISA serial interfaces
#options 	COM_HAYESP		# adds Hayes ESP serial board support
com0	at isa? port 0x3f8 irq 4	# Standard PC serial ports
com1	at isa? port 0x2f8 irq 3
#com2	at isa? port 0x3e8 irq 5
#com3	at isa? port 0x2e8 irq 9
#ast0	at isa? port 0x1a0 irq 5	# AST 4-port serial cards
#com*	at ast? slave ?
#boca0	at isa? port 0x100 irq 5	# BOCA 8-port serial cards
#com*	at boca? slave ?
#rtfps0	at isa? port 0x1230 irq 10	# RT 4-port serial cards
#com*	at rtfps? slave ?
#cy0	at isa? iomem 0xd4000 irq 12	# Cyclades serial cards


# Parallel Printer Interfaces

# ISA parallel printer interfaces
lpt0	at isa? port 0x378 irq 7	# standard PC parallel ports
lpt1	at isa? port 0x278
lpt2	at isa? port 0x3bc


# SCSI Controllers and Devices

# PCI SCSI controllers
#ahc*	at pci? dev ? function ?	# Adaptec [23]94x, aic78x0 SCSI
#bha*	at pci? dev ? function ?	# BusLogic 9xx SCSI
#isp*	at pci? dev ? function ?	# Qlogic ISP [12]0x0 SCSI/FibreChannel
ncr*	at pci? dev ? function ?	# NCR 53c8xx SCSI

# EISA SCSI controllers
#ahb*	at eisa? slot ?			# Adaptec 174[02] SCSI
#ahc*	at eisa? slot ?			# Adaptec 274x, aic7770 SCSI
#bha*	at eisa? slot ?			# BusLogic 7xx SCSI
#uha*	at eisa? slot ?			# UltraStor 24f SCSI

# PCMCIA SCSI controllers
#aic*	at pcmcia? function ?		# Adaptec APA-1460 SCSI

# ISA SCSI controllers
#aha0	at isa? port 0x330 irq ? drq ?	# Adaptec 154[02] SCSI
#aha1	at isa? port 0x334 irq ? drq ?
#ahc0	at isa? port ? irq ?		# Adaptec 284x SCSI
#aic0	at isa? port 0x340 irq 11	# Adaptec 152[02] SCSI
bha0	at isa? port 0x330 irq ? drq ?	# BusLogic [457]4X SCSI
#bha1	at isa? port 0x334 irq ? drq ?
#sea0	at isa? iomem 0xc8000 irq 5	# Seagate/Future Domain SCSI
#uha0	at isa? port 0x330 irq ? drq ?	# UltraStor [13]4f SCSI
#uha1	at isa? port 0x340 irq ? drq ?
#wds0	at isa? port 0x350 irq 15 drq 6	# WD7000 and TMC-7000 controllers
#wds1	at isa? port 0x358 irq 11 drq 5

# SCSI bus support
#scsibus* at aha?
#scsibus* at ahb?
#scsibus* at ahc?
#scsibus* at aic?
scsibus* at bha?
#scsibus* at isp?
scsibus* at ncr?
#scsibus* at sea?
#scsibus* at uha?
#scsibus* at wds?

# SCSI devices
sd*	at scsibus? target ? lun ?	# SCSI disk drives
st*	at scsibus? target ? lun ?	# SCSI tape drives
cd*	at scsibus? target ? lun ?	# SCSI CD-ROM drives
#ch*	at scsibus? target ? lun ?	# SCSI autochangers
#ss*	at scsibus? target ? lun ?	# SCSI scanners
#uk*	at scsibus? target ? lun ?	# SCSI unknown


# IDE and Related Devices

# ISA Plug-and-Play IDE controllers
#wdc*	at isapnp?

# PCMCIA IDE controllers
#wdc*	at pcmcia? function ?

# ISA IDE controllers
wdc0	at isa? port 0x1f0 irq 14	# ST506, ESDI, and IDE controllers
wdc1	at isa? port 0x170 irq 15

# IDE drives
wd*	at wdc? drive ?			# the drives themselves

# ATAPI bus support
atapibus* at wdc?

# ATAPI devices
cd*	at atapibus? drive ?		# ATAPI CD-ROM drives
#sd*	at atapibus? drive ?		# ATAPI disk drives


# Miscellaneous mass storage devices

# ISA floppy
fdc0	at isa? port 0x3f0 irq 6 drq 2	# standard PC floppy controllers
#fdc1	at isa? port 0x370 irq ? drq ?
fd*	at fdc? drive ?			# the drives themselves
# some machines need you to do this instead of fd*
#fd0	at fdc0 drive 0

# ISA CD-ROM devices
#mcd0	at isa? port 0x300 irq 10	# Mitsumi CD-ROM drives

# ISA tape devices
# note: the wt driver conflicts unpleasantly with ed devices at the
# same I/O address. The probe reprograms their EEPROMs. Don't
# uncomment it unless you are actually using it.
#wt0	at isa? port 0x308 irq 5 drq 1	# Archive and Wangtek QIC tape drives


# Network Interfaces

# PCI network interfaces
#de*	at pci? dev ? function ?	# DEC 21x4x-based Ethernet
#en*	at pci? dev ? function ?	# ENI/Adaptec ATM
#ep*	at pci? dev ? function ?	# 3Com 3c59x/3c90x Ethernet
#fpa*	at pci? dev ? function ?	# DEC DEFPA FDDI
#fxp*	at pci? dev ? function ?	# Intel EtherExpress PRO 10+/100B
#le*	at pci? dev ? function ?	# PCnet-PCI Ethernet
#ne*	at pci? dev ? function ?	# NE2000-compatible Ethernet
#tl*	at pci? dev ? function ?	# ThunderLAN-based Ethernet

# EISA network interfaces
#ep*	at eisa? slot ?			# 3Com 3c579 Ethernet
#fea*	at eisa? slot ?			# DEC DEFEA FDDI

# ISA Plug-and-Play network interfaces
#ep*	at isapnp?			# 3Com 3c509 Ethernet
#ne*	at isapnp?			# NE2000-compatible Ethernet

# PCMCIA network interfaces
#ep*	at pcmcia? function ?		# 3Com 3c589 and 3c562 Ethernet
#ne*	at pcmcia? function ?		# NE2000-compatible Ethernet
#sm*	at pcmcia? function ?		# Megahertz Ethernet

# ISA network interfaces
#ec0	at isa? port 0x250 iomem 0xd8000 irq 9	# 3Com 3c503 Ethernet
#eg0	at isa? port 0x280 irq 9		# 3C505 ethernet cards
#el0	at isa? port 0x300 irq 9		# 3C501 ethernet cards
#ep0	at isa? port ? irq ?			# 3C509 ethernet cards
#fe0	at isa? port 0x2a0 irq ?		# AT1700
#ie0	at isa? port 0x360 iomem 0xd0000 irq 7	# StarLAN and 3C507
#ie1	at isa? port 0x300 irq 10		# EtherExpress
#iy0	at isa? port 0x360 irq ?		# EtherExpress PRO 10 ISA
#lc0	at isa? port 0x320 iomem ? irq ?	# DEC EtherWORKS III (LEMAC)
#le0	at isa? port 0x320 irq 10 drq 7		# IsoLan, NE2100, and DEPCA
#ne0	at isa? port 0x280 irq 9		# NE[12]000 ethernet cards
#ne1	at isa? port 0x300 irq 10
#sm0	at isa? port 0x300 irq 10		# SMC91C9x Ethernet
#we0	at isa? port 0x280 iomem 0xd0000 irq 9	# WD/SMC Ethernet
we1	at isa? port 0x300 iomem 0xcc000 irq 10

# MII bus support
#mii*	at tl?

# MII PHY network interfaces
#tlphy*	at mii? dev ?			# ThunderLAN PHYs
#nsphy*	at mii? dev ?			# NS and compatible PHYs


# Audio Devices

# ISA Plug-and-Play audio devices
#guspnp*	at isapnp?			# Gravis Ultra Sound PnP audio
sb*	at isapnp?			# SoundBlaster-compatible audio

# ISA audio devices
#gus0	at isa? port 0x220 irq 7 drq 1 drq2 6	# Gravis Ultra Sound
#pas0	at isa? port 0x220 irq 7 drq 1		# ProAudio Spectrum
#pss0	at isa? port 0x220 irq 7 drq 6  	# Personal Sound System
#sp0	at pss0 port 0x530 irq 10 drq 0		# 	sound port driver
#sb0	at isa? port 0x220 irq 7 drq 1 drq2 5	# SoundBlaster
#wss0	at isa? port 0x530 irq 10 drq 0	drq2 1	# Windows Sound System

# Audio support
#audio*	at gus?
#audio*	at guspnp?
#audio*	at pas?
audio*	at sb?
#audio*	at sp?
#audio*	at wss?

# The spkr driver provides a simple tone interface to the built in speaker.
#spkr0	at pckbd? port 0x61		# PC speaker


# Mice

# ISA busmice
#lms0	at isa? port 0x23c irq 5	# Logitech bus mouse
#lms1	at isa? port 0x238 irq 5
#mms0	at isa? port 0x23c irq 5	# Microsoft InPort mouse
#mms1	at isa? port 0x238 irq 5
#pms0	at pckbd? irq 12		# PS/2 auxiliary port mouse


# Joysticks

# ISA Plug-and-Play joysticks
joy*	at isapnp?			# Game ports (usually on audio cards)

# ISA joysticks. Probe is a little strange; add only if you have one.
#joy0	at isa? port 0x201


# Miscellaneous Devices

# Planetconnect Satellite receiver driver.
#satlink0 at isa? port 0x300 drq 1


# Pull in optional local configuration
include	"arch/i386/conf/GENERIC.local"


# Pseudo-Devices

# disk/mass storage pseudo-devices
#pseudo-device	ccd		4	# concatenated/striped disk devices
#pseudo-device	md		1	# memory disk device (ramdisk)
pseudo-device	vnd		4	# disk-like interface to files

# network pseudo-devices
pseudo-device	bpfilter	8	# Berkeley packet filter
pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	ppp		2	# Point-to-Point Protocol
#pseudo-device	sl		2	# Serial Line IP
#pseudo-device	strip		2	# Starmode Radio IP (Metricom)
#pseudo-device	tun		2	# network tunneling over tty

# miscellaneous pseudo-devices
pseudo-device	pty		64	# pseudo-terminals
#pseudo-device	tb		1	# tablet line discipline

# rnd is EXPERIMENTAL at this point.
#pseudo-device	rnd			# /dev/random and in-kernel generator
#options 	RND_COM			# use "com" randomness as well (BROKEN)
topaz [crash]$ exit
Script done on Mon Mar  2 21:31:46 1998
>How-To-Repeat:
	The machine this panic occurs on is a P100 running diskless,
	booting from floppy but with a local slow disk used for dumps.

	The machine has 64Mb of memory and was stable with 1.1.

	A curiosity with this panic is that it involves ufs_*
	routines.  No UFS partition was or had been mounted.

	The problem typically occurs when under memory pressure;
	the system will stay up for a day or so running X11, emacs
	and Netscape.  When I push the memory usage (more Netscape
	windows, java, and so on) it will panic.

	The NFS server is a i386 running NetBSD-1.3.
>Fix:
>Audit-Trail:
>Unformatted: