polling is almost never a performance advantage
for ethernet, as virtually all modern controllers
have some sort of interrupt moderation built-in.
We had the case on fbsd 5.4p7 with SMP where bge drivers produced
much slower throughput if we did not use polling. We measured using
ttcp and the difference was from 2-3Mbyte/sec to 11 Mbyte/sec.
What Danial is saying is that polling is whacking your CPU, while
manipulating interrupt frequency at the NIC hardware level should make for a
"free" (read: no cpu overhead) performance enhancement. If he's correct,
you should see the same performance increase if you skip polling and go
right to the NIC hardware interrupt tweak (assuming your BGE card supports
it), AND you should get it without adding CPU load.
This is interesting. I'm going to set up testbed when I have a little time
and run both ways to see what happens.
Question is, what mechanism do we have available to manipulate interrupt
frequency on the NIC itself. The em driver does not appear to offer any
options in that area, nor is anything like that configurable via ifconfig.
Are we looking at a sysctl variable, or are we tweaking the driver source
and rebuilding each time we want to try a new combination of values?
The Gotham Bus Company, Inc.
Dedicated Servers and Colocation
Long Island, New York