![]() | |||||||||||||
Messages in this thread |
On January 28, 2002 08:25 pm, Hans Reiser wrote:
> If I understand you right, your scheme has the fundamental flaw that one
> dcache entry on a page can keep an entire page full of "slackers" in
> memory, and since there is little correlation in usage between dcache
> entries that happen to get stored on a page, the result is that the
> effectiveness per megabyte of the dcache is decreased by an order of
> magnitude. It would be worse to have one dcache entry per page, but
> maybe not by as much as you might expect.
>
> When objects smaller than a page are stored on a page but not correlated
> in their usage, they need to be aged individually not as a page, and
> then garbage collected as needed.
I had the identical thought - i.e., that this is a job for object aging and
not lru, then I realized that a slight modification to lru can do the job,
that is:
- An access to any object on the page promotes the page to the hot end
of the lru list.
- When it's time to recover a page (or pages) scan from the cold end
towards the hot end, and recover the first page(s) on which all
objects are free.
> Neither the current model nor your
> proposed scheme solve the fundamental problem Josh's measurements prove
> exists.
My suggestion might.
--
Daniel
-
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/
| ||||||||||||
| Last update: 2005-03-22 12:15 [from the cache] ©2003-2008 | |||||||||||||