> 
>   > a stock freebsd system can't do more than 20K ~ 100K pkts/second due to
>   > many bottlenecks
> 
> I'd be interested in knowing where those bottlenecks were and fixing them.

one of them is the (relatively high) interrupt overhead,
as reported by many. There is a good description of the problem
in the Click's paper at http://www.pdos.lcs.mit.edu/click/ and
in the Mogul's paper referenced in there.

In line with what is suggested above, reducing this overhead requires
a solution that involves some form of polling. This gives you
a lot of improvement in performance, maybe by a factor of 3 or so.

The approach we are trying is based on some very simple modifications
to the interrupt dispatcher.  Basically the idea is to run with
e.g. HZ=2000 or so, and disable interrupts on a line for the rest
of a tick after you get more than X interrupts per tick (with small
X).

The system remains decently responsive, because you are re-enabling
ints at the next clock tick (in 500us or less), or when you enter
the idle loop; and when you happen to call ether_output() you have
a chance to poll the device.

The advantage of this approach is that you don't have to implement
a real polling system (which can become expensive when the number
of cards in a box becomes large), and that modifications are
relatively small and, especially, device-independent.  Hopefully
we will be able to post them soon, after a bit more experiments.

After this change, using FASTFORWARDING seems to save
another 20-30% on the per-packet processing time.

        cheers
        luigi
-----------------------------------+-------------------------------------
  Luigi RIZZO, [EMAIL PROTECTED]  . Dip. di Ing. dell'Informazione
  http://www.iet.unipi.it/~luigi/  . Universita` di Pisa
  TEL/FAX: +39-050-568.533/522     . via Diotisalvi 2, 56126 PISA (Italy)
  Mobile   +39-347-0373137
-----------------------------------+-------------------------------------

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to