While experimenting a bit with intel PRO/1000 CT nic (reported by lspci as Intel Corporation 82574L Gigabit Network Connection), I noticed following issues (?): 1) under default IntMode (MSI-X), TxAbsIntDelay doesn't seem to limit interrupt rate (as seen via /proc/interrupts), although it is capped by InterruptThrottleRate (or not at all, if this one is disabled). For example: with TxIntDelay 100 and TxAbsIntDelay 1000 - rate (as read from /proc/interrupts) under simple udp netcat bombarding (1k packet size): nc -u somehost someport </dev/zero ... will be around 115k int/sec - expected value w/o any interrupt moderation. When IntMode is set to 0 or 1 (so either regular or MSI) - both TxIntDelay and TxAbsIntDelay seem to work properly - in the above example, rate would stay below 1500 int/sec. But ... 2) ... at the same time, cpu load (as reported by mpstat -P ALL 1) is barely better in the latter case. Furthermore, if I disable any delays, e.g. load e1000e module with: options e1000e TxIntDelay=0 TxAbsIntDelay=0 RxIntDelay=0 RxAbsIntDelay=0 InterruptThrottleRate=0 IntMode=1 .. then netcat test will max cpu core, and it will be unable to reach full 1gbit, while: options e1000e TxIntDelay=0 TxAbsIntDelay=0 RxIntDelay=0 RxAbsIntDelay=0 InterruptThrottleRate=0 IntMode=2 .. will easily handle 1gbit with ~50%+ idle core (in my case at least). Should the difference between MSI and MSI-X modes be so large ? Earlier tests (pt. #1): options e1000e TxIntDelay=100 TxAbsIntDelay=1000 RxIntDelay=0 RxAbsIntDelay=0 InterruptThrottleRate=0 IntMode=1 .. handles 1gbit with ~60%+ idle core. and: options e1000e TxIntDelay=100 TxAbsIntDelay=1000 RxIntDelay=0 RxAbsIntDelay=0 InterruptThrottleRate=0 IntMode=2 options e1000e TxIntDelay=0 TxAbsIntDelay=0 RxIntDelay=0 RxAbsIntDelay=0 InterruptThrottleRate=0 IntMode=2 .. are roughly identical as far as cpu load goes. Those quick tests were done with nic interrupt(s) and netcat pinned at the same core. Tested with current 2.6.31-rc9 and stable 2.6.30 tree. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
