Hi, 1) You can be sure that it does not use more than one rx queue. You can find more info about RX queues in http://media.wix.com/ugd//295986_4ef6dbdf11fd0a7f74f09741b4b5b2ee.pdf (I wrote it, a shameless plug...) 2) Does the irqbalance service, which is common in some distros, is running ? can you try to disable it and run traffic again and check /proc/interrupts afrer some time ? 3) regardless of 2 (meaning not stopping irqbalance if it was active) can you please try "taskset 02 ping www.google.com" and tell us whether interrupts were incremented on the second CPU ? (please send /proc/interrupts | grep eth0 before and after sending, let's say, 5 pings)? Rgs, Rami Rosen http://ramirose.wix.com/ramirosen On Tue, Mar 26, 2013 at 9:05 PM, Kumar amit mehta <gmate.amit@gmail.com> wrote:
On Tue, Mar 26, 2013 at 08:35:56PM +0200, Rami Rosen wrote:
1) Regarding rx queues: what does "ls /sys/class/net/eth0/queues" show ?
$ ls /sys/class/net/eth0/queues rx-0 tx-0
2) can you try setting affinity for working only with CPU3 and see what happens after some traffic is sent by cat /proc/interrupts?
# echo 8 > /proc/irq/19/smp_affinity # cat /proc/irq/19/smp_affinity 08
$ cat /proc/interrupts |grep eth0 19: 20635 78 387 1857 IO-APIC-fasteoi eth0 $ cat /proc/interrupts |grep eth0 19: 20635 78 387 3041 IO-APIC-fasteoi eth0
Now only, CPU3 is processing the packets. So, i think, this driver(pcnet32) is not using multiple Rx Queue.