l4-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: self-paging


From: Emmanuel Colbus
Subject: Re: self-paging
Date: Sat, 10 Dec 2005 11:46:12 +0100
User-agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)

Jonathan S. Shapiro a écrit :

On Wed, 2005-12-07 at 11:30 +0100, Emmanuel Colbus wrote:
Jonathan S. Shapiro a écrit :

On Tue, 2005-12-06 at 00:05 +0100,
Emmanuel Colbus wrote:
On Sun, 04 Dec 2005 14:26:28 -0500, Jonathan S. Shapiro wrote:

I provisionally believe that if we want to use any sort of
LRU,
the gathering of age data must be performed by the kernel.
Since
the kernel needs to collect this data anyway,
Why does it?
Because the kernel is in a position to use the translation hardware
in order to measure this. Applications, generally speaking, are
not.

I meant : why does the kernel needs to collect the data *anyway*, that is,
even if we don't use any kind of LRU. Clearly, if this data has to be collected,
only the kernel can do it.

Because if it doesn't, it cannot tell which pages are active.

What do you mean, an active page? A page which is actively used? I
though the kernel should not care about that, except for LRU-like memory management. A page which is used by an application? Well, for this purpose, the kernel just needs to recall which pages he hasn't given to anybody, doesn't he?

Doing the
"accessed" check is where the expense is. Once you have that, the LRU is
just a counter.

Agreed.


Well, if the keeper doesn't know the order of page arrival, how
does
it decide what to throw out? Suppose we wanted to implement LRU in
the keeper, for example. How does it know?
It uses the "accessed" bit in the page table entry : if it is 0, the page
hasn't been accessed since the last time the keeper set it to 0, so its
new age is "previous age + 1 keeper cycle time"; if it is 1, its new age
is 0. At page arrival, "previous age" is set to 0 (or was set to 0 for long,
because it is also the value for unused pages); but the keeper can't
differentiate such a page from a recently accessed one.

The keeper is not in the kernel. It does not have the ability to examine
the hardware page table state.

Oh, it's not in the kernel... That's more difficult (for me! :-) ). But
I continue to think that, to implement a LRU, the keeper needs to know the age of last use of the pages, but not their order of arrival. He may just need to be notified when some new pages are coming (but maybe it was the point you were refering to?).

shap


Emmanuel









reply via email to

[Prev in Thread] Current Thread [Next in Thread]