dual port EM nic wedging under load

Mike Tancsa mike at sentex.net
Sun Nov 26 08:11:14 PST 2006


At 04:03 AM 11/26/2006, Sepherosa Ziehau wrote:

Please review/test following patch:
http://leaf.dragonflybsd.org/~sephe/em_intr2.diff
[r2-dragonfly]# patch < em_intr2.diff
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|? cscope.out
|Index: if_em.c
|===================================================================
|RCS file: /opt/df_cvs/src/sys/dev/netif/em/if_em.c,v
|retrieving revision 1.49
|diff -u -p -r1.49 if_em.c
|--- if_em.c    5 Sep 2006 03:48:10 -0000       1.49
|+++ if_em.c    26 Nov 2006 08:28:11 -0000
--------------------------
Patching file if_em.c using Plan A...
Hunk #1 succeeded at 2941 (offset 1 line).
Hunk #2 succeeded at 2991 (offset 1 line).
Hunk #3 succeeded at 3008 (offset 1 line).
done
[r2-dragonfly]#
. .. Recompile kernel... and it works!

Using polling and fastfwd on, I am able to get about 300Kpps in a 
unidirectional blast and still see that rate even with 10 poorly 
written ipfw rules !?!

Also it handles the load quite smoothly for the bi-directional test

Here is the output of ifstat -b as seen from the box acting as router

You can see the first stream starting up, and then the second on the 
opposite stream.  Rates remain constant throughout, which is quite 
different from FreeBSD. ipfw on Dragonfly has no ill effect for some reason.

[r2-dragonfly]# ifstat -b
       bge0                em0                 em1
 Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
    0.46      0.00      0.00      0.00      0.00      0.00
    0.00      0.00  131836.1      0.00      0.00  131826.8
    0.46      0.00  140538.5      0.00      0.00  140608.2
    0.00      0.00  140653.4      0.00      0.00  140583.8
    0.93      0.00  140623.2      0.00      0.00  140623.2
    0.00      0.00  140614.8      0.00      0.00  140614.8
    0.46      0.00  140607.2      0.00      0.00  140607.2
    0.00      0.00  140577.2      0.00      0.00  140577.2
    0.46      0.00  140342.0  105180.0  105189.3  140342.0
    0.00      0.00  140606.6  140606.6  140606.6  140606.6
    0.00      0.00  140608.0  140608.0  140608.0  140608.0
    0.46      0.00  140596.0  140596.0  140596.0  140596.0
    0.00      0.00  140619.0  140619.0  140619.0  140619.0
    0.46      0.00  140527.8  140527.8  140527.8  140527.8
    1.98      0.00  140606.9  140606.9  140606.9  140606.9
    0.46      0.00  140607.9  140607.9  140607.9  140607.9
    0.00      0.00  140603.7  140603.7  140603.7  140603.7
    0.46      0.00  140609.7  140609.7  140609.7  140609.7
    0.00      0.00  103929.5  140632.2  140632.2  103929.5
    0.46      0.00      0.00  140606.2  140606.2      0.00
    0.00      0.00      0.00  119461.3  119461.3      0.00
    0.46      0.00      0.00      0.00      0.00      0.00
       bge0                em0                 em1
stats post test

em0: Adapter: 0xd38f5eb8
em0: Excessive collisions = 0
em0: Symbol errors = 0
em0: Sequence errors = 0
em0: Defer count = 0
em0: Missed Packets = 221709682
em0: Receive No Buffers = 53994896
em0: Receive length errors = 0
em0: Receive errors = 0
em0: Crc errors = 0
em0: Alignment errors = 0
em0: Carrier extension errors = 0
em0: RX overruns = 55192
em0: Watchdog timeouts = 0
em0: XON Rcvd = 0
em0: XON Xmtd = 914052
em0: XOFF Rcvd = 0
em0: XOFF Xmtd = 222434908
em0: Good Packets Rcvd = 187109273
em0: Good Packets Xmtd = 30553884
em1: Adapter: 0xd38f65b8
em1: Excessive collisions = 0
em1: Symbol errors = 0
em1: Sequence errors = 0
em1: Defer count = 0
em1: Missed Packets = 17508539
em1: Receive No Buffers = 14148594
em1: Receive length errors = 0
em1: Receive errors = 0
em1: Crc errors = 0
em1: Alignment errors = 0
em1: Carrier extension errors = 0
em1: RX overruns = 0
em1: Watchdog timeouts = 0
em1: XON Rcvd = 0
em1: XON Xmtd = 52953
em1: XOFF Rcvd = 0
em1: XOFF Xmtd = 17561436
em1: Good Packets Rcvd = 30553871
em1: Good Packets Xmtd = 187031079


 I will try it with a full routing table later on today and post the 
results on the webpage (http://www.tancsa.com/blast.html)








More information about the Users mailing list