Subject: 2002/4/27 -current MP kernel hangs (fwd)
To: None <tech-smp@netbsd.org>
From: Paul Goyette <paul@whooppee.com>
List: tech-smp
Date: 05/01/2002 10:09:01
(Originally posted on current-users, but not much response...)
Subject: Re: -current MP kernel hangs
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?
:)
/paul
--------------------
The config:
include "arch/i386/conf/std.i386"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
options MULTIPROCESSOR
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 NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM
options WSEMUL_VT100 # VT100 / VT220 emulation
options WS_KERNEL_FG=WSCOL_GREEN
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
options PCDISPLAY_SOFTCURSOR
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
paul@pc1.whooppee.com:/usr/obj/.i386/sys/arch/i386/compile/PC45
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 | paul@whooppee.com |
> | & World Cruiser | 6858 051E 7AD2 A6B2 4954 | pgoyette@juniper.net |
> ----------------------------------------------------------------------
>
>
----------------------------------------------------------------------
| Paul Goyette | PGP DSS Key fingerprint: | E-mail addresses: |
| Network Engineer | 9DC5 05CF 1AE7 DC42 CCC6 | paul@whooppee.com |
| & World Cruiser | 6858 051E 7AD2 A6B2 4954 | pgoyette@juniper.net |
----------------------------------------------------------------------