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 <songmuc...@bytedance.com>
> Reviewed-by: Oscar Salvador <osalva...@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

Reply via email to