Date: Sun, 7 Feb 1999 16:37:36 -0800 (PST) From: Matt Dillon <dillon@FreeBSD.ORG> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: cvs commit: src/sys/alpha/alpha vm_machdep.c src/sys/i386/i386 vm_machdep.c src/sys/vm vm_page.c vm_page.h vm_pageout.c Message-ID: <199902080037.QAA79913@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
dillon 1999/02/07 16:37:36 PST
Modified files:
sys/alpha/alpha vm_machdep.c
sys/i386/i386 vm_machdep.c
sys/vm vm_page.c vm_page.h vm_pageout.c
Log:
Rip out PQ_ZERO queue. PQ_ZERO functionality is now combined in with
PQ_FREE. There is little operational difference other then the kernel
being a few kilobytes smaller and the code being more readable.
* vm_page_select_free() has been *greatly* simplified.
* The PQ_ZERO page queue and supporting structures have been removed
* vm_page_zero_idle() revamped (see below)
PG_ZERO setting and clearing has been migrated from vm_page_alloc()
to vm_page_free[_zero]() and will eventually be guarenteed to remain
tracked throughout a page's life ( if it isn't already ).
When a page is freed, PG_ZERO pages are appended to the appropriate
tailq in the PQ_FREE queue while non-PG_ZERO pages are prepended.
When locating a new free page, PG_ZERO selection operates from within
vm_page_list_find() ( get page from end of queue instead of beginning
of queue ) and then only occurs in the nominal critical path case. If
the nominal case misses, both normal and zero-page allocation devolves
into the same _vm_page_list_find() select code without any specific
zero-page optimizations.
Additionally, vm_page_zero_idle() has been revamped. Hysteresis has been
added and zero-page tracking adjusted to conform with the other changes.
Currently hysteresis is set at 1/3 (lo) and 1/2 (hi) the number of free
pages. We may wish to increase both parameters as time permits. The
hysteresis is designed to avoid silly zeroing in borderline allocation/free
situations.
Revision Changes Path
1.9 +7 -6 src/sys/alpha/alpha/vm_machdep.c
1.117 +23 -19 src/sys/i386/i386/vm_machdep.c
1.125 +34 -91 src/sys/vm/vm_page.c
1.55 +28 -14 src/sys/vm/vm_page.h
1.136 +2 -2 src/sys/vm/vm_pageout.c
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902080037.QAA79913>
