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