Subject: Re: uvm and/vs splice() (was: re: Ongoing projects)
To: matthew green <mrg@eterna.com.au>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-kern
Date: 05/07/1999 12:17:21
On Fri, May 07, 1999 at 11:58:40PM +1000, matthew green wrote:
> 
> you can look at it both ways.  i like the splice() idea.  i want to,
> at the very basic level, join two fd's and pass the data between them.
> that's a common, useful operation.
> 
[...]
> 
> BTW:  the splice() thread has been hashed out here before;  please check
> the archives.

Actually, I don't believe it's been hashed out on a public list.  Chris
and I have kicked it around a fair bit but I think it has always been just
among other developers.

FWIW, splice() is the Original, Blessed (by CSRG, IIRC) Berkeley solution
for async I/O.  The newer interfaces that are pasted onto existing async I/O
mechanisms or only handle the network just aren't as good -- splice() is
a good _general purpose_ async I/O solution, as well as an accellerator for
disk-to-network I/O.  It can also splice network-to-network, which is also
tremendously useful.

The one issue with splice() is that Fall and Pasquale's implementation was
for Ultrix -- who _knows_ why -- and was available only to other Ultrix
source licensees.  I've tried to contact them about obtaining their
new source files, context diffs against Ultrix (which is approximately 
4.2BSD, which I have, so I could figure the rest out easily enough), or
both, but they don't seem to answer their email.  If by chance someone
reading this knows how to contact either of them, that'd be a great help.

-- 
Thor Lancelot Simon	                                      tls@rek.tjls.com
	"And where do all these highways go, now that we are free?"