Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Mar 2001 18:46:54 -0700
From:      "Kenneth D. Merry" <ken@kdm.org>
To:        Rohit Rakshe <rakshe@cs.umn.edu>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Copying user <---> kernel
Message-ID:  <20010313184654.A92223@panzer.kdm.org>
In-Reply-To: <Pine.GSO.4.31.0103131919190.21506-100000@mercury.cs.umn.edu>; from rakshe@cs.umn.edu on Tue, Mar 13, 2001 at 07:41:50PM -0600
References:  <Pine.GSO.4.31.0103131919190.21506-100000@mercury.cs.umn.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 13, 2001 at 19:41:50 -0600, Rohit Rakshe wrote:
> Hello,
> 
> I am sure people have thought about this one, but just that I could not
> find any discussions about it:
> 
> Consider a server which receives data over network, does some operations
> on the data and sends it back over the network. The kernel could spent
> most of its time copying data to and from user space. (the operations are
> performed in the user space).
> 
> The following can be done to avoid this overhead:
> 
> Say, I want to copy a page from user space to kernel, I can just pin it in
> physical memory; then attach it to kernel page table. (similar thing for
> other way round).
> 
> Is this kinda thing implemented ? If not, is it feasible ?

Yes, it has been done.  See:

http://people.FreeBSD.org/~ken/zero_copy/

The version of the patches linked off the page isn't the latest, the latest
is here:

http://people.FreeBSD.org/~ken/zero_copy/zero_copy.diffs.20010124

Those diffs are against -current as of January 24th.  I can probably supply
diffs against a newer version of -current if you need 'em.

The NFS code isn't ready for prime time, I need to rip that out and clean
up some mutex issues before the code can go into -current.

Ken
-- 
Kenneth Merry
ken@kdm.org

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




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