2008-08-08 08:01:22

by Francis Moreau

[permalink] [raw]
Subject: question about do_anonymous_page()

Hello,

I'm wondering why do_anonymous_page() calls lru_cache_add_active(page)
where page does not belong to the page cache ?

Is it simply because lru_add_active() doesn't exist ?

Thanks
--
Francis


2008-08-08 08:23:57

by Francis Moreau

[permalink] [raw]
Subject: Re: question about do_anonymous_page()

[ resending with linux-mm address fixed, sorry ]

On Fri, Aug 8, 2008 at 10:01 AM, Francis Moreau <[email protected]> wrote:
> Hello,
>
> I'm wondering why do_anonymous_page() calls lru_cache_add_active(page)
> where page does not belong to the page cache ?
>
> Is it simply because lru_add_active() doesn't exist ?
>
> Thanks
> --
> Francis
>



--
Francis

2008-08-08 08:51:55

by Hugh Dickins

[permalink] [raw]
Subject: Re: question about do_anonymous_page()

On Fri, 8 Aug 2008, Francis Moreau wrote:
> On Fri, Aug 8, 2008 at 10:01 AM, Francis Moreau <[email protected]> wrote:
> >
> > I'm wondering why do_anonymous_page() calls lru_cache_add_active(page)
> > where page does not belong to the page cache ?
> >
> > Is it simply because lru_add_active() doesn't exist ?

Yes.

It just happens that whoever (Rik?) originally named that function was
primarily thinking of the page cache at the time; or perhaps wasn't
thinking of the file page cache at all, just regarding all the pages
we put on that list as cached in some sense.

You're right that it's a little anomalous, but nothing to worry about.
I get more bothered by page_cache_get(), which is and always(?) has
been the same thing as get_page(): sometimes we use one, sometimes
the other, and often we use page_cache_get() on anonymous pages.

Hugh

2008-08-08 09:22:39

by Francis Moreau

[permalink] [raw]
Subject: Re: question about do_anonymous_page()

On Fri, Aug 8, 2008 at 10:51 AM, Hugh Dickins <[email protected]> wrote:
>> Is it simply because lru_add_active() doesn't exist ?
>
> Yes.
>

great at least one thing I understood from the kernel mm internals ;)

> It just happens that whoever (Rik?) originally named that function was
> primarily thinking of the page cache at the time; or perhaps wasn't
> thinking of the file page cache at all, just regarding all the pages
> we put on that list as cached in some sense.
>

I think it might be the second reason since the page is not directly
added to the LRU
but to a pagevec structure since the term 'cache'. But IMHO if so,
it's just confusing and
lru_cache_add_active() shouldn't contain implemantation details in its name.

> You're right that it's a little anomalous, but nothing to worry about.

well, it's just that I got confusing when reading the code for the
first time. I really have hard
time to understand it...

> I get more bothered by page_cache_get(), which is and always(?) has
> been the same thing as get_page(): sometimes we use one, sometimes
> the other, and often we use page_cache_get() on anonymous pages.
>

Yes and this is what confused me: lru_cache_add_active() does call
page_cache_get()
for anymous pages, hence my question.


Thanks !
--
Francis