[ipxe-devel] SuperMicro SYS-1028U-TR+ with Intel X710-DR2 nic card

Todd Stansell todd at stansell.org
Wed Mar 30 19:23:43 UTC 2016


On Wed, Mar 30, 2016 at 07:13:40PM +0100, Michael Brown wrote:
> It's possible that a bug in the underlying NIC driver is causing it to 
> lose an interrupt, which effectively kills the receive datapath.
> 
> You could try adding the NIC to the undinet_irq_is_broken() checks. 
> Unfortunately, these are currently based on the PCI vendor:device ID 
> (which we're for some reason unable to retrieve from this NIC).  You 
> could try temporarily hardcoding undinet_irq_is_broken() to just always 
> return 1.

You were right. I hardcoded undinet_irq_is_broken() to always return 1 and now
it seems to work reliably.  I haven't been able to get it to fail yet.

I did enable undinic debug messages and see the following:

  UNDINIC 0x23c6c using UNDI 0x870aa988
  UNDINIC 0x23c6c has MAC address 00:00:00:00:00:00 and IRQ 11
  UNDINIC 0x23c6c has type DIX+802.3, speed 100000000, flags 0000dc1b
  UNDINIC 0x23c6c using interrupt mode
  UNDINIC 0x23c6c forcing polling mode due to broken interrupts
  ...
  UNDINIC 0x23c6c added
  ...
  UNDINIC 0x23c6c opened

Not sure if that helps at all, but figured it might be useful.  We're going to
try to move this NIC into a different system type altogether to see if it
behaves any better.  Maybe there's something in the Supermicro BIOS that's
causing the interrupts to not fire or get lost or something.  I have a hard
time believing Intel's X710 10G NIC have an interrupt bug.

At least we've traced the issue to something tangible now!  Thanks for that!

Todd



More information about the ipxe-devel mailing list