From owner-cvs-all Sun Feb 7 16:37:41 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id QAA13086 for cvs-all-outgoing; Sun, 7 Feb 1999 16:37:41 -0800 (PST) (envelope-from owner-cvs-all@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id QAA13079; Sun, 7 Feb 1999 16:37:40 -0800 (PST) (envelope-from dillon@FreeBSD.org) From: Matt Dillon Received: (from dillon@localhost) by freefall.freebsd.org (8.9.2/8.9.2) id QAA79913; Sun, 7 Feb 1999 16:37:36 -0800 (PST) (envelope-from dillon@FreeBSD.org) Date: Sun, 7 Feb 1999 16:37:36 -0800 (PST) Message-Id: <199902080037.QAA79913@freefall.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 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk 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