Date: Sat, 27 Mar 2004 14:22:11 -0600 From: Alan Cox <alc@cs.rice.edu> To: Alan Cox <alc@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern subr_param.c sys_pipe.c src/sys/sys pipe.h Message-ID: <20040327202211.GT19961@cs.rice.edu> In-Reply-To: <200403271950.i2RJoN9P033780@repoman.freebsd.org> References: <200403271950.i2RJoN9P033780@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040327202211.GT19961>