Re: [PATCH] mm/hugetlb: Ensure adequate CMA areas available for hugetlb_cma[]

From: Andrew Morton
Date: Fri Feb 09 2024 - 17:18:44 EST


On Fri, 9 Feb 2024 12:20:36 +0530 Anshuman Khandual <anshuman.khandual@xxxxxxx> wrote:

> HugeTLB CMA area array is being created for possible MAX_NUMNODES without
> ensuring corresponding MAX_CMA_AREAS support in CMA. Let's just warn for
> such scenarios indicating need for CONFIG_CMA_AREAS adjustment.
>
> ...
>
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -7750,6 +7750,13 @@ void __init hugetlb_cma_reserve(int order)
> }
>
> reserved = 0;
> +
> + /*
> + * There needs to be enough MAX_CMA_AREAS to accommodate
> + * MAX_NUMNODES heap areas being created here. Otherwise
> + * adjust CONFIG_CMA_AREAS as required.
> + */
> + VM_WARN_ON(MAX_CMA_AREAS < MAX_NUMNODES);

Could this simply be fixed up in Kconfig logic?

And I think this could be detected at compile-time? BUILD_BUG_ON()?

> for_each_online_node(nid) {
> int res;
> char name[CMA_MAX_NAME];
> --
> 2.25.1