Re: [PATCH 6/9] clockpro-clockpro.patch

Christoph Lameter
2006-01-03T19:30:53Z

On Sat, 31 Dec 2005, Marcelo Tosatti wrote:

> > > > + * res | h/c | tst | ref || Hcold | Hhot | Htst || Flt
> > > > + * ----+-----+-----+-----++-------+------+------++-----
> > > > + * 1 | 1 | 0 | 1 ||=1101 | 1100 |=1101 ||
> > > > + * 1 | 1 | 0 | 0 ||=1100 | 1000 |=1100 ||
> > > > + * ----+-----+-----+-----++-------+------+------++-----
> > > > + * 1 | 0 | 1 | 1 || 1100 | 1001 | 1001 ||
> > > > + * 1 | 0 | 1 | 0 ||X0010 | 1000 | 1000 ||
> > > > + * 1 | 0 | 0 | 1 || 1010 |=1001 |=1001 ||
> > > > + * 1 | 0 | 0 | 0 ||X0000 |=1000 |=1000 ||
> > > > + * ----+-----+-----+-----++-------+------+------++-----
> > > > + * ----+-----+-----+-----++-------+------+------++-----
> > > > + * 0 | 0 | 1 | 1 || | | || 1100
> > > > + * 0 | 0 | 1 | 0 ||=0010 |X0000 |X0000 ||
> > > > + * 0 | 0 | 0 | 1 || | | || 1010
> > state table, it describes how (in the original paper) the three hands
> > modify the page state. Given the state in the first four columns, the
> > next three columns give a new state for each hand; hand cold, hot and
> > test. The last column describes the action of a pagefault.
> >
> > Ex. given a resident cold page in its test period that is referenced
> > (1011):
> > - Hand cold will make it 1100, that is, a resident hot page;
> > - Hand hot will make it 1001, that is, a resident cold page with a
> > reference; and
> > - Hand test will also make it 1001.
> >
> > (The prefixes '=' and 'X' are used to indicate: not changed, and remove
> > from list - that can be either move from resident->non-resident or
> > remove altogether).
>
> I see - can you add this info to the patch?

Hmm.. This looks as if it would be better to manage the page state as
a bitmap rather than individual bits. Could we put this state in
an integer variable and do an array lookup to get to the next state?