Date: Wed, 26 May 2010 18:00:44 +0000 (UTC) From: Alan Cox <alc@FreeBSD.org> To: cvs-src-old@freebsd.org 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/sparc64/sparc64 ... Message-ID: <201005261803.o4QI3LfT088097@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
alc 2010-05-26 18:00:44 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/sparc64/sparc64 pmap.c sys/sun4v/sun4v pmap.c sys/vm vm_map.c vm_mmap.c vm_page.c vnode_pager.c Log: SVN rev 208574 on 2010-05-26 18:00:44Z by alc Push down page queues lock acquisition in pmap_enter_object() and pmap_is_referenced(). Eliminate the corresponding page queues lock acquisitions from vm_map_pmap_enter() and mincore(), respectively. In mincore(), this allows some additional cases to complete without ever acquiring the page queues lock. Assert that the page is managed in pmap_is_referenced(). On powerpc/aim, push down the page queues lock acquisition from moea*_is_modified() and moea*_is_referenced() into moea*_query_bit(). Again, this will allow some additional cases to complete without ever acquiring the page queues lock. Reorder a few statements in vm_page_dontneed() so that a race can't lead to an old reference persisting. This scenario is described in detail by a comment. Correct a spelling error in vm_page_dontneed(). Assert that the object is locked in vm_page_clear_dirty(), and restrict the page queues lock assertion to just those cases in which the page is currently writeable. Add object locking to vnode_pager_generic_putpages(). This was the one and only place where vm_page_clear_dirty() was being called without the object being locked. Eliminate an unnecessary vm_page_lock() around vnode_pager_setsize()'s call to vm_page_clear_dirty(). Change vnode_pager_generic_putpages() to the modern-style of function definition. Also, change the name of one of the parameters to follow virtual memory system naming conventions. Reviewed by: kib Revision Changes Path 1.699 +10 -5 src/sys/amd64/amd64/pmap.c 1.125 +5 -2 src/sys/arm/arm/pmap.c 1.679 +10 -5 src/sys/i386/i386/pmap.c 1.41 +6 -4 src/sys/i386/xen/pmap.c 1.220 +6 -2 src/sys/ia64/ia64/pmap.c 1.52 +5 -2 src/sys/mips/mips/pmap.c 1.140 +9 -7 src/sys/powerpc/aim/mmu_oea.c 1.27 +9 -8 src/sys/powerpc/aim/mmu_oea64.c 1.29 +10 -5 src/sys/powerpc/booke/pmap.c 1.197 +13 -6 src/sys/sparc64/sparc64/pmap.c 1.55 +9 -1 src/sys/sun4v/sun4v/pmap.c 1.430 +1 -14 src/sys/vm/vm_map.c 1.241 +10 -3 src/sys/vm/vm_mmap.c 1.406 +12 -3 src/sys/vm/vm_page.c 1.263 +22 -18 src/sys/vm/vnode_pager.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005261803.o4QI3LfT088097>