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

Chris Van Hoof vanhoof at canonical.com
Tue Sep 7 15:55:19 UTC 2010


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




More information about the kernel-team mailing list