[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