device polling takes more CPU hits??

Kelly Yancey kbyanc at posi.net
Mon Jul 26 19:56:41 PDT 2004


On Mon, 26 Jul 2004, Luigi Rizzo wrote:

> On Mon, Jul 26, 2004 at 01:18:46PM -0700, Kelly Yancey wrote:
> ...
> >   Out of curiousity, what sort of testing did you do to arrive at these
> > settings?  I did some testing a while back with a SmartBits box pumping
> > packets through a FreeBSD 2.8Ghz box configured to route between two em
> > gigabit interfaces; I found that changing the burst_max and each_burst
> > parameters had almost no effect on throughput (maximum 1% difference).
>
> fast boxes are pci-bus limited, not CPU limited(*) so changing the burst
> size (which basically amortizes some CPU costs) has little if any
> effect.
>
> (*) this doesn't mean that the box cannot livelock, as depending on
> the traffic on the bus, the CPU might stall for long intervals
> waiting for bus transactions to complete, and becomes unable to
> do anything at all. So you might still need polling.
>
> 	cheers
> 	luigi
>

  Oh, I found polling to be vastly superior to interrupts under load on
the test machine.  Not only did it avoid livelock, the throughput was
about 10Mbps higher for small (64-byte) frames.  I just didn't find much
difference whether I used small burst sizes versus large burst sizes.  It
may have had to do with the fact that both the sending and receiving
interfaces were gigabit em cards and were polling (no interrupts from the
NICs at all).

  Kelly

--
Kelly Yancey  -  kbyanc@{posi.net,FreeBSD.org}  -  kelly at nttmcl.com
Join distributed.net Team FreeBSD: http://www.posi.net/freebsd/Team-FreeBSD/


More information about the freebsd-net mailing list