Subject: Re: kern/33445: Fixes for Promise SATA (pdcsata) PCI driver
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Timo Schoeler <timo.schoeler@riscworks.net>
List: netbsd-bugs
Date: 06/11/2006 13:15:04
The following reply was made to PR kern/33445; it has been noted by GNATS.

From: Timo Schoeler <timo.schoeler@riscworks.net>
To: gnats-bugs@NetBSD.org
Cc: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
	netbsd-bugs@netbsd.org, buhrow@lothlorien.nfbcal.org
Subject: Re: kern/33445: Fixes for Promise SATA (pdcsata) PCI driver
Date: Sun, 11 Jun 2006 15:11:33 +0200

 >  	Hello Timo.  I think I see your problem.  I was a bit confused about
 >  the NetBSD interrupt frame work and wasn't sure if the return value from an
 >  interrupt routine mattered.  It does, and your problem is that the revised
 >  interrupt routine always claimed all interrupts.  That works fine for
 >  non-shared interrupts, but you're sharing interrupts with the fxp1 card and
 >  the pdcsata driver, so things went south.
 >  	Here's a patch which fixes that issue.  Could you try it and confirm
 >  that all is now well?
 >  -thanks
 >  -Brian
 >  
 >  Index: pdcsata.c
 
 (patch was here)
 
 hi,
 
 sorry for replying late; i fiddled around a lot and it seems that 
 there's a bit voodoo included.
 
 i have one machine in a rack hosting company with nearly the same config 
 as the machine here. the remote machine runs 3.0-RELEASE. it's connected 
 to a D-Link switch and runs fine, wrt our topic that is i can ping flood 
 _from_ that machine without losing packets.
 
 trying it on the (nearly same configured) machine here, i get dropped 
 packets with 3.0-RELEASE as well as a 3.0-STABLE from late march and 
 3.0-STABLE from yesterday, with your above patch applied.
 
 aldebaran: {5} dmesg | grep fxp0
 fxp0 at pci0 dev 7 function 0: i82559 Ethernet, rev 8
 fxp0: interrupting at ioapic1 pin 10 (irq 5)
 fxp0: May need receiver lock-up workaround
 fxp0: Ethernet address 00:10:83:ff:e1:5a
 inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
 
 this one is an on board NIC (the machines are HP X-Class, and P-Class, 
 respectively). i put a PCI NIC (same chipset, rev 12) into the machine 
 and disabled the on board NIC, same problem. when activating both NICs, 
 neither NIC can be used (the NIC connected to the switch says 'active', 
 but everything above ISO layer three is dead).
 
 at the moment i run the machine with the promise SATA HBA,
 
 pdcsata0: Promise PDC40718 SATA300 controller (rev. 0x02)
 pdcsata0: interrupting at ioapic1 pin 2 (irq 11)
 pdcsata0: bus-master DMA support present
 
 on board NIC, and an adaptec 29160:
 
 aldebaran: {6} dmesg | grep pin
 ioapic0: pa 0xfec00000, version 11, 16 pins
 ioapic1: pa 0xfec01000, version 11, 16 pins
 ahc1: interrupting at ioapic1 pin 6 (irq 11)
 pdcsata0: interrupting at ioapic1 pin 2 (irq 11)
 fxp0: interrupting at ioapic1 pin 10 (irq 5)
 rccide0: primary channel interrupting at ioapic0 pin 14 (irq 14)
 
 it loses packets on fxp0 when ping flooding _from_ the machine, but runs 
 fine for ftp, ssh, and scp, respectively.
 
 pdcsata0 does not seem to lose interrupts, even under heavy load.
 
 timo