Skip site navigation (1)Skip section navigation (2)
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>