Date: Sat, 12 Feb 2011 07:56:50 +0000 (GMT) From: Robert Watson <rwatson@FreeBSD.org> To: Santosh Rao Gururajan <santosh@fastsoft.com> Cc: freebsd-hackers@freebsd.org Subject: Re: ixgbe DMA question Message-ID: <alpine.BSF.2.00.1102120754260.75340@fledge.watson.org> In-Reply-To: <D13CB108B048BD47B69C0CA1E0B5C03201EF10E1@hq-es.FASTSOFT.COM> References: <D13CB108B048BD47B69C0CA1E0B5C03201EF10E1@hq-es.FASTSOFT.COM>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 11 Feb 2011, Santosh Rao Gururajan wrote: > I have a host machine with 2 ixgbe NICs. I am trying to pass the frames from > one NIC to the other with the lowest possible overhead to the host (high > speed bridge). I am wondering if I can do a rx-ring to tx-ring DMA copy > without creating a mbuf on the host. Is that possible? What are the risks? The only real risk is the simple matter of programming, I think. There's no reason not to it except that it involves modifying device drivers, memory models, etc. If you do what you describe, and you decide you do want to pass some frames up the stack, you can always hook up mbufs and use the external storage free routine to return the memory to the ring. Jeff Roberson has been circulating some patches that eliminate the mbuf<->cluster relationship in its current form, instead preferring variable size mbufs, and I can't help but wonder if with such a patch, that wouldn't be simpler than what you propose, offering many of the same performance benefits while making the device driver changes smaller and still allowing you to direct some packets up the stack if desired. Robert
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1102120754260.75340>