Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Nov 2000 10:04:25 -0700
From:      "Kenneth D. Merry" <ken@kdm.org>
To:        net@FreeBSD.org
Subject:   new zero copy sockets and NFS snapshot
Message-ID:  <20001121100425.A38926@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 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
   <gallatin@FreeBSD.ORG>.

 - 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
ken@kdm.org


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




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