From owner-freebsd-current Mon May 20 7: 0:53 2002 Delivered-To: freebsd-current@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id 6C05837B40A; Mon, 20 May 2002 07:00:46 -0700 (PDT) Received: from moe.cs.duke.edu (moe.cs.duke.edu [152.3.140.74]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id KAA04481; Mon, 20 May 2002 10:00:45 -0400 (EDT) Received: (gallatin@localhost) by moe.cs.duke.edu (8.8.5/8.6.9) id KAA01645; Mon, 20 May 2002 10:00:45 -0400 (EDT) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15593.397.293842.890597@moe.cs.duke.edu> Date: Mon, 20 May 2002 10:00:45 -0400 (EDT) To: "Kenneth D. Merry" Cc: Don Bowman , current@FreeBSD.org, net@FreeBSD.org Subject: Re: new zero copy sockets patches available In-Reply-To: <20020518214509.C46216@panzer.kdm.org> References: <20020518214509.C46216@panzer.kdm.org> X-Mailer: VM 6.72 under 21.1 (patch 9) "Canyonlands" XEmacs Lucid Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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