[lkml]   [2019]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH v8 4/4] hugetlb: allow to free gigantic pages regardless of the configuration

On 03/27/2019 08:01 AM, Aneesh Kumar K.V wrote:
> On 3/27/19 12:06 PM, Alexandre Ghiti wrote:
>> On systems without CONTIG_ALLOC activated but that support gigantic
>> pages,
>> boottime reserved gigantic pages can not be freed at all. This patch
>> simply enables the possibility to hand back those pages to memory
>> allocator.
>> Signed-off-by: Alexandre Ghiti <>
>> Acked-by: David S. Miller <> [sparc]
>> diff --git a/arch/powerpc/include/asm/book3s/64/hugetlb.h
>> b/arch/powerpc/include/asm/book3s/64/hugetlb.h
>> index ec2a55a553c7..7013284f0f1b 100644
>> --- a/arch/powerpc/include/asm/book3s/64/hugetlb.h
>> +++ b/arch/powerpc/include/asm/book3s/64/hugetlb.h
>> @@ -36,8 +36,8 @@ static inline int hstate_get_psize(struct hstate
>> *hstate)
>>       }
>>   }
>> -static inline bool gigantic_page_supported(void)
>> +static inline bool gigantic_page_runtime_supported(void)
>>   {
>>       /*
>>        * We used gigantic page reservation with hypervisor assist in
>> some case.
>> @@ -49,7 +49,6 @@ static inline bool gigantic_page_supported(void)
>>         return true;
>>   }
>> -#endif
>>     /* hugepd entry valid bit */
>>   #define HUGEPD_VAL_BITS        (0x8000000000000000UL)
> Is that correct when CONTIG_ALLOC is not enabled? I guess we want
> gigantic_page_runtime_supported to return false when CONTIG_ALLOC is
> not enabled on all architectures and on POWER when it is enabled we
> want it to be conditional as it is now.
> -aneesh

CONFIG_ARCH_HAS_GIGANTIC_PAGE is set by default when an architecture
supports gigantic
pages: on its own, it allows to allocate boottime gigantic pages AND to
free them at runtime
(this is the goal of this series), but not to allocate runtime gigantic
If CONTIG_ALLOC is set, it allows in addition to allocate runtime
gigantic pages.

I re-introduced the runtime checks because we can't know at compile time
if powerpc can
or not support gigantic pages.

So for all architectures, gigantic_page_runtime_supported only depends on
CONFIG_ARCH_HAS_GIGANTIC_PAGE enabled or not. The possibility to
allocate runtime
gigantic pages is dealt with after those runtime checks.

By the way, I forgot to ask you why you think that if an arch cannot
allocate runtime gigantic
pages, it should not be able to free boottime gigantic pages ?

 \ /
  Last update: 2019-03-27 09:45    [W:0.038 / U:12.200 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site