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

From: Ryan Stone <rysto32_at_gmail.com>
Date: Thu, 3 Feb 2011 19:25:54 -0500
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.
Received on Thu Feb 03 2011 - 23:25:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:11 UTC