DragonFly commits List (threaded) for 2008-07
DragonFly BSD
DragonFly commits List (threaded) for 2008-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: cvs commit: src/sys/dev/netif/nfe if_nfe.c if_nfevar.h

To: Sepherosa Ziehau <sephe@xxxxxxxxxxxxxxxxxxxxxxx>
From: Michael Neumann <mneumann@xxxxxxxx>
Date: Wed, 09 Jul 2008 12:27:44 +0200

Sepherosa Ziehau wrote:
sephe 2008/07/05 00:29:44 PDT

DragonFly src repository

Modified files:
sys/dev/netif/nfe if_nfe.c if_nfevar.h Log:
Use hardware timer to simulate interrupt moderation.
hw.nfeX.imtimer -> 0 no interrupt moderation at all.

With this setting I get:

  intr 10 at 40001/40000 hz, livelocked limit engaged!
  intr 10 at 3258/20000 hz, livelock removed

and transfer speed of around 30 MB/sec.

  hw.nfeX.imtimer -> -Y hardware timer simulated interrupt moderation,
                        the simultated interrupt moderation timer will
                        be set to Y.

A value of -125 here increases transfer speed to >90 MB/sec and shows no livelocks.

Note that this is measured transfering a big file from hammer which is
saved to /dev/null on the client side as otherwise my laptops hard disk
would be the limiting factor.

A value of 92-97 MB/sec is pretty good I think (for ftp). I'm looking
for a better way to test the throughput of the box (I don't want to be
the servers hard-disk the limiting factor). Any recommendations? I tried
netcat but that doesn't seem to work. Note that my client is FreeBSD
(and network interface bge).

Could I expect an even higher throughput when setting hw.nfeX.imtimer to
-250 (together with changing the rx_ring_count)?

Thanks for this great work!



hw.nfeX.imtimer -> Y hardware timer only interrupt moderation,
hardware timer will be set to Y.
Set hw.nfeX.imtimer to -125 (8000Hz) should work on most system.
With heavier interrupt moderation (e.g. hw.nfeX.imtimer to -250), it is
recommended to increase hw.nfe.rx_ring_count tunable to a higher value
(e.g. 512), since the default value (128) is obviously too small.
Revision Changes Path
1.31 +104 -43 src/sys/dev/netif/nfe/if_nfe.c
1.9 +6 -3 src/sys/dev/netif/nfe/if_nfevar.h

http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/nfe/if_nfe.c.diff?r1=1.30&r2=1.31&f=u http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/nfe/if_nfevar.h.diff?r1=1.8&r2=1.9&f=u

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]