Re: [PATCH 03/21] mm/hugetlb: correct demote page offset logic

From: Doug Berger
Date: Wed Sep 14 2022 - 13:54:39 EST


On 9/14/2022 10:08 AM, Mike Kravetz wrote:
On 09/13/22 18:07, Doug Berger wrote:
On 9/13/2022 4:34 PM, Matthew Wilcox wrote:
On Tue, Sep 13, 2022 at 12:54:50PM -0700, Doug Berger wrote:
With gigantic pages it may not be true that struct page structures
are contiguous across the entire gigantic page. The mem_map_offset
function is used here in place of direct pointer arithmetic to
correct for this.

We're just eliminating mem_map_offset(). Please use nth_page()
instead.That's good to know. I will include that in v2.

Thanks Doug and Matthew. I will take a closer look at this series soon.

It seems like this patch is a fix independent of the series. If so, I
would suggest sending separate to make it easy for backports to stable.
Yes, as I noted in [PATCH 00/21] the first three patches fit that description, but I included them here in case someone was brave enough to attempt to use this patch set. They were in my branch for my own testing.

Full disclosure: An earlier version of this patch set had more complete support for hugepage isolation that included migrating the isolation state when demoting a hugepage that touched lines in demote_free_huge_page() and depended on the subpage variable introduced here.

At this point I will submit a patch for this on its own and will likely remove the first three commits when submitting V2 of the set.

Thanks for your consideration.
-Doug