From owner-cvs-src@FreeBSD.ORG Wed Jul 14 07:13:35 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 DC10116A4CE; Wed, 14 Jul 2004 07:13:35 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D3FC743D2F; Wed, 14 Jul 2004 07:13:35 +0000 (GMT) (envelope-from peter@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i6E7DZdK094487; Wed, 14 Jul 2004 07:13:35 GMT (envelope-from peter@repoman.freebsd.org) Received: (from peter@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i6E7DZb8094486; Wed, 14 Jul 2004 07:13:35 GMT (envelope-from peter) Message-Id: <200407140713.i6E7DZb8094486@repoman.freebsd.org> From: Peter Wemm Date: Wed, 14 Jul 2004 07:13:35 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/amd64/amd64 pmap.c src/sys/amd64/include pmap.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: Wed, 14 Jul 2004 07:13:36 -0000 peter 2004-07-14 07:13:35 UTC FreeBSD src repository Modified files: sys/amd64/amd64 pmap.c sys/amd64/include pmap.h Log: Like on i386, eliminate pv_ptem (which was suggested by alc). This reduces the size of the pv_entry structure a small but significant amount. This is implemented a little differently because it isn't so cheap to get the physical address of the page tabke page on amd64.. instead of it being directly accessible from the top level page directory, it is now two additional tree levels down. However.. In almost all cases, we recently had the physical address if the page table page a short while before we needed it, but it slipped through our fingers. This patch saves it for when we do need it. Also, for the one case where we do not have the ptp paddr, we are always running in curproc context and so we can do a vtopte-like trick. I've implemented vtopde() for this purpose. There is still a CYA entry in pmap_unuse_pt() that needs to be removed. I think it can be removed now but I forgot to test with it gone. Revision Changes Path 1.484 +58 -29 src/sys/amd64/amd64/pmap.c 1.121 +0 -1 src/sys/amd64/include/pmap.h