Date: Tue, 03 Jul 2001 10:57:28 +0200 From: Anders Lowinger <anders.lowinger@xelerated.com> To: Luigi Rizzo <luigi@info.iet.unipi.it> Cc: Jeffrey Hsu <hsu@FreeBSD.ORG>, Bakul Shah <bakul@bitblocks.com>, freebsd-net@FreeBSD.ORG Subject: Re: fastforwarding? Message-ID: <3B4188F8.5040202@xelerated.com> References: <200107022109.XAA38398@info.iet.unipi.it>
next in thread | previous in thread | raw e-mail | index | archive | help
Another way to do it is to switch/route multiple packets per interrupt. This is a solution a large router vendor does... -Anders > 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, luigi@iet.unipi.it . 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 majordomo@FreeBSD.org > with "unsubscribe freebsd-net" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B4188F8.5040202>