[Maverick] [PATCH 0/2] Enable support for 82579 LOM's

Tim Gardner tim.gardner at canonical.com
Tue Sep 7 16:01:47 UTC 2010


On 09/07/2010 09:55 AM, Chris Van Hoof wrote:
> On 09/01/2010 10:09 PM, leann.ogasawara at canonical.com wrote:
>> Even though we can provide a full backport of the e1000e driver from
>> 2.6.36 to enable 82579 LOM's via linux-backports-modules, I believe it
>> would also be reasonable to add a minimal set of 82579 enablement
>> patches to the main distro kernel.  Those seeking the complete driver
>> backport can use LBM.  Thoughts?
>>
>> I've built and tested the following two patches and confirmed they do
>> enable an 82579 LOM.  I additionally tested on an older platform which
>> leverages the e1000e driver and confirm I see no regressions.
>>
>> Thanks,
>> Leann
>>
>> Bruce Allan (2):
>>     e1000e: initial support for 82579 LOMs
>>     e1000e: correct MAC-PHY interconnect register offset for 82579
>>
>>    drivers/net/e1000e/defines.h |    2 +
>>    drivers/net/e1000e/e1000.h   |    4 +
>>    drivers/net/e1000e/ethtool.c |   15 ++-
>>    drivers/net/e1000e/hw.h      |   12 ++-
>>    drivers/net/e1000e/ich8lan.c |  326 +++++++++++++++++++++++++++++++++++++++---
>>    drivers/net/e1000e/netdev.c  |   70 ++++++----
>>    drivers/net/e1000e/phy.c     |    3 +
>>    7 files changed, 385 insertions(+), 47 deletions(-)
>>
>
> Hey guys -- Just did a bit of smoke testing with these two patches on a
> Intel 82579LM.  I used the mtools suite from http://29west.com/mtools/
> (free to to public to use).
>
> Mtools provides a set of utilities to test multicast performance, and in
> the past has been quite helpful for me in testing driver functionality.
>    I can also run through and post some raw netperf runs if needed:
>
> All tests ran with:
>
>    * http://people.canonical.com/~ogasawara/lp601044/
>
> $ lspci
> [...]
> 00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network
> Connection (rev 02)
> [...]
> $ uname -a
> Linux shanghai 2.6.35-19-generic #29+lp601044 SMP Mon Aug 30 20:24:58
> UTC 2010 x86_64 GNU/Linux
>
> $ modinfo e1000e
> filename:
> /lib/modules/2.6.35-19-generic/kernel/drivers/net/e1000e/e1000e.ko
> version:        1.0.2-k4
> [...]
>
> To summarize my results, I'm able to successfully publish 11000 packets
> in a single burst within ~1.5 seconds to a machine with a 82579LM based
> Intel card.  I'm also able to run this in reverse and receive 11000
> packets in a single burst published by another host with an e1000e card.
>    All packets are 1450 bytes.
>
> I do not see any packet loss until I move the bursts into the 12000
> packet range, which I could tune around if needed.
>
> Not a peep out of dmesg during these runs.  Please let me know if there
> are any questions.
>
>
>
> = 82579LM as publisher results =
>
> == 5000 1450 byte UDP packet burst ==
> $ sudo sh udp_ 5000
> Equiv cmd line: msend -b5000 -m1450 -n1 -p1000 -s1000 -S16777216
> 233.0.0.1 16384 2 10.42.43.86
> Setting IP_MUTLICAST_IF to 10.42.43.86
> Sending 1 bursts of 5000 1450-byte messages
> Sending burst of 5000 msgs
> Pausing before sending 'stat'
> Sending stat
> 5000 messages sent (not including 'stat')
> Equiv cmd line: msend -b5000 -m1450 -n1 -p1000 -s1000 -S16777216
> 233.0.0.1 16384 2 10.42.43.86
> Setting IP_MUTLICAST_IF to 10.42.43.86
> Sending 1 bursts of 5000 1450-byte messages
> Sending burst of 5000 msgs
> Pausing before sending 'stat'
> Sending stat
> 5000 messages sent (not including 'stat')
>
> == 5000 1450 byte UDP packet burst (receiver) ==
> $ sudo sh recv_
> Equiv cmd line: mdump -p0 -Q2 -r16777216 233.0.0.1 16384 10.42.43.1
> 5000 msgs sent, 5000 received (not including 'stat')
> 0.000000% loss	Elapsed time: 1.109690
> 5000 msgs sent, 5000 received (not including 'stat')
> 0.000000% loss	Elapsed time: 1.109230
>
>
> == 10000 1450 byte UDP packet burst ==
> $ sudo sh udp_ 10000
> Equiv cmd line: msend -b10000 -m1450 -n1 -p1000 -s1000 -S16777216
> 233.0.0.1 16384 2 10.42.43.86
> Setting IP_MUTLICAST_IF to 10.42.43.86
> Sending 1 bursts of 10000 1450-byte messages
> Sending burst of 10000 msgs
> Pausing before sending 'stat'
> Sending stat
> 10000 messages sent (not including 'stat')
> Equiv cmd line: msend -b10000 -m1450 -n1 -p1000 -s1000 -S16777216
> 233.0.0.1 16384 2 10.42.43.86
> Setting IP_MUTLICAST_IF to 10.42.43.86
> Sending 1 bursts of 10000 1450-byte messages
> Sending burst of 10000 msgs
> Pausing before sending 'stat'
> Sending stat
> 10000 messages sent (not including 'stat')
>
> == 10000 1450 byte UDP packet burst (receiver) ==
> $ sudo sh recv_
> Equiv cmd line: mdump -p0 -Q2 -r16777216 233.0.0.1 16384 10.42.43.1
> 10000 msgs sent, 10000 received (not including 'stat')
> 0.000000% loss	Elapsed time: 1.201360
> 10000 msgs sent, 10000 received (not including 'stat')
> 0.000000% loss	Elapsed time: 1.188350
>
>
> = 82579LM as receiver results =
> == 5000 1450 byte UDP packet burst ==
> $ sudo sh udp_ 5000
> Equiv cmd line: msend -b5000 -m1450 -n1 -p1000 -s1000 -S16777216
> 233.0.0.1 16384 2 10.42.43.1
> Setting IP_MUTLICAST_IF to 10.42.43.1
> Sending 1 bursts of 5000 1450-byte messages
> Sending burst of 5000 msgs
> Pausing before sending 'stat'
> Sending stat
> 5000 messages sent (not including 'stat')
> Equiv cmd line: msend -b5000 -m1450 -n1 -p1000 -s1000 -S16777216
> 233.0.0.1 16384 2 10.42.43.1
> Setting IP_MUTLICAST_IF to 10.42.43.1
> Sending 1 bursts of 5000 1450-byte messages
> Sending burst of 5000 msgs
> Pausing before sending 'stat'
> Sending stat
> 5000 messages sent (not including 'stat')
>
> == 5000 1450 byte UDP packet burst (receiver) ==
> $ sudo sh recv_
> Equiv cmd line: mdump -p0 -Q2 -r16777216 233.0.0.1 16384 10.42.43.86
> 5000 msgs sent, 5000 received (not including 'stat')
> 0.000000% loss	Elapsed time: 1.258310
> 5000 msgs sent, 5000 received (not including 'stat')
> 0.000000% loss	Elapsed time: 1.256610
>
>
> == 10000 1450 byte UDP packet burst ==
> $ sudo sh udp_ 10000
> Equiv cmd line: msend -b10000 -m1450 -n1 -p1000 -s1000 -S16777216
> 233.0.0.1 16384 2 10.42.43.1
> Setting IP_MUTLICAST_IF to 10.42.43.1
> Sending 1 bursts of 10000 1450-byte messages
> Sending burst of 10000 msgs
> Pausing before sending 'stat'
> Sending stat
> 10000 messages sent (not including 'stat')
> Equiv cmd line: msend -b10000 -m1450 -n1 -p1000 -s1000 -S16777216
> 233.0.0.1 16384 2 10.42.43.1
> Setting IP_MUTLICAST_IF to 10.42.43.1
> Sending 1 bursts of 10000 1450-byte messages
> Sending burst of 10000 msgs
> Pausing before sending 'stat'
> Sending stat
> 10000 messages sent (not including 'stat')
>
> == 10000 1450 byte UDP packet burst (receiver) ==
> $ sudo sh recv_
> Equiv cmd line: mdump -p0 -Q2 -r16777216 233.0.0.1 16384 10.42.43.86
> 10000 msgs sent, 10000 received (not including 'stat')
> 0.000000% loss	Elapsed time: 1.517340
> 10000 msgs sent, 10000 received (not including 'stat')
> 0.000000% loss	Elapsed time: 1.519040
>

This certainly seems like sufficient throughput for basic enablement. I 
wonder if there is any difference with the full 2.6.36-rc3 backport that 
Leann published in maverick LBM. Perhaps you could try installing 
linux-backports-modules-net-maverick-generic ?

rtg
-- 
Tim Gardner tim.gardner at canonical.com




More information about the kernel-team mailing list