From owner-cvs-all@FreeBSD.ORG Fri Feb 3 00:16:38 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org 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 87AB716A422; Fri, 3 Feb 2006 00:16:38 +0000 (GMT) (envelope-from peter@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E403243D5D; Fri, 3 Feb 2006 00:16:37 +0000 (GMT) (envelope-from peter@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k130Gbsx032455; Fri, 3 Feb 2006 00:16:37 GMT (envelope-from peter@repoman.freebsd.org) Received: (from peter@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k130GbmC032454; Fri, 3 Feb 2006 00:16:37 GMT (envelope-from peter) Message-Id: <200602030016.k130GbmC032454@repoman.freebsd.org> From: Peter Wemm Date: Fri, 3 Feb 2006 00:16:37 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/amd64/amd64 pmap.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 03 Feb 2006 00:16:38 -0000 peter 2006-02-03 00:16:37 UTC FreeBSD src repository Modified files: sys/amd64/amd64 pmap.c Log: Make PV entries dynamic on amd64. i386 has a pre-reserved block of kva dedicated to storing pv entries, originally so that kva didn't have to be allocated at inconvenient times. For amd64, we can get the same effect by using the direct map area. Allocating pages is the same as with the object backed method, but now we can just lookup the page in the direct map area. Thus, no more pageable kva is reserved. This is the single largest consumer of kva on our work machines and this change should help conserve the fixed size 2GB pageable kva on the amd64 kernel. There are a pair of sysctl nodes introduced, named the same as their tunable counterparts. vm.pmap.shpgperproc and vm.pmap.pv_entry_max They work just like the tunables of the same path, except the values are linked. The pv entry cap is now dynamically changeable. I didn't make them totally unlimited because we need some sort of safety limit still. One could consume all physical memory without a cap. Revision Changes Path 1.536 +36 -6 src/sys/amd64/amd64/pmap.c