Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 May 2002 10:00:45 -0400 (EDT)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        "Kenneth D. Merry" <ken@kdm.org>
Cc:        Don Bowman <don@sandvine.com>, current@FreeBSD.org, net@FreeBSD.org
Subject:   Re: new zero copy sockets patches available
Message-ID:  <15593.397.293842.890597@moe.cs.duke.edu>
In-Reply-To: <20020518214509.C46216@panzer.kdm.org>
References:  <FE045D4D9F7AED4CBFF1B3B813C85337676208@mail.sandvine.com> <20020518214509.C46216@panzer.kdm.org>

next in thread | previous in thread | raw e-mail | index | archive | help

Kenneth D. Merry writes:
 > > As a related question, will this work with the broadcom gigabit (bge)
 > > driver, which is the Tigon III? If not, what would it take to get
 > > it working?
 > 
 > Unfortunately, it won't work with the Tigon III.
 > 
 > If you can get firmware source for the Tigon III, I can probably get header
 > splitting working.  (The only way it wouldn't work is if they've offloaded
 > most of the packet processing into the hardware.)

I don't want this to sound too much like an advertisement, but since I
now work for Myricom, I feel obligated to point out that the other
adapters that this can be made to work with are Myricom Myrinet
interfaces (*)

Anyway, if this gets committed, I will enhance the Myricom GM-2
firmware to support page-flipping receives. I think my boss will
approve the work.  With FreeBSD & gm-2, we now see roughly 1.8Gb/sec
from iperf, but the receiver's CPU is maxed out.  It would be nice to
have some room left over to actually do something with the data ;)

 > The send side code will work on any NIC, and you can kludge up special case
 > header splitting on the receive side if the NIC allows you to break jumbo
 > frames into multiple chunks of data.  (This is what Drew originally did for
 > the Tigon II -- you just size the initial chunk of data so that it'll just
 > hold the ethernet header, IP header, TCP header and TCP options, and the
 > payload will "magically" end up page aligned.  This doesn't work for
 > protocols other than TCP, and it won't work if your TCP header changes in
 > length.)

This mostly doesn't work for TCP at all.  It does work for the
client-side zero-copy NFS read-response work I did where I page-flip
the received frame into the buffer cache.  This was something of a
hack, because I don't actually parse the rpcs, I just guess that the
data starts at a certain offset into the packet (which it does, 99% of
the time).  

Cheers,

Drew


(*) 2Gb/sec + 2Gb/sec.  See
http://www.myri.com/myrinet/product_list.html.  Before your jaw hits
the floor at the price per adapter, take into account how cheap the
switches are when compared to high-density gigabit ethernet switches.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15593.397.293842.890597>