Polling and em0
Robert Watson
rwatson at FreeBSD.org
Sun Sep 17 11:33:08 PDT 2006
On Sun, 17 Sep 2006, Eugene Kazarinov wrote:
>> Since 6.1 I have stopped using polling as a regular kernel seems to give
>> good performance as compared to polling mode. In fact I used to get
>> anything between 55-75megs/sec on 6.1 with regular cables but since
>> upgraded to cat6 quality Ethernet cable I get practically full gigabit
>> speed with no polling. Close to 97megs/sec is the performance I get out of
>> my Dells with the em driver, and apparently the new em driver in 6-stable
>> 6.2 is even faster.
>>
>> em(4) Dell to em(4) Dell
>> dell1# cat /dev/zero | dd bs=1m | nc dell2 3000
>> ^C0+18456 records in
>> 0+18455 records out
>> 1209466880 bytes transferred in 12.459299 secs (97,073,429 bytes/sec)
>
> Do you meen that from 6.2 I dont need polling for fastest performance?
There are two benefits to polling:
- Moderating interrupt rates
- Scheduling control over the amount of CPU dedicated to network tasks
Modern gigabit cards have interrupt moderation, so in practice you get a
polling-like effect with regard to interrupt rates. With significant
performance improvements in the if_em driver over the last year, it could well
be that the benefits of the scheduling control no longer provide much help.
Gigabit network cards also require a very high polling rate in order to be
effective, since the on-card buffers quickly fill -- as a result, unless the
poll rate (driven by HZ) is set extremely high, polling may actually
significant reduce performance by dramatically increasing packet loss under
load.
Robert N M Watson
Computer Laboratory
University of Cambridge
More information about the freebsd-stable
mailing list