Date: Thu, 10 Jun 2010 16:56:35 +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: <201006101656.o5AGuv1g043482@repoman.freebsd.org>
index | next in thread | raw e-mail
alc 2010-06-10 16:56:35 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_page.c vm_page.h vm_pageout.c
Log:
SVN rev 208990 on 2010-06-10 16:56:35Z by alc
Reduce the scope of the page queues lock and the number of
PG_REFERENCED changes in vm_pageout_object_deactivate_pages().
Simplify this function's inner loop using TAILQ_FOREACH(), and shorten
some of its overly long lines. Update a stale comment.
Assert that PG_REFERENCED may be cleared only if the object containing
the page is locked. Add a comment documenting this.
Assert that a caller to vm_page_requeue() holds the page queues lock,
and assert that the page is on a page queue.
Push down the page queues lock into pmap_ts_referenced() and
pmap_page_exists_quick(). (As of now, there are no longer any pmap
functions that expect to be called with the page queues lock held.)
Neither pmap_ts_referenced() nor pmap_page_exists_quick() should ever
be passed an unmanaged page. Assert this rather than returning "0"
and "FALSE" respectively.
ARM:
Simplify pmap_page_exists_quick() by switching to TAILQ_FOREACH().
Push down the page queues lock inside of pmap_clearbit(), simplifying
pmap_clear_modify(), pmap_clear_reference(), and pmap_remove_write().
Additionally, this allows for avoiding the acquisition of the page
queues lock in some cases.
PowerPC/AIM:
moea*_page_exits_quick() and moea*_page_wired_mappings() will never be
called before pmap initialization is complete. Therefore, the check
for moea_initialized can be eliminated.
Push down the page queues lock inside of moea*_clear_bit(),
simplifying moea*_clear_modify() and moea*_clear_reference().
The last parameter to moea*_clear_bit() is never used. Eliminate it.
PowerPC/BookE:
Simplify mmu_booke_page_exists_quick()'s control flow.
Reviewed by: kib@
Revision Changes Path
1.704 +20 -13 src/sys/amd64/amd64/pmap.c
1.128 +16 -22 src/sys/arm/arm/pmap.c
1.685 +19 -13 src/sys/i386/i386/pmap.c
1.45 +13 -9 src/sys/i386/xen/pmap.c
1.223 +14 -14 src/sys/ia64/ia64/pmap.c
1.62 +15 -10 src/sys/mips/mips/pmap.c
1.143 +22 -30 src/sys/powerpc/aim/mmu_oea.c
1.29 +21 -33 src/sys/powerpc/aim/mmu_oea64.c
1.32 +17 -17 src/sys/powerpc/booke/pmap.c
1.199 +15 -9 src/sys/sparc64/sparc64/pmap.c
1.59 +13 -11 src/sys/sun4v/sun4v/pmap.c
1.410 +9 -7 src/sys/vm/vm_page.c
1.170 +3 -0 src/sys/vm/vm_page.h
1.324 +30 -38 src/sys/vm/vm_pageout.c
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006101656.o5AGuv1g043482>
