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>
index | next in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005261803.o4QI3LfT088097>
