l4-hurd
[Top][All Lists]
Advanced

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

Re: self-paging


From: Jonathan S. Shapiro
Subject: Re: self-paging
Date: Wed, 07 Dec 2005 12:08:55 -0500

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. Doing the
"accessed" check is where the expense is. Once you have that, the LRU is
just a counter.

> >  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.

shap





reply via email to

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