Messages in this thread |  | | | Date | Mon, 15 Oct 2007 18:20:09 -0400 | | From | Jeff Garzik <> | | Subject | Re: WARNING: at net/core/dev.c:2161 net_rx_action() |
| |
Ingo Molnar wrote: > * David Miller <davem@davemloft.net> wrote: > >> From: Ingo Molnar <mingo@elte.hu> >> Date: Mon, 15 Oct 2007 13:24:30 +0200 >> >>> got this warning with Linus' latest -git tree: >>> >>> WARNING: at net/core/dev.c:2161 net_rx_action() >>> [<80564db4>] net_rx_action+0xce/0x186 >>> [<8011ba98>] __do_softirq+0x6c/0xcf >>> [<8011bb2d>] do_softirq+0x32/0x36 >>> [<8011bcae>] irq_exit+0x35/0x40 >>> [<80104fdb>] do_IRQ+0x5c/0x71 >>> [<801048cd>] do_nmi+0x8f/0x238 >>> [<801033a3>] common_interrupt+0x23/0x30 >>> ======================= >> This is a driver bug, the work "budget" passed into a driver's >> ->poll() handler should never be exceeded. That's what this warning >> assertion is checking. >> >> What ethernet card is in your system and what driver is being used to >> drive it? > > it's forcedeth. > > i've checked nv_napi_poll(), and i dont see how it could return larger > than 'limit' number of packets. > > it could return packets == limit though: > > pkts = nv_rx_process_optimized(dev, budget); > ... > > if (pkts < budget) { > /* re-enable receive interrupts */ > spin_lock_irqsave(&np->lock, flags); > > __netif_rx_complete(dev, napi); > > ... > return pkts;
FWIW, forcedeth has this funky disable_irq()-based locking mechanism that is currently the subject of some kernel.org bugzillas. I would also check and make sure that isn't perturbing your results (even though it seems unrelated, based on what I read here). That might include disabling MSI if it's enabled, and/or turning on spinlock debugging.
Jeff
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |