cvs commit: src/sys/kern kern_subr.c uipc_jumbo.c uipc_syscalls.c
vfs_bio.c src/sys/sparc64/sparc64 pmap.c src/sys/vm vm_contig.c
vm_glue.c vm_object.c vm_page.c vm_pageout.c
Alan Cox
alc at FreeBSD.org
Wed Nov 3 12:17:32 PST 2004
alc 2004-11-03 20:17:32 UTC
FreeBSD src repository
Modified files:
sys/kern kern_subr.c uipc_jumbo.c uipc_syscalls.c
vfs_bio.c
sys/sparc64/sparc64 pmap.c
sys/vm vm_contig.c vm_glue.c vm_object.c
vm_page.c vm_pageout.c
Log:
The synchronization provided by vm object locking has eliminated the
need for most calls to vm_page_busy(). Specifically, most calls to
vm_page_busy() occur immediately prior to a call to vm_page_remove().
In such cases, the containing vm object is locked across both calls.
Consequently, the setting of the vm page's PG_BUSY flag is not even
visible to other threads that are following the synchronization
protocol.
This change (1) eliminates the calls to vm_page_busy() that
immediately precede a call to vm_page_remove() or functions, such as
vm_page_free() and vm_page_rename(), that call it and (2) relaxes the
requirement in vm_page_remove() that the vm page's PG_BUSY flag is
set. Now, the vm page's PG_BUSY flag is set only when the vm object
lock is released while the vm page is still in transition. Typically,
this is when it is undergoing I/O.
Revision Changes Path
1.90 +0 -2 src/sys/kern/kern_subr.c
1.11 +0 -1 src/sys/kern/uipc_jumbo.c
1.205 +0 -1 src/sys/kern/uipc_syscalls.c
1.464 +0 -2 src/sys/kern/vfs_bio.c
1.140 +0 -1 src/sys/sparc64/sparc64/pmap.c
1.40 +0 -2 src/sys/vm/vm_contig.c
1.206 +0 -2 src/sys/vm/vm_glue.c
1.333 +0 -3 src/sys/vm/vm_object.c
1.298 +5 -14 src/sys/vm/vm_page.c
1.265 +0 -2 src/sys/vm/vm_pageout.c
More information about the cvs-src
mailing list