Ethernet Drivers: Question on Sending Received Packets to the FreeBSD Network Stack

Ryan Stone rysto32 at gmail.com
Fri Feb 4 00:25:55 UTC 2011


On Thu, Feb 3, 2011 at 2:48 PM, Julian Elischer <julian at freebsd.org> wrote:
> I had never considered passing a set of packets, but after my initial
> scoffing thoughts I realized that it would actually be a very interesting
> thought experiment to see if the ability to do that would be advantageous in
> any way. I tmay be a way to reduce some sorts of
> overhead if using interrupt mitigation.

At $WORK we've put a rather considerable amount of effort into writing
what I'd call a poor-man's version of netgraph.  Originally, in fact,
our application was entirely netgraph-based back when we were running
on FreeBSD 4.  What we ended up implementing was the minimal set of
netgraph features our application needed, optimized for performance.
Passing packets around in batches was one of the performance
optimizations.  There are some pretty big wins with that approach:
amortization of locking costs and other overhead, better cache
locality and it's easier to prefetch the data from packet n while
processing packet n-1.

If I get some time I'll see if I can get something by the way of hard
numbers as to the advantages on our application.


More information about the freebsd-current mailing list