Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Aug 2000 16:00:44 -0600
From:      "Kenneth D. Merry" <ken@kdm.org>
To:        net@FreeBSD.ORG
Subject:   new zero copy sockets and NFS snapshot
Message-ID:  <20000804160044.A54375@panzer.kdm.org>

next in thread | raw e-mail | index | archive | help
[ -arch and -current BCC'ed for wider coverage, please direct followups to
-net and/or me ]

I have put a new copy of the zero copy sockets and NFS patches, against
-current as of early August 3rd, 2000, here:

http://people.FreeBSD.ORG/~ken/zero_copy/

Feedback would be very welcome, we haven't gotten much response on this
yet.

Besides being generated against a newer version of -current, the following
things have changed in the new patches posted above:

 - Support has been merged in from -current for Alteon and Netgear
   1000baseT boards.  Initial tests with Alteon boards indicate that
   their performance is identical to the 1000baseSX model.

 - The zero copy send support code has been renamed and moved to a
   new file, src/sys/kern/uipc_cow.c.

 - Drew Gallatin has made some performance enhancements in the ti(4)
   driver that decrease receive-side CPU utilization and increase
   performance somewhat.  (CPU utilization changes are hard to quantify,
   but are probably in the 10-20% range.  TCP performance on my test
   Pentium II 350's increased from about 746Mbps to about 763Mbps, as
   measured by netperf.)

 - Drew Gallatin submitted a fix to the IP fragmenting code to make sure
   that outgoing fragments are 8-byte aligned.

 - Incorporated Bill Paul's fixes to Alteon's 12.4.11 firmware that
   hopefully include most of the true bugfixes to their 12.4.13 firmware.

   Alteon's 12.4.13 firmware, when used with 1000BaseT boards, doesn't
   seem to autonegotiate anything other than 1000BaseT, and also doesn't
   like to be forced to a speed other than 1000Mbps.

   Alteon hasn't yet responded to queries about the problems with version
   12.4.13 of their firmware, so we're using version 12.4.11 with some
   selected fixes from 12.4.13.  This seems to properly negotiate at all
   supported speeds and duplex settings with 1000baseT boards.

 - Header splitting is now restricted to Tigon 2 boards only.  We only
   have source for firmware for the Tigon 2, thus the reason header
   splitting is only supported for those chips.

 - Drew Gallatin's NFS read header splitting code is now included
   in the firmware.  This can dramatically improve NFS read performance.

 - There is a new references section in the FAQ that includes pointers
   to some relevant papers and proposals.

For those of you who missed the previous messages about this code (that went
out to -net, -arch and -current), here's a quick list of what is included
in the code:

 - Two sets of zero copy send code, written by Drew Gallatin
   <gallatin@FreeBSD.ORG> and Robert Picco <picco@wevinc.com>.

 - Zero copy receive code, written by Drew Gallatin.

 - Zero copy NFS code, written by Drew Gallatin.

 - Header splitting firmware for Alteon's Tigon II boards (written by me),
   based on version 12.4.11 of their firmware.  This is used in combination
   with the zero copy receive code to guarantee that the payload of TCP or
   UDP packet is placed into a page-aligned buffer.

 - Alteon firmware debugging ioctls and supporting routines for the Tigon
   driver (also written by me).  This will help anyone who is doing
   firmware development under FreeBSD for the Tigon boards.

Ken
-- 
Kenneth Merry
ken@kdm.org


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?20000804160044.A54375>