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