From owner-cvs-src@FreeBSD.ORG Sat Mar 27 12:22:16 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A9D2516A4CE; Sat, 27 Mar 2004 12:22:16 -0800 (PST) Received: from cs.rice.edu (cs.rice.edu [128.42.1.30]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6B87643D2F; Sat, 27 Mar 2004 12:22:16 -0800 (PST) (envelope-from alc@cs.rice.edu) Received: from localhost (calypso.cs.rice.edu [128.42.1.127]) by cs.rice.edu (Postfix) with ESMTP id BB4C84AC67; Sat, 27 Mar 2004 14:22:15 -0600 (CST) Received: from cs.rice.edu ([128.42.1.30]) by localhost (calypso.cs.rice.edu [128.42.1.127]) (amavisd-new, port 10024) with LMTP id 08128-01-87; Sat, 27 Mar 2004 14:22:15 -0600 (CST) Received: by cs.rice.edu (Postfix, from userid 19572) id 3A3544AB89; Sat, 27 Mar 2004 14:22:12 -0600 (CST) Date: Sat, 27 Mar 2004 14:22:11 -0600 From: Alan Cox To: Alan Cox Message-ID: <20040327202211.GT19961@cs.rice.edu> References: <200403271950.i2RJoN9P033780@repoman.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200403271950.i2RJoN9P033780@repoman.freebsd.org> User-Agent: Mutt/1.3.28i X-Virus-Scanned: by amavis-20030616-p7 at cs.rice.edu cc: cvs-src@FreeBSD.org cc: src-committers@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 X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Mar 2004 20:22:16 -0000 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