Messages in this thread |  | | From | Stephan von Krawczynski <> | Date | Mon, 17 Sep 2001 00:29:27 +0100 | Subject | Re: broken VM in 2.4.10-pre9 |
| |
>
>>> (The new code is a simple state machine: >>> >>> - touch non-referenced page: set the reference bit >>> >>> - touch already referenced page: move it to next list "upwards" (ie the >>> active list) >>> >>> - age a non-referenced page on a list: move to "next" list downwards (ie >>> free if already inactive, move to inactive if currently active) >>> >>> - age a referenced page on a list: clear ref bit and move to beginning of >>> same list.
> > Are you sure about the _beginning_? You are aging out _all_ non-ref > > pages in the next step? > > Well, it depends on what your definition of "is" is.. > > Or rather, what the "beginning" is. The way things work now, is that all > pages are added to the "beginning", and the aging is done from the end, > moving pages at the end to other lists (or, in the case of a referenced > page, back to the beginning).
Wait a minute: if you age a page in active by clearing ref-bit and moving it to beginning of the list, and your next aging cycle starts from the end, that reads like you have to walk the whole list to find all the ageable pages for moving "downwards". In fact I expected your aging to start the list from the beginning, as there should be "most" of the non-ref entries, and you could stop age-walking hitting the first ref-page in that list. This was my guess when aging is used to find possible free pages _fast_. Am I wrong or is this idea generally not useable? Regards, Stephan - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |