Re: [PATCH v4] mm, hugetlb: implement movable_gigantic_pages sysctl
From: Andrew Morton
Date: Thu Dec 18 2025 - 19:55:39 EST
On Thu, 18 Dec 2025 10:12:11 -0500 Gregory Price <gourry@xxxxxxxxxx> wrote:
> This reintroduces a concept removed by:
> commit d6cb41cc44c6 ("mm, hugetlb: remove hugepages_treat_as_movable sysctl")
>
> This sysctl provides flexibility between ZONE_MOVABLE use cases:
> 1) onlining memory in ZONE_MOVABLE to maintain hotplug compatibility
> 2) onlining memory in ZONE_MOVABLE to make hugepage allocate reliable
My x86_64 allmodconfig blew up.
> ...
>
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -49,7 +49,6 @@
> #include "internal.h"
> #include "hugetlb_vmemmap.h"
> #include "hugetlb_cma.h"
> -#include "hugetlb_internal.h"
> #include <linux/page-isolation.h>
What's that doing there? I put it back. Helped!
But the build still failed because the patch refers to
extern int movable_gigantic_pages __read_mostly;
but forgot to define it. v5, please ;)
mm/hugetlb.c:497:56: error: 'struct hugetlb_cgroup' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
497 | static void record_hugetlb_cgroup_uncharge_info(struct hugetlb_cgroup *h_cg,
| ^~~~~~~~~~~~~~
mm/hugetlb.c: In function 'record_hugetlb_cgroup_uncharge_info':
mm/hugetlb.c:505:30: error: invalid use of undefined type 'struct hugetlb_cgroup'
505 | &h_cg->rsvd_hugepage[hstate_index(h)];
| ^~
mm/hugetlb.c:506:33: error: invalid use of undefined type 'struct hugetlb_cgroup'
506 | nrg->css = &h_cg->css;
| ^~
mm/hugetlb.c:517:30: error: invalid use of undefined type 'struct hugetlb_cgroup'
517 | css_get(&h_cg->css);
| ^~
mm/hugetlb.c: At top level:
mm/hugetlb.c:580:56: error: 'struct hugetlb_cgroup' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
<and much more>