Subject: Re: Kernel copyin/out optimizations for ARM... : revisited
To: Reinoud Zandijk <reinoud@netbsd.org>
From: John Clark <j1clark@ucsd.edu>
List: port-arm
Date: 03/23/2002 12:59:14
Am Samstag den, 23. M=E4rz 2002, um 12:30, schrieb Reinoud Zandijk:
>
> Shouldn't we rather look at ways to shift/replace memory pages between
> userland and kernel? or otherwise change the API to make it possible? =
I
> think thats more the way to go than trying to keep on copying stuff...=20=

> that
> was the way of the old memory system.
>

There's an example of mapping between processes which are
using a pipe to pass data in FreeBSD and there's a similar segment
of code in the NetBSD source set so I'm told. I've not tried to get the=20=

NetBSD
version working, nor I have not looked at how one could check in sa=20
uiomove
to do something for more general I/O transfers.

I've also not instrumented my kernel to see how often and of what size
uiomove is called to do... but a hand walk through seemed to indicate=20
that
for 'send/recv' and large data there is room for improvement if the data
is not picked  up and put down once the kernel is called, and of course
presuming the eventual IO device can do scatter/gather operations on
relatively haphazardly aligned data segments...