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: