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>