Subject: Re: -current MP kernel hangs
To: #List NetBSD current users <current-users@NetBSD.ORG>
From: Paul Goyette <>
List: current-users
Date: 04/29/2002 15:59:14
Well, just to give a little more info on this...

At least one other person indicated that they were having no problems
with the GENERIC.MP kernel.  Mine happens to be a custom kernel, with
only real stuff in the config file, and everything nailed down.  The
actual kernel config is at the end of this mail...

Anyway, I suspect that something is broken WRT interaction with the
machine's BIOS.  This is on a ASUS CUV4X-D "Dual Socket-370 Motherboard"
with "Apollo Pro133A Chipset" (according to the accompanying User's
Manual!).  What leads me to believe that this is BIOS-related is that,
every boot that follows a hang, the BIOS drops me into a menu asking me
to select my boot device.  Normally, it just "does the right thing" by
booting my IDE drive, but once the machine has hung, I have to answer
this menu!

When it hangs, there's absolutely nothing on the console, and there's
absolutely no response to anything.  If I have top(1) running, the
display (including the clock) freezes totally.  No keyboard interrupts
seem to get through, and the network seems to be dead, too (no response
to ping).

I'm stumped.  For now, I've gone back to my 1.5ZA kernel, which is
running just fine (even with the 1.5ZC userland!).

Anyone got a clue-by-four with which you can whack me upside the head?


The config:

include 	"arch/i386/conf/std.i386"
options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
options 	COM_MPLOCK
options 	MPVERBOSE
options 	MPDEBUG
maxusers	32		# estimated number of users
options 	I686_CPU
options 	USER_LDT	# user-settable LDT; used by WINE
options 	DUMMY_NOPS
options 	MTRR		# memory-type range register syscall support
options 	UCONSOLE	# users can use TIOCCONS (for xconsole)
options 	INSECURE	# disable kernel security levels
options 	RTC_OFFSET=480	# 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 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
options 	SYSVSHM		# System V-like memory sharing
options 	DIAGNOSTIC	# expensive kernel consistency checks
options 	DDB		# in-kernel debugger
options 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
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
file-system 	FFS		# UFS
file-system 	MFS		# memory file system
file-system 	NFS		# Network File System client
file-system 	FDESC		# /dev/fd
file-system 	KERNFS		# /kern
file-system 	PROCFS		# /proc
file-system 	UNION		# union file system
options 	QUOTA		# UFS quotas
options 	SOFTDEP		# FFS soft updates support.
options 	NFSSERVER	# Network File System server
				# immutable) behave as system flags.
options 	INET		# IP + ICMP + TCP + UDP
options 	PFIL_HOOKS	# pfil(9) packet filter hooks
options 	IPFILTER_LOG	# ipmon(8) log support
options 	EISAVERBOSE	# verbose EISA device autoconfig messages
options 	MIIVERBOSE	# verbose PHY autoconfig messages
options 	PCIVERBOSE	# verbose PCI device autoconfig messages
options 	SCSIVERBOSE	# human readable SCSI error messages
options 	USBVERBOSE	# verbose USB device autoconfig messages
options 	I2OVERBOSE	# verbose I2O driver messages
options 	MCAVERBOSE	# verbose MCA device autoconfig messages
options 	WSEMUL_VT100		# VT100 / VT220 emulation
options 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
options 	WSDISPLAY_COMPAT_SYSCONS	# emulate some ioctls
options 	WSDISPLAY_COMPAT_USL		# VT handling
options 	WSDISPLAY_COMPAT_RAWKBD		# can get raw scancodes
config		netbsd	root on ? type ffs
mainbus0 at root
cpu0	at mainbus0 apid 3
cpu1	at mainbus0 apid 0
ioapic0	at mainbus0 apid 2
apm0	at mainbus0			# Advanced power management
options 	APM_NO_IDLE		# Don't call BIOS CPU idle function
pci0	at mainbus0 bus 0
pci1	at ppb0 bus 1
pchb0	at pci0 dev 0 function 0
ppb0	at pci0 dev 1 function 0
pcib0	at pci0 dev 4 function 0
pchb1	at pci0 dev 4 function 4
agp0	at pchb0
isa0	at pcib0
npx0	at isa0 port 0xf0 irq 13
vga0		at pci1 dev 0 function 0
wsdisplay0	at vga0 console ?
pckbc0		at isa0 port ? irq ?
pckbd0		at pckbc0
pms0		at pckbc0
wskbd0		at pckbd0 console ? mux 1
wsmouse0	at pms0 mux 0
pcppi0		at isa0
sysbeep0	at pcppi0
com0	at isa0 port 0x3f8 irq 4
com1	at isa0 port 0x2f8 irq 3
lm0	at isa?	port 0x290		# other common ports: 0x280, 0x310
pciide0	at pci0 dev 4 function 1
wd0	at pciide0 channel 0 drive 0
fdc0	at isa0 port 0x3f0 irq 6 drq 2
fd0	at fdc0 drive 0
fxp0	at pci0 dev 12 function 0
urlphy* at mii? phy ?			# Realtek RTL8150L internal PHYs
inphy0	at fxp0 phy 1
include	"arch/i386/conf/GENERIC.local"
pseudo-device	md		1	# memory disk device (ramdisk)
pseudo-device	vnd		4	# disk-like interface to files
pseudo-device	bpfilter	8	# Berkeley packet filter
pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	pty			# pseudo-terminals
pseudo-device	rnd			# /dev/random and in-kernel generator
pseudo-device	wsmux			# mouse & keyboard multiplexor
pseudo-device	wsfont
pseudo-device   clockctl                # so we can run ntpd in chroot jail

And here's the dmesg from the latest boot:

NetBSD 1.5ZC (PC45) #2: Mon Apr 29 08:11:15 PDT 2002
total memory = 511 MB
avail memory = 472 MB
using 6144 buffers containing 26296 KB of memory
BIOS32 rev. 0 found at 0xf0b20
mainbus0 (root)
mainbus0: scanning 0x9fc00 to 0x9fff0 for MP signature
mainbus0: scanning 0xf0000 to 0xffff0 for MP signature
mainbus0: MP floating pointer found in bios at 0xf54d0
mainbus0: MP config table at 0xf50c4, 268 bytes long
mainbus0: Intel MP Specification (Version 1.4) (OEM00000 PROD00000000)
cpu0 at mainbus0: apid 3 (boot processor)
cpu0: Intel Pentium III (Coppermine) Pentium III (686-class), 1004.58 MHz
cpu0: features 383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features 383fbff<PGE,MCA,CMOV,FGPAT,PSE36,MMX>
cpu0: features 383fbff<FXSR,SSE>
cpu0: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 4-way
cpu0: L2 cache 256 KB 32b/line 8-way
cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu0: calibrating local timer
cpu0: apic clock running at 133 MHz
cpu0: 8 page colors
cpu0: kstack at 0xe26ce000 for 8192 bytes
cpu0: idle pcb at 0xe26ce000, idle sp at 0xe26cff98
cpu1 at mainbus0: apid 0 (application processor)
cpu1: starting
cpu1: Intel Pentium III (Coppermine) Pentium III (686-class), 1004.52 MHz
cpu1: features 383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu1: features 383fbff<PGE,MCA,CMOV,FGPAT,PSE36,MMX>
cpu1: features 383fbff<FXSR,SSE>
cpu1: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 4-way
cpu1: L2 cache 256 KB 32b/line 8-way
cpu1: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu1: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu1: kstack at 0xe26e0000 for 8192 bytes
cpu1: idle pcb at 0xe26e0000, idle sp at 0xe26e1f98
mpbios: bus 0 is type PCI
mpbios: bus 1 is type PCI
mpbios: bus 2 is type ISA
ioapic0 at mainbus0 apid 2 (I/O APIC)
ioapic0: pa 0xfec00000, virtual wire mode, version 11, 24 pins
ioapic0: int0 attached to ExtINT (type 3<type=3=ExtINT> flags 0<pol=0,trig=0>)
ioapic0: int1 attached to isa0 irq 1 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int2 attached to isa0 irq 0 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int3 attached to isa0 irq 3 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int4 attached to isa0 irq 4 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int5 attached to isa0 irq 5 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int6 attached to isa0 irq 6 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int7 attached to isa0 irq 7 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int8 attached to isa0 irq 8 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int9 attached to isa0 irq 9 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int12 attached to isa0 irq 12 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int14 attached to isa0 irq 14 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int15 attached to isa0 irq 15 (type 0<type=0> flags 0<pol=0,trig=0>)
ioapic0: int16 attached to pci1 device 0 INT_A (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
ioapic0: conflicting map entries for pin 0
ioapic0: int0 attached to isa0 irq 0 (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
ioapic0: int18 attached to pci0 device 4 INT_D (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
ioapic0: int16 attached to pci0 device 12 INT_A (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
local apic: int0 attached to ExtINT (type 3<type=3=ExtINT> flags 5<pol=1=Act Hi,trig=1=Edge>)
local apic: int1 attached to NMI (type 1<type=1=NMI> flags 5<pol=1=Act Hi,trig=1=Edge>)
mainbus0: MP WARNING: 124 bytes of extended entries not examined
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: VIA Technologies VT82C691 (Apollo Pro) Host-PCI (rev. 0xc4)
agp0 at pchb0: aperture at 0xfc000000, size 0x10000000
ppb0 at pci0 dev 1 function 0: VIA Technologies VT82C598 (Apollo MVP3) CPU-AGP Bridge (rev. 0x00)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga0 at pci1 dev 0 function 0: Nvidia Corporation RIVA TNT2 Model 64 (rev. 0x15)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
pcib0 at pci0 dev 4 function 0
pcib0: VIA Technologies VT82C686A (Apollo KX133) PCI-ISA Bridge (rev. 0x40)
pciide0 at pci0 dev 4 function 1: VIA Technologies VT82C686A (Apollo KX133) ATA100 controller
pciide0: bus-master DMA support present
pciide0: primary channel configured to compatibility mode
wd0 at pciide0 channel 0 drive 0: <IC35L040AVER07-0>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 39266 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 80418240 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA data transfers)
pciide0: secondary channel configured to compatibility mode
pciide0: disabling secondary channel (no drives)
VIA Technologies VT83C572 USB Controller (USB serial bus, revision 0x16) at pci0 dev 4 function 2 not configured
VIA Technologies VT83C572 USB Controller (USB serial bus, revision 0x16) at pci0 dev 4 function 3 not configured
pchb1 at pci0 dev 4 function 4
pchb1: VIA Technologies VT82C686A SMBus Controller (rev. 0x40)
fxp0 at pci0 dev 12 function 0: i82559 Ethernet, rev 8
fxp0: interrupting at apic 2 int 16 (irq 11)
fxp0: Ethernet address 00:90:27:85:e6:66
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
sysbeep0 at pcppi0
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
apm0 at mainbus0: Power Management spec V1.2
biomask 0 netmask 0 ttymask 0
cpu0: prelint0 8700<vector=0,delmode=7,level,dest=0> 0<target=0>
cpu0: prelint1 400<vector=0,delmode=4,dest=0> 0<target=0>
cpu0: timer0 300d0<vector=d0,delmode=0,masked,dest=0> 0<target=0>
cpu0: pcint0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
cpu0: lint0 10700<vector=0,delmode=7,masked,dest=0> 0<target=0>
cpu0: lint1 400<vector=0,delmode=4,dest=0> 0<target=0>
cpu0: err0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: enabling
ioapic0: int0 10700<vector=0,delmode=7,masked,dest=0> 0<target=0>
ioapic0: int1 1a0<vector=a0,delmode=1,dest=0> 3000000<target=3>
ioapic0: int2 10100<vector=0,delmode=1,masked,dest=0> 0<target=0>
ioapic0: int3 1e1<vector=e1,delmode=1,dest=0> 3000000<target=3>
ioapic0: int4 1e2<vector=e2,delmode=1,dest=0> 3000000<target=3>
ioapic0: int5 10100<vector=0,delmode=1,masked,dest=0> 0<target=0>
ioapic0: int6 170<vector=70,delmode=1,dest=0> 3000000<target=3>
ioapic0: int7 10100<vector=0,delmode=1,masked,dest=0> 0<target=0>
ioapic0: int8 10100<vector=0,delmode=1,masked,dest=0> 0<target=0>
ioapic0: int9 10100<vector=0,delmode=1,masked,dest=0> 0<target=0>
ioapic0: int10 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: int11 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: int12 10100<vector=0,delmode=1,masked,dest=0> 0<target=0>
ioapic0: int13 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: int14 171<vector=71,delmode=1,dest=0> 3000000<target=3>
ioapic0: int15 10100<vector=0,delmode=1,masked,dest=0> 0<target=0>
ioapic0: int16 a181<vector=81,delmode=1,actlo,level,dest=0> 3000000<target=3>
ioapic0: int17 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: int18 1a100<vector=0,delmode=1,actlo,level,masked,dest=0> 0<target=0>
ioapic0: int19 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: int20 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: int21 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: int22 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
ioapic0: int23 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
boot device: wd0
root on wd0a dumps on wd0b
cpu1: prelint0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
cpu1: prelint1 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
cpu1: timer0 200d0<vector=d0,delmode=0,dest=0> 0<target=0>
cpu1: pcint0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
cpu1: lint0 10700<vector=0,delmode=7,masked,dest=0> 0<target=0>
cpu1: lint1 400<vector=0,delmode=4,dest=0> 0<target=0>
cpu1: err0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
cpu1: CPU 0 running

On Sun, 28 Apr 2002, Paul Goyette wrote:

> Howdy!
> Having noticed Bill's update to the i386-MP branch yesterday, I updated
> my sources and proceeded to build a new kernel and userland.  The build
> was successful, as was the boot.
> But after about 7 or 8 minutes, the system just completely hangs.  It
> appears that interrupts just stop getting through.  Can't even switch
> between wscons virtual screens.
> Anyone else using i386-MP -very-current?
> ----------------------------------------------------------------------
> |   Paul Goyette   | PGP DSS Key fingerprint: |  E-mail addresses:   |
> | Network Engineer | 9DC5 05CF 1AE7 DC42 CCC6 |   |
> |  & World Cruiser | 6858 051E 7AD2 A6B2 4954 | |
> ----------------------------------------------------------------------

|   Paul Goyette   | PGP DSS Key fingerprint: |  E-mail addresses:   |
| Network Engineer | 9DC5 05CF 1AE7 DC42 CCC6 |   |
|  & World Cruiser | 6858 051E 7AD2 A6B2 4954 | |