[ -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 November 20th, 2000, here:
http://people.FreeBSD.ORG/~ken/zero_copy/
Questions, comments and feedback are welcome.
Besides being generated against a newer version of -current, the following
things have changed in the new patches posted above:
- The fix to the "localhost panic" problem has been revamped. We now use
a new external mbuf type, EXT_DISPOSABLE, to indicate that the external
mbuf payload may be page-flipped or otherwise discarded. Instead of
attempting to page flip any pages that meet the size and alignment
criteria, we now only page flip external mbufs marked as disposable.
(Thanks to Drew Gallatin for suggesting this approach.)
- The decision process on when to use vm_uiomove() versus vm_pgmoveco()
in uiomoveco() has been revamped somewhat. We no longer panic in any
case. Anything that isn't handled by vm_pgmoveco() (according to the
page flip criteria described above) is passed to vm_uiomove().
- uiomoveco() has been reorganized somewhat, with some of the
functionality split out into a subfunction.
There are no known problems with the code. If anyone wants to challenge
that, I'll gladly accept bug reports, code comments, etc. :)
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:
- Zero copy send and receive code, written by Drew Gallatin
<[EMAIL PROTECTED]>.
- 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.
The Alteon header splitting and debugging code was written for Pluto
Technologies (www.plutotech.com), which kindly agreed to let me release
the code.
Ken
--
Kenneth Merry
[EMAIL PROTECTED]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message