Date: Fri, 04 Feb 2011 22:38:45 -0800 From: Julian Elischer <julian@freebsd.org> To: Ryan Stone <rysto32@gmail.com> Cc: "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>, David Somayajulu <david.somayajulu@qlogic.com> Subject: Re: Ethernet Drivers: Question on Sending Received Packets to the FreeBSD Network Stack Message-ID: <4D4CF075.4090400@freebsd.org> In-Reply-To: <AANLkTi=7hU_z5m1vvsfqa3wMMZo9Tz6FTzdFu8SnE1Wt@mail.gmail.com> References: <75E1A2A7D185F841A975979B0906BBA6774DD4D902@AVEXMB1.qlogic.org> <4D4B0682.4000201@freebsd.org> <AANLkTi=7hU_z5m1vvsfqa3wMMZo9Tz6FTzdFu8SnE1Wt@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2/3/11 4:25 PM, Ryan Stone wrote: > On Thu, Feb 3, 2011 at 2:48 PM, Julian Elischer<julian@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. That's actually one of the ways that we envisioned netgraph being used.. As a prototyping tool that would eventually be replaced by the same node code hooked together be a purpose-designed application. However we did too good a job in implementing it so that for a large percentage of the tasks the prototyping framework actually does well enough. The other use was for low speed L2 plumbing for WAN networking. > 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. >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D4CF075.4090400>