Re: [PATCH 1/1] via-rhine: Fix hanging with high CPU load on low-end broads.
From: David Miller <davem@davemloft.net>
Date: 2011-12-28 18:35:07
Also in:
lkml
From: David Miller <davem@davemloft.net>
Date: 2011-12-28 18:35:07
Also in:
lkml
From: Stephen Hemminger <redacted> Date: Wed, 28 Dec 2011 10:17:10 -0800
Looks like the hardware isn't really disabling interrupts correctly to support NAPI. NAPI is supposed to be friendly and under load the work should move to ksoftirqd. I suspect the IRQ management in this driver is borked. There is some stupid spin loops in the IRQ handler that happen when looking for Tx IRQ. I would run with debug set and see if this is triggering.
This could be simply a side effect of the fact that via-rhine only does RX work in it's NAPI handler. If all the work (or at least both TX and RX) were moved into the NAPI handler, it'd probably be easier to properly shut off all IRQs during NAPI processing, and thus avoid the high CPU load in the IRQ handler being seen here. This "shut off only some interrupts" scheme is just asking for trouble.