[Click] polling patch for e1000-7.3.20

Eddie Kohler kohler at cs.ucla.edu
Fri Jan 19 12:17:14 EST 2007


Matt, Max, Roman,

THANK YOU ALL SO MUCH.  This is really fabulous.  Thanks for the analysis too!

Eddie


Matt Gordon wrote:
> (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
> 
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list