> :extend (using truncate) and then mmap() the destination file, then
> :read() directly into the mmap()'d portion.
> :
> :I'd like to see what numbers you get. :)

>     read + write is a better way to do it.  It is still possible to
>     double buffer.  In this case simply create a small anonymous shared
>     mmap that fits in the L2 cache (like 128K), setup a pipe, fork, and 
>     have one process read() from the source while the other write()s to the
>     destination.  The added overhead is actually less then 'one buffer copy'
>     worth if the added buffering fits in the L1 or L2 cache.

It seems silly to implement something as trivial and straightforward as
copying a file in userland. The process designated to copy a file just
sits in a tight loop invoking the read()/write() syscalls
repeatedly. Since this operation is already system bound and very simple,
what's the arguement against absorbing it into the kernel?

-MB



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to