Subject: kern/8001: ix* w/ 16KB unhappy
To: None <gnats-bugs@gnats.netbsd.org>
From: None <bgrayson@ece.utexas.edu>
List: netbsd-bugs
Date: 07/14/1999 22:29:54
>Number:         8001
>Category:       kern
>Synopsis:       ix* w/ 16KB unhappy
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jul 14 22:20:01 1999
>Last-Modified:
>Originator:     Brian Grayson
>Organization:
	Parallel and Distributed Systems
	Electrical and Computer Engineering
	The University of Texas at Austin
>Release:        Jul 13, 1999
>Environment:
	NetBSD k9.ece.utexas.edu 1.4F NetBSD 1.4F (K93) #16: Wed Jul 14 20:53:52 CDT 1999 bgrayson@marvin:/usr/src/sys/arch/i386/compile/K93 i386


>Description:
	If an ix* card (EtherExpress 16) is configured for 16KB
	of buffer, the kernel prints out zillions of spurious
	interrupt messages.

	Here's the relevant lines from my config, followed by my
	dmesg from after I set the card to 32KB:
ix0     at isa? port 0x300 irq 10               # EtherExpress/16
ix1     at isa? port 0x310 irq 11               # EtherExpress/16

Jul 14 22:10:41 k9 /netbsd: NetBSD 1.4F (K93) #16: Wed Jul 14 20:53:52 CDT 1999
Jul 14 22:10:41 k9 /netbsd:     bgrayson@marvin:/usr/src/sys/arch/i386/compile/K93
Jul 14 22:10:41 k9 /netbsd: cpu0: family 5 model 2 step 2
Jul 14 22:10:41 k9 /netbsd: cpu0: Intel Pentium (P54C) (586-class)
Jul 14 22:10:41 k9 /netbsd: total memory = 32384 KB
Jul 14 22:10:41 k9 /netbsd: avail memory = 27712 KB
Jul 14 22:10:41 k9 /netbsd: using 430 buffers containing 1720 KB of memory
Jul 14 22:10:41 k9 /netbsd: mainbus0 (root)
Jul 14 22:10:41 k9 /netbsd: pci0 at mainbus0 bus 0: configuration mode 1
Jul 14 22:10:41 k9 /netbsd: pci0: i/o enabled, memory enabled
Jul 14 22:10:41 k9 /netbsd: pchb0 at pci0 dev 0 function 0
Jul 14 22:10:41 k9 /netbsd: pchb0: Acer Labs M1531 Host-PCI Bridge (rev. 0xb2)
Jul 14 22:10:41 k9 /netbsd: pcib0 at pci0 dev 2 function 0
Jul 14 22:10:41 k9 /netbsd: pcib0: Acer Labs M1543 PCI-ISA Bridge (rev. 0xb4)
Jul 14 22:10:41 k9 /netbsd: S3 Trio64V2/DX (VGA display, revision 0x14) at pci0 dev 5 function 0 not configured
Jul 14 22:10:41 k9 /netbsd: pciide0 at pci0 dev 11 function 0: Acer Labs M5229 UDMA IDE Controller
Jul 14 22:10:42 k9 /netbsd: pciide0: bus-master DMA support present
Jul 14 22:10:42 k9 /netbsd: pciide0: primary channel configured to compatibility mode
Jul 14 22:10:42 k9 /netbsd: wd0 at pciide0 channel 0 drive 0: <QUANTUM BIGFOOT_CY4320A>
Jul 14 22:10:42 k9 /netbsd: wd0: drive supports 32-sector pio transfers, lba addressing
Jul 14 22:10:42 k9 /netbsd: wd0: 4134MB, 8960 cyl, 15 head, 63 sec, 512 bytes/sect x 8467200 sectors
Jul 14 22:10:42 k9 /netbsd: wd0: 32-bits data port
Jul 14 22:10:42 k9 /netbsd: wd0: drive supports PIO mode 4, DMA mode 2
Jul 14 22:10:42 k9 /netbsd: pciide0: primary channel interrupting at irq 14
Jul 14 22:10:42 k9 /netbsd: pciide0: secondary channel configured to compatibility mode
Jul 14 22:10:42 k9 /netbsd: pciide0: disabling secondary channel (no drives)
Jul 14 22:10:42 k9 /netbsd: wd0(pciide0:0:0): using PIO mode 4, DMA mode 2 (using DMA data transfers)
Jul 14 22:10:42 k9 /netbsd: isa0 at pcib0
Jul 14 22:10:42 k9 /netbsd: com0 at isa0 port 0x3f8-0x3ff irq 4: ns8250 or ns16450, no fifo
Jul 14 22:10:42 k9 /netbsd: com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
Jul 14 22:10:42 k9 /netbsd: lpt0 at isa0 port 0x378-0x37b irq 7
Jul 14 22:10:42 k9 /netbsd: ix0 at isa0 port 0x300-0x30f iomem 0xd8000-0xdffff irq 10 address 00:aa:00:64:47:c6, type EtherExpress/16
Jul 14 22:10:42 k9 /netbsd: ix1 at isa0 port 0x310-0x31f iomem 0xd0000-0xd7fff irq 11 address 00:aa:00:57:c7:c0, type EtherExpress/16
Jul 14 22:10:42 k9 /netbsd: pcppi0 at isa0 port 0x61
Jul 14 22:10:42 k9 /netbsd: sysbeep0 at pcppi0
Jul 14 22:10:42 k9 /netbsd: isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
Jul 14 22:10:42 k9 /netbsd: npx0 at isa0 port 0xf0-0xff: using exception 16
Jul 14 22:10:42 k9 /netbsd: WARNING: Pentium FDIV bug detected!
Jul 14 22:10:42 k9 /netbsd: vt0 at isa0 port 0x60-0x6f irq 1
Jul 14 22:10:42 k9 /netbsd: vt0: unknown s3, 80 col, color, 8 scr, mf2-kbd, [R3.32]
Jul 14 22:10:42 k9 /netbsd: vt0: console
Jul 14 22:10:42 k9 /netbsd: fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
Jul 14 22:10:42 k9 /netbsd: fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
Jul 14 22:10:42 k9 /netbsd: isapnp0: no ISA Plug 'n Play devices found
Jul 14 22:10:42 k9 /netbsd: biomask 4040 netmask 4c40 ttymask 4cc2
Jul 14 22:10:43 k9 /netbsd: boot device: wd0
Jul 14 22:10:43 k9 /netbsd: root on wd0a dumps on wd0b
Jul 14 22:10:43 k9 /netbsd: root file system type: ffs
Jul 14 22:10:43 k9 /netbsd: IP Filter: initialized.  Default = pass all, Logging = disabled

>How-To-Repeat:
	Accidentally forget to set the card to 32KB, and boot
	using a modern kernel.  Watch the screen scroll by with
	somewhere around 10,000 spurious interrupts per second,
	and the machine be completely unresponsive.

	Besides fixing the cause for spurious interrupts,
	would this be a good job for exponentially-backed-off
	warnings?  A la:
ix0: i82586_intr: 1 spurious interrupts
ix0: i82586_intr: 2 spurious interrupts
ix0: i82586_intr: 4 spurious interrupts
ix0: i82586_intr: 8 spurious interrupts
ix0: i82586_intr: 16 spurious interrupts
ix0: i82586_intr: 32 spurious interrupts
ix0: i82586_intr: 64 spurious interrupts
ix0: i82586_intr: 128 spurious interrupts
...

>Fix:
	???  Jason?  :)
>Audit-Trail:
>Unformatted: