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.