[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