[Click] polling patch for e1000-7.3.20

Matt Gordon mgordon at mazunetworks.com
Wed Jan 17 18:18:28 EST 2007


(got bounced the first time)

Like Max said, the lower rx ring descriptor count really speeds up 
PollDevice on some of our hardware:

2 ports of ~line rate gigE 100Byte packets:

[root at localhost ~]# cat test2.click
PollDevice(mon0, true) -> Counter -> Discard
PollDevice(mon1, true) -> Counter -> Discard
Idle -> ToDevice(mon0)
Idle -> ToDevice(mon1)
[root at localhost ~]# ethtool -G mon0 rx 256; ethtool -G mon1 rx 256
[root at localhost ~]# click-install test2.click ; sleep 2; cat 
/click/Counter\@?/rate; sleep 2; cat /click/Counter\@?/rate;
769276.123
769286.865
769672.607
769633.545
[root at localhost ~]# click-uninstall
[root at localhost ~]# ethtool -G mon0 rx 64; ethtool -G mon1 rx 64
[root at localhost ~]# click-install test2.click ; sleep 2; cat 
/click/Counter\@?/rate; sleep 2; cat /click/Counter\@?/rate;
932895.996
932824.951
932903.809
932868.896
[root at localhost ~]# click-uninstall
[root at localhost ~]# ethtool -G mon0 rx 512; ethtool -G mon1 rx 512
[root at localhost ~]# click-install test2.click ; sleep 2; cat 
/click/Counter\@?/rate; sleep 2; cat /click/Counter\@?/rate;
767756.592
767692.627
767959.229
767925.293
[root at localhost ~]# click-uninstall
[root at localhost ~]# ethtool -G mon0 rx 1024; ethtool -G mon1 rx 1024
[root at localhost ~]# click-install test2.click ; sleep 2; cat 
/click/Counter\@?/rate; sleep 2; cat /click/Counter\@?/rate;
718156.494
718176.514
718563.965
718615.967
[root at localhost ~]#

I get the improvement on a much more complicated click config as well.  
Also, changing the descriptor count when polling is on will likely 
result in an oops.  It could probably be handled but I don't think it's 
worth it.  As far as the reset code in e1000_poll_on, I would have never 
thought the "fix" was so trivial, until spending time analyzing the 
crashes, then it started looking like a good idea.  I did try to not 
reset the card, and just fix the corruption, but it seems to get broken 
in a few different ways that are non-trivial.

Thanks to all for Click!

Matt

Roman Chertov wrote:
> Why did you change the default ring parameters from 256 to 64?
>
> Roman
>
> Massimiliano Poletto wrote:
>> Matt Gordon at Mazu has succeeded where some of us had so far failed,
>> and has produced a stable polling patch for the latest (7.3.20)
>> version of the e1000 driver available on sourceforge.
>>
>> It has been tested on various platforms, including the IBM x345/x346
>> and the Intel SR1500/SR2500, with various e1000 models, including the
>> 82546GB and 82571EB, on both PCI-X and PCI-E buses.
>>
>> Performance is good, comparable to or better than the old driver,
>> depending on the hardware configuration.  click-installs/uninstalls
>> under high load, which had been the major remaining cause of crashes
>> with my version of the driver, now work reliably.
>>
>> Kudos to Matt for a job well done.  Many thanks also to Roman Chertov
>> for help and discussion when I was trying to get the driver working.
>>
>> The patch is attached.  I hope it's useful.  If you see problems or
>> crashes, please let us know.
>>
>> Regards,
>> max
>



More information about the click mailing list