Re: [PATCH] mm/huge_memory: prevent THP_ZERO_PAGE_ALLOC increased twice

From: Liu Shixin
Date: Mon Sep 05 2022 - 21:52:33 EST


On 2022/9/6 4:07, Andrew Morton wrote:
> On Mon, 5 Sep 2022 21:38:13 +0800 Liu Shixin <liushixin2@xxxxxxxxxx> wrote:
>
>> If two or more threads call get_huge_zero_page concurrently, THP_ZERO_PAGE_ALLOC
>> may increased two or more times. But actually, this should only count
>> as once since the extra zero pages has been freed.
> Well, for better of for worse,
> Documentation/admin-guide/mm/transhuge.rst says
>
> thp_zero_page_alloc
> is incremented every time a huge zero page is
> successfully allocated. It includes allocations which where
> dropped due race with other allocation. Note, it doesn't count
> every map of the huge zero page, only its allocation.
>
> If you think this interprtation should be changed then please explain
> why, and let's be sure to update the documentation accordingly.
>
> .
Thanks for your explanation. I misunderstood the meaning of thp_zero_page_alloc before.
Although the rules are clearly explained in the documentation, I think that this variable
should only incremented when a huge zero page used for thp is successfully allocated and
the pages dropped due race should skip increment. It seems strange to count in all allocations.

If there's something I still misunderstand, please point it out, thanks.

Thanks,