On Mar 20 2008 15:47, strawks wrote:
So when the driver exits the IRQ handler for its device, IRQ are reenabled. If a packet comes before the softirq has finished with the previous packet(s), an IRQ is raised again.
It appears that this IRQ will be handled by the same CPU. But is it possible that the second IRQ should be handled by another CPU?
Yes, by balancing the IRQ elsewhere, in short, setting its CPU affinity mask accordingly. But if the processing of packets takes most of the time, then you should not worry about balancing NIC IRQs, but enqueueing the packets onto the right softirq thread.
I don't really know how IRQs are handled on SMP (nor I know how irq-balance works)
IRQs are enabled for one CPU only in the general case, and balancing it should be straightforward. I have no idea what happens if the affinity mask allows an IRQ for more than one CPU, but you should not worry about that, because (a) you probably do not want a deliver-to-a-random-CPU behavior nor (b) deliver-to-all (since I doubt the hardware does (c) round-robin automatically) -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html