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

Re: [External] Re: [PATCH v12 12/13] mm/hugetlb: Gather discrete indexes of tail page

From: Muchun Song <hidden>
Date: 2021-01-14 02:48:29
Also in: linux-doc, linux-fsdevel, lkml

On Thu, Jan 14, 2021 at 8:18 AM Mike Kravetz [off-list ref] wrote:
On 1/6/21 6:19 AM, Muchun Song wrote:
quoted
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.
Agree. Using page.private to manage the page flag is a good
choice. When your RFC patch is applied, I will rebase it and
rework this patch.
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