That is sort of fixable but does require some kind of irq awareness. In
netif_rx
if(skb_queue_len(&backlog)>200)
{
/* This wont always be the right victim but statistically
speaking we punish the guilty party. Van would probably
argue we should pick an entry at random from the queue
and disable its IRQ, but we cant do that O(1) */
disable_irq(skb->dev->irq);
}
and at the end of net_bh
enable_any_blocked_network_irqs();
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/