Subject: port-sparc/33894: "too many" hme interfaces cause UVM panic during boot
To: None <port-sparc-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: None <fair@netbsd.org>
List: netbsd-bugs
Date: 07/01/2006 22:00:01
>Number: 33894
>Category: port-sparc
>Synopsis: "too many" hme interfaces cause UVM panic during boot
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: port-sparc-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jul 01 22:00:01 +0000 2006
>Originator: Erik E. Fair
>Release: NetBSD 3.0.1
>Organization:
The NetBSD Project
>Environment:
System: NetBSD cesium.clock.org 1.6.2_STABLE NetBSD 1.6.2_STABLE (CESIUM) #9: Wed Jun 21 17:54:10 PDT 2006 root@cesium.clock.org:/usr/obj/sys/arch/sparc/compile/CESIUM sparc
Architecture: sparc
Machine: sparc
Boot device: /iommu/sbus/espdma@f,400000/esp@f,800000/sd@3,0 File and args: net
bsd.ss20 -s
>> NetBSD/sparc Secondary Boot, Revision 1.15
>> (builds@b3.netbsd.org, Mon Dec 19 03:43:03 UTC 2005)
Booting netbsd.ss20
2305672+94740+186544 [141904+127656]=0x2c9948
OBP version 3, revision 2.25 (plugin rev 2)
pmap_bootstrap: installing kernel page tables...done.
Loaded initial symtab at 0xf028b94c, strtab at 0xf02ae6a0, # entries 8855
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 3.0.1 (SS20) #1: Sat Jul 1 01:17:59 PDT 2006
root@inverted.clock.org:/usr/obj/sys/arch/sparc/compile/SS20
total memory = 255 MB
avail memory = 246 MB
bootpath: /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0
mainbus0 (root): SUNW,SPARCstation-20: hostid 7276a82a
cpu0 at mainbus0: mid 8: RT620/625 @ 150 MHz, on-chip FPU
cpu0: 512K byte write-back, 32 bytes/line, sw flush: cache enabled
cpu1 at mainbus0: mid 10: RT620/625 @ 150 MHz, on-chip FPU
cpu1: 512K byte write-back, 32 bytes/line, sw flush: cache enabled
obio0 at mainbus0
clock0 at obio0 slot 0 offset 0x200000: mk48t08
timer0 at obio0 slot 0 offset 0x300000: delay constant 73
zs0 at obio0 slot 0 offset 0x100000 level 12 softpri 6
zstty0 at zs0 channel 0 (console i/o)
zstty1 at zs0 channel 1
zs1 at obio0 slot 0 offset 0x0 level 12 softpri 6
kbd0 at zs1 channel 0: baud rate 1200
ms0 at zs1 channel 1: baud rate 1200
fdc0 at obio0 slot 0 offset 0x700000 level 11 softpri 4: chip 82077
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
auxreg0 at obio0 slot 0 offset 0x800000
power0 at obio0 slot 0 offset 0xa01000 level 2
iommu0 at mainbus0 ioaddr 0xe0000000: version 0x3/0x1, page-size 4096, range 64MB
sbus0 at iommu0: clock = 25 MHz
dma0 at sbus0 slot 15 offset 0x400000: DMA rev 2
esp0 at dma0 slot 15 offset 0x800000 level 4: ESP200, 40MHz, SCSI ID 7
scsibus0 at esp0: 8 targets, 8 luns per target
ledma0 at sbus0 slot 15 offset 0x400010: DMA rev 2
le0 at ledma0 slot 15 offset 0xc00000 level 6: address 08:00:20:76:a8:2a
le0: 8 receive buffers, 2 transmit buffers
bpp0 at sbus0 slot 15 offset 0x4800000 level 2 (ipl 3): DMA rev 2
bpp: hcr 0 ocr 200a tcr 8 or 0
SUNW,DBRIe at sbus0 slot 14 offset 0x10000 level 9 not configured
hme0 at sbus0 slot 0 offset 0x8c00000 level 4 (ipl 7): Sun Happy Meal Ethernet (SUNW,hme)
hme0: Ethernet address 08:00:20:76:a8:2a
nsphy0 at hme0 phy 1: DP83840 10/100 media interface, rev. 0
nsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
esp1 at sbus0 slot 0 offset 0x8800000 level 3 (ipl 5): FAS366/HME, 40MHz, SCSI ID 7
scsibus1 at esp1: 16 targets, 8 luns per target
hme1 at sbus0 slot 2 offset 0x8c00000 level 4 (ipl 7): Sun Happy Meal Ethernet (SUNW,qfe)
hme1: Ethernet address 08:00:20:76:a8:2a
qsphy0 at hme1 phy 1: QS6612 10/100 media interface, rev. 1
qsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
hme2 at sbus0 slot 2 offset 0x8c10000 level 4 (ipl 7): Sun Happy Meal Ethernet (
SUNW,qfe)
panic: kernel diagnostic assertion "me" failed: file "/sys/uvm/uvm_map.c", line 481
Stopped in pid 0.1 (swapper) at netbsd:cpu_Debugger+0x4: or %o7, %g0, %g1
db{0}> trace
cpu_Debugger(0xf0236b10, 0xf0209310, 0xf0215fb8, 0xf0225050, 0x100, 0xf0255000) at netbsd:__assert+0x18
__assert(0xf0209310, 0xf0225050, 0x1e1, 0xf0215fb8, 0x0, 0x0) at netbsd:uvm_map_clip_start+0x2a4
uvm_map_clip_start(0xf02797b0, 0xf07831f8, 0xf27e5000, 0xf00, 0x40500, 0xf2765000) at netbsd:uvm_unmap_remove+0x494
uvm_unmap_remove(0xf02797b0, 0xf27e5000, 0xf2849000, 0xf024e68c, 0xf024e690, 0xffffffff) at netbsd:uvm_unmap1+0xcc
uvm_unmap1(0xf02797b0, 0xf27e5000, 0xf2849000, 0xf0279868, 0xffffffff, 0xc00000) at netbsd:_bus_dma_valloc_skewed+0xc0
_bus_dma_valloc_skewed(0xf2780000, 0xf2765000, 0x80000, 0x0, 0x0, 0xf0788840) at netbsd:iommu_dmamem_map+0x58
iommu_dmamem_map(0xc, 0xf024e7e8, 0x1, 0x65000, 0xf0838ec8, 0x5) at netbsd:hme_config+0x94
hme_config(0xf0838c00, 0xf02297f0, 0xffffffff, 0x0, 0x70, 0xfe045000) at netbsd: hmeattach_sbus+0x2a0
hmeattach_sbus(0xf8003f, 0xf0838c00, 0x5, 0x0, 0xf00, 0x5) at netbsd:config_attach_loc+0x3ac
config_attach_loc(0xf0838c00, 0xf0250838, 0x0, 0xf024e950, 0x2, 0xf079ca00) at netbsd:sbus_attach_common+0x184
sbus_attach_common(0xf079ca00, 0xf0279ef8, 0x0, 0x0, 0xf00, 0x5) at netbsd:config_attach_loc+0x3ac
config_attach_loc(0xf079ca00, 0xf0250838, 0x0, 0xf024ea70, 0x0, 0xf081b400) at netbsd:iommu_attach+0x41c
iommu_attach(0xf0219400, 0xf081b400, 0xf024ebd8, 0xf0254800, 0xf019a400, 0xf0257c00) at netbsd:config_attach_loc+0x3ac
config_attach_loc(0xf081b400, 0xf0250838, 0x0, 0xf024ebd8, 0x0, 0xf0830f80) at netbsd:mainbus_attach+0x334
mainbus_attach(0xf0219400, 0xf0830f80, 0xf0257d28, 0xf0257cf0, 0xf022a400, 0xf0208c00) at netbsd:config_attach_loc+0x3ac
config_attach_loc(0xf0830f80, 0xf0250838, 0x0, 0x0, 0x0, 0x0) at netbsd:cpu_configure+0x40
cpu_configure(0xf0830fc0, 0x14, 0xf0222a88, 0x0, 0x0, 0xf0220d08) at netbsd:configure+0x58
configure(0x3e48, 0x41a0, 0xf0282000, 0x20000000, 0x0, 0x800000) at netbsd:main+0x2f0
main(0x0, 0xfffffff8, 0x0, 0x0, 0x0, 0xf0002270) at netbsd:ft_want_ast+0xbf8
db{0}> show uvmexp
Current UVM status:
pagesize=4096 (0x1000), pagemask=0xfff, pageshift=12
63500 VM pages: 0 active, 0 inactive, 0 wired, 62528 free
min 10% (25) anon, 10% (25) file, 5% (12) exec
max 80% (204) anon, 50% (128) file, 30% (76) exec
pages 475 anon, 0 file, 0 exec
freemin=0, free-target=0, inactive-target=0, wired-max=0
faults=0, traps=2, intrs=1, ctxswitch=0
softint=0, syscalls=0, swapins=0, swapouts=0
fault counts:
noram=0, noanon=0, pgwait=0, pgrele=0
ok relocks(total)=0(0), anget(retrys)=0(0), amapcopy=0
neighbor anon/obj pg=0/0, gets(lock/unlock)=0/0
cases: anon=0, anoncow=0, obj=0, prcopy=0, przero=0
daemon and swap counts:
woke=0, revs=0, scans=0, obscans=0, anscans=0
busy=0, freed=0, reactivate=0, deactivate=0
pageouts=0, pending=0, nswget=0
nswapdev=0, nanon=59527, nanonneeded=59527 nfreeanon=59527
swpages=0, swpginuse=0, swpgonly=0 paging=0
>Description:
I have a SPARCstation 20 with dual 150 HyperSPARC CPUs, 256MB RAM,
and two Sbus cards: QFE, and FAS366/HME (i.e. five hme interfaces).
Both GENERIC, GENERIC.MP, and system-specific kernels panic during boot:
panic: kernel diagnostic assertion "me" failed: file "/sys/uvm/uvm_map.c", line 481
This appears to be related to hme probe/initialization.
This bug does not manifest with:
NetBSD 3.99.7 (SS20) #2: Thu Jul 14 19:48:19 PDT 2005
root@inverted.clock.org:/usr/obj/sys/arch/sparc/compile/SS20
>How-To-Repeat:
Attempt to boot NetBSD 3.0 on this hardware configuration
>Fix:
>Unformatted: