Re: [PATCH v1 03/11] mm: simplify hugetlb and file-THP handling in __page_mapcount()

From: David Hildenbrand
Date: Fri Dec 17 2021 - 12:30:36 EST


On 17.12.21 18:16, Nadav Amit wrote:
>
>> On Dec 17, 2021, at 3:30 AM, David Hildenbrand <david@xxxxxxxxxx> wrote:
>>
>> Let's return early for hugetlb, which really only relies on the compound
>> mapcount so far and does not support PageDoubleMap() yet. Use the chance
>> to cleanup the file-THP case to make it easier to grasp. While at it, use
>> head_compound_mapcount().
>>
>> This is a preparation for further changes.
>
> It would be useful to add “no functional change intended” or something.

Absolutely, same applies to other "simplification" patches.

>
>>
>> Reviewed-by: Peter Xu <peterx@xxxxxxxxxx>
>> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
>> ---
>> mm/util.c | 11 +++++++----
>> 1 file changed, 7 insertions(+), 4 deletions(-)
>>
>> diff --git a/mm/util.c b/mm/util.c
>> index 741ba32a43ac..3239e75c148d 100644
>> --- a/mm/util.c
>> +++ b/mm/util.c
>> @@ -732,15 +732,18 @@ int __page_mapcount(struct page *page)
>> {
>> int ret;
>>
>> - ret = atomic_read(&page->_mapcount) + 1;
>> + if (PageHuge(page))
>> + return compound_mapcount(page);
>
> Before you return, perhaps you can add an assertion like:
>
> VM_BUG_ON(PageDoubleMap(page));
>
> This would be make the code clearer and would ease debugging in the
> future (if support for double-map is expanded).
>

I'd probably have to add this to a couple of places -- and I assume
anybody working on that has to grep the kernel for use of PageDoubleMap
already.

Thanks!

--
Thanks,

David / dhildenb