Subject: Re: Kernel copyin/out optimizations for ARM...
To: None <Richard.Earnshaw@arm.com>
From: John Clark <j1clark@ucsd.edu>
List: port-arm
Date: 03/18/2002 07:13:19
Am Montag den, 18. M=E4rz 2002, um 05:38, schrieb Richard Earnshaw:

> As far as I could tell from some experiments I ran, the predominant =
use=20
> of
> copyin/copyout was for exec().

Well, where I tuned into this was hand tracing recv()/send() network
operations, or then use of the 'pipe' to transfer data. In either case,
there's a 'uiomove' which uses copyin/out. Now for the 'strange' thing,
there's a chunk of code in 'sys_pipe' which has a #define __FreeBSD__
which appears to map pages from the sender to the receiver without
any copy of the actual data at all...

Unfortunately due to a problem with my working Linksys PCMCIA card,
and the inability to get PCMPC100 useful for NetBSD, I'm not able to =
test
out an instramented kernel on my XScale processor to see how much
uiomove calls copyin/out or what would happen if I enabled __FreeBSD__.

My ultimate goal is to see if there is anything that can be done to =
speed
up the user/kernel transition which involves read/write of large buffers=20=

of
data.

At the present moment my tests with ttcp seem to indicate the 'per call'=20=

time
for a 8192 byte buffer is about 2 ms. Which is much longer than that I=20=

expected...
There's the issue of caching techniques as well, but even for a=20
Write-through
mode, I had expected better...