Thread (26 messages) 26 messages, 3 authors, 2021-01-14

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-doc, linux-fsdevel, 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help