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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2/10/24 03:46, Andrew Morton wrote:
> 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?

CMA_AREAS should default as (1 << NODES_SHIFT) ? But the system admin might want
to create more heap areas for other purposes as well. The idea here is to ensure
MAX_CMA_AREAS is at least MAX_NUMNODES if HugeTLB support is enabled. Do we have
some other methods ?

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

Right, was thinking about this at first. Makes sense, will change here, seems to
be the right location for a build check as well.

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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux