Subject: Re: got drivers?
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Dieter <netbsd@sopwith.solgatos.com>
List: netbsd-help
Date: 01/22/2005 18:19:19
> > SCSI disks haven't been keeping up (small capacity and expensive) so I added
> > a 250 GB ATA disk.  I/O to the ATA disk causes problems with rs-232 and ethernet.
> > 
> > 	com1: 5 silo overflows, 0 ibuf floods
> > 	de1: abnormal interrupt: transmit underflow
> > 
> > I'm guessing a latency problem servicing interrupts, but that's just a guess.
> 
> At last the "transmit underflow" is that the tulip chip couldn't read data
> fast enouth from the host memory: to minimize latency, ethernet chips start
> transmitting on the wire before they have read the full packet from host
> memory. Now, if they can't read data fast enouth, they have to stop
> transmitting, which means that the packet is lost.

I'm getting deja-vu here.  I'm sure I read about this problem 15-20 years ago.

Awhile back I tried reducing the MTU, which greatly reduced, perhaps eliminated
the problem, but then it didn't like large incoming packets.

I'm planning on upgrading to gigabit Ethernet, do any of the giga chips/boards
have enough buffer space to avoid this stupid problem?

> The serial problem could be the same (if a device grabs the PCI bus for too
> long, then the serial chip's fifo will overflow). On i386, serial interrupts
> are above splhigh, which means no other subsystems can block them (exept
> IPIs on SMP systems).

This is on alpha, single CPU.  Is there some knob in the wd driver I can
turn to get it to not hold the bus too long?

	wd0 at pciide0 channel 1 drive 0: <Maxtor 6Y250P0>
	wd0: drive supports 16-sector PIO transfers, LBA48 addressing
	wd0: 233 GB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 490234752 sectors
	wd0: 32-bit data port
	wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
	pciide0: secondary channel interrupting at isa irq 15
	wd0(pciide0:1:0): using PIO mode 4, DMA mode 2 (using DMA data transfers)

> So, for this issue, it looks more like a PCI configuration issue, like
> wrong settings for the PCI latency timers. Or just an incompatibility
> between PCI implementations of the different component of your system
> These do exists.

RS-232 and ATA are both on the compute engine (aka "motherboard" in pee-cee
speak)  Ethernet is on PCI cards, I'll probably upgrade one of them to giga soon.

	isa0 at sio0
	com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
	com0: console
	com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo

	de0 at pci0 dev 6 function 0
	de0: interrupting at eb164 irq 0
	de0: Cogent 21040 [10Mb/s] pass 2.3

	de1 at pci0 dev 7 function 0
	de1: interrupting at eb164 irq 1
	de1: Cogent 21040 [10Mb/s] pass 2.4