Re: [PATCH] mm: do not use page_count without a page pin

Minchan Kim
2012-06-11T22:49:35Z

On 06/11/2012 11:41 PM, Andrea Arcangeli wrote:

> Hi Minchan,
>
> On Mon, Jun 11, 2012 at 10:30:43PM +0900, Minchan Kim wrote:
>> AFAIUC, you mean we have to increase reference count of head page?
>> If so, it's not in __count_immobile_pages because it is already race-likely function
>> so it shouldn't be critical although race happens.
>
> I meant, shouldn't we take into account the full size? If it's in the
> lru the whole thing can be moved away.
>
> if (!PageLRU(page)) {
> nr_pages = hpage_nr_pages(page);
> barrier();

Could you explain why we need barrier?

> found += nr_pages;
> iter += nr_pages-1;
> }
>

Thanks for the explain.

For the normal pages, the logic accounts it as "non-movable pages" so for the consistency,
it seems you're right. But let's think about a bit.

If THP page isn't LRU and it's still PageTransHuge, I think it's rather rare and
although it happens, it means migration/reclaimer is about to split or isolate/putback
so it ends up making THP page movable pages.

IMHO, it would be better to account it by movable pages.
What do you think about it?

Thanks.
--
Kind regards,
Minchan Kim