From owner-cvs-all@FreeBSD.ORG Sat Mar 27 11:50:23 2004 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B46D216A4CE; Sat, 27 Mar 2004 11:50:23 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id ADA2643D41; Sat, 27 Mar 2004 11:50:23 -0800 (PST) (envelope-from alc@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i2RJoNGe033781; Sat, 27 Mar 2004 11:50:23 -0800 (PST) (envelope-from alc@repoman.freebsd.org) Received: (from alc@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i2RJoN9P033780; Sat, 27 Mar 2004 11:50:23 -0800 (PST) (envelope-from alc) Message-Id: <200403271950.i2RJoN9P033780@repoman.freebsd.org> From: Alan Cox Date: Sat, 27 Mar 2004 11:50:23 -0800 (PST) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/kern subr_param.c sys_pipe.c src/sys/sys pipe.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Mar 2004 19:50:23 -0000 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