From owner-cvs-src-old@FreeBSD.ORG Sat Apr 24 17:37:27 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC13E1065670 for ; Sat, 24 Apr 2010 17:37:27 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BCDAA8FC08 for ; Sat, 24 Apr 2010 17:37:27 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3OHbRmG050213 for ; Sat, 24 Apr 2010 17:37:27 GMT (envelope-from alc@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3OHbRP7050212 for cvs-src-old@freebsd.org; Sat, 24 Apr 2010 17:37:27 GMT (envelope-from alc@repoman.freebsd.org) Message-Id: <201004241737.o3OHbRP7050212@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to alc@repoman.freebsd.org using -f From: Alan Cox Date: Sat, 24 Apr 2010 17:32:52 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/amd64/amd64 pmap.c src/sys/arm/arm pmap.c src/sys/i386/i386 pmap.c src/sys/i386/xen pmap.c src/sys/ia64/ia64 pmap.c src/sys/mips/mips pmap.c src/sys/powerpc/aim mmu_oea.c mmu_oea64.c src/sys/powerpc/booke pmap.c src/sys/powerpc/powerpc ... X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Apr 2010 17:37:28 -0000 alc 2010-04-24 17:32:52 UTC FreeBSD src repository Modified files: sys/amd64/amd64 pmap.c sys/arm/arm pmap.c sys/i386/i386 pmap.c sys/i386/xen pmap.c sys/ia64/ia64 pmap.c sys/mips/mips pmap.c sys/powerpc/aim mmu_oea.c mmu_oea64.c sys/powerpc/booke pmap.c sys/powerpc/powerpc mmu_if.m pmap_dispatch.c sys/sparc64/sparc64 pmap.c sys/sun4v/sun4v pmap.c sys/vm pmap.h vm_mmap.c Log: SVN rev 207155 on 2010-04-24 17:32:52Z by alc Resurrect pmap_is_referenced() and use it in mincore(). Essentially, pmap_ts_referenced() is not always appropriate for checking whether or not pages have been referenced because it clears any reference bits that it encounters. For example, in mincore(), clearing the reference bits has two negative consequences. First, it throws off the activity count calculations performed by the page daemon. Specifically, a page on which mincore() has called pmap_ts_referenced() looks less active to the page daemon than it should. Consequently, the page could be deactivated prematurely by the page daemon. Arguably, this problem could be fixed by having mincore() duplicate the activity count calculation on the page. However, there is a second problem for which that is not a solution. In order to clear a reference on a 4KB page, it may be necessary to demote a 2/4MB page mapping. Thus, a mincore() by one process can have the side effect of demoting a superpage mapping within another process! Revision Changes Path 1.689 +45 -3 src/sys/amd64/amd64/pmap.c 1.120 +14 -0 src/sys/arm/arm/pmap.c 1.671 +47 -3 src/sys/i386/i386/pmap.c 1.34 +29 -3 src/sys/i386/xen/pmap.c 1.214 +32 -3 src/sys/ia64/ia64/pmap.c 1.41 +15 -3 src/sys/mips/mips/pmap.c 1.135 +11 -0 src/sys/powerpc/aim/mmu_oea.c 1.22 +11 -0 src/sys/powerpc/aim/mmu_oea64.c 1.23 +29 -0 src/sys/powerpc/booke/pmap.c 1.13 +14 -0 src/sys/powerpc/powerpc/mmu_if.m 1.21 +8 -0 src/sys/powerpc/powerpc/pmap_dispatch.c 1.188 +21 -0 src/sys/sparc64/sparc64/pmap.c 1.49 +11 -0 src/sys/sun4v/sun4v/pmap.c 1.89 +1 -0 src/sys/vm/pmap.h 1.238 +1 -3 src/sys/vm/vm_mmap.c