On Wed, Dec 01, 2004 at 10:13:33PM -0800, Scott Feldman wrote:
> Idea#3
>
> http://www.mail-archive.com/freebsd-net@xxxxxxxxxxx/msg10826.html
>
> Set TXDMAC to 0 in e1000_configure_tx.
Enabling 'DMA packet prefetching' gives me an impressive boost in performance.
Combined with your TX clean rework, I now get 1.03Mpps TX performance at 60B
packets. Transmitting from both of the 82546 ports at the same time gives me
close to 2 Mpps.
The freebsd post hints that (some) e1000 hardware might be buggy w.r.t. this
prefetching though.
I'll play some more with the other ideas you suggested as well.
60 1036488
61 1037413
62 1036429
63 990239
64 993218
65 993233
66 993201
67 993234
68 993219
69 993208
70 992225
71 980560
--L
diff -ur e1000.orig/e1000_main.c e1000/e1000_main.c
--- e1000.orig/e1000_main.c 2004-12-04 11:43:12.000000000 +0100
+++ e1000/e1000_main.c 2004-12-05 15:40:49.284946897 +0100
@@ -879,6 +894,8 @@
E1000_WRITE_REG(&adapter->hw, TCTL, tctl);
+ E1000_WRITE_REG(&adapter->hw, TXDMAC, 0);
+
e1000_config_collision_dist(&adapter->hw);
/* Setup Transmit Descriptor Settings for eop descriptor */
|