cvs commit: src/sys/kern subr_param.c sys_pipe.c src/sys/sys
pipe.h
Alan Cox
alc at cs.rice.edu
Sat Mar 27 12:22:16 PST 2004
On Sat, Mar 27, 2004 at 11:50:23AM -0800, Alan Cox wrote:
> alc 2004/03/27 11:50:23 PST
>
> FreeBSD src repository
>
> Modified files:
> sys/kern subr_param.c sys_pipe.c
> sys/sys pipe.h
> Log:
> Revise the direct or optimized case to use uiomove_fromphys() by the reader
> instead of ephemeral mappings using pmap_qenter() by the writer. The
> writer is still, however, responsible for wiring the pages, just not
> mapping them. Consequently, the allocation of KVA for the direct case is
> unnecessary. Remove it and the sysctls limiting it, i.e.,
> kern.ipc.maxpipekvawired and kern.ipc.amountpipekvawired. The number
> of temporarily wired pages is still, however, limited by
> kern.ipc.maxpipekva.
>
> Note: On platforms lacking a direct virtual-to-physical mapping,
> uiomove_fromphys() uses sf_bufs to cache ephemeral mappings. Thus,
> the number of available sf_bufs can influence the performance of pipes
> on platforms such i386. Surprisingly, I saw the greatest gain from this
> change on such a machine: lmbench's pipe bandwidth result increased from
> ~1050MB/s to ~1850MB/s on my 2.4GHz, 400MHz FSB P4 Xeon.
>
> Revision Changes Path
> 1.62 +1 -6 src/sys/kern/subr_param.c
> 1.171 +18 -60 src/sys/kern/sys_pipe.c
> 1.27 +0 -2 src/sys/sys/pipe.h
I would appreciate receiving before and after lmbench bw_pipe results
from others. Obviously, I have P4 results. I also have amd64 results.
Thanks,
Alan
More information about the cvs-src
mailing list