Re: [PATCH v12 12/13] mm/hugetlb: Gather discrete indexes of tail page
From: Mike Kravetz <hidden>
Date: 2021-01-14 02:18:52
Also in:
linux-fsdevel, linux-mm, lkml
From: Mike Kravetz <hidden>
Date: 2021-01-14 02:18:52
Also in:
linux-fsdevel, linux-mm, lkml
On 1/6/21 6:19 AM, Muchun Song wrote:
For HugeTLB page, there are more metadata to save in the struct page. But the head struct page cannot meet our needs, so we have to abuse other tail struct page to store the metadata. In order to avoid conflicts caused by subsequent use of more tail struct pages, we can gather these discrete indexes of tail struct page. In this case, it will be easier to add a new tail page index later. There are only (RESERVE_VMEMMAP_SIZE / sizeof(struct page)) struct page structs that can be used when CONFIG_HUGETLB_PAGE_FREE_VMEMMAP, so add a BUILD_BUG_ON to catch invalid usage of the tail struct page. Signed-off-by: Muchun Song <redacted> Reviewed-by: Oscar Salvador <osalvador@suse.de> --- include/linux/hugetlb.h | 14 ++++++++++++++ include/linux/hugetlb_cgroup.h | 15 +++++++++------ mm/hugetlb.c | 25 ++++++++++++------------- mm/hugetlb_vmemmap.c | 8 ++++++++ 4 files changed, 43 insertions(+), 19 deletions(-)
My apologies! I did not get to this patch in previous versions of the series. My "RFC create hugetlb flags to consolidate state" was done before I even noticed your efforts here. At least we agree the metadata could be better organized. :) IMO, using page.private of the head page to consolidate flags will be easier to manage. So, I would like to use that. The BUILD_BUG_ON in this patch makes sense. -- Mike Kravetz