[PATCH v2 2/2] powerpc/mm/hugetlb: Add support for reserving gigantic huge pages via kernel command line

Aneesh Kumar K.V aneesh.kumar at linux.vnet.ibm.com
Mon Jun 5 17:47:08 AEST 2017


christophe leroy <christophe.leroy at c-s.fr> writes:

> Le 01/06/2017 à 16:30, Aneesh Kumar K.V a écrit :
>> With commit aa888a74977a8 ("hugetlb: support larger than MAX_ORDER") we added
>> support for allocating gigantic hugepages via kernel command line. Switch
>> ppc64 arch specific code to use that.
>
> Is it only ppc64 ? Your patch removes things defined for the 8xx and 
> modifies stuff in init_32.c
>
> On the 8xx, as far as I remember, 8M pages on 4k pages mode are above 
> default MAX_ORDER, I solved it by increasing MAX_ORDER. Is that wrong ?


I was hoping every platform can switch to generic code. Obviously I
didn't test the changes on anything other than ppc64. Can you try with
this patchset and pass hugepagesz=<size> hugepages=<number> kernel arg
and see if hugepage allocation works for you ?

>
>>
>> W.r.t FSL support, we now limit our allocation range using BOOTMEM_ALLOC_ACCESSIBLE.
>>
>> We use the kernel command line to do reservation of hugetlb pages on powernv
>> platforms. On pseries hash mmu mode the supported gigantic huge page size is
>> 16GB and that can only be allocated with hypervisor assist. For pseries the
>> command line option doesn't do the allocation. Instead pseries does gigantic
>> hugepage allocation based on hypervisor hint that is specified via
>> "ibm,expected#pages" property of the memory node.
>>
>> Cc: Scott Wood <oss at buserror.net>
>> Cc: Christophe Leroy <christophe.leroy at c-s.fr>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
>> ---
>>  arch/powerpc/include/asm/book3s/64/mmu-hash.h |   2 +-
>>  arch/powerpc/include/asm/hugetlb.h            |  14 --
>>  arch/powerpc/kernel/setup-common.c            |   7 -
>>  arch/powerpc/mm/hash_utils_64.c               |   2 +-
>>  arch/powerpc/mm/hugetlbpage.c                 | 177 +++-----------------------
>>  arch/powerpc/mm/init_32.c                     |   2 -
>>  6 files changed, 22 insertions(+), 182 deletions(-)
>>
>> diff --git a/arch/powerpc/include/asm/book3s/64/mmu-hash.h b/arch/powerpc/include/asm/book3s/64/mmu-hash.h
>> index 6981a52b3887..67766e60a6b6 100644
>> --- a/arch/powerpc/include/asm/book3s/64/mmu-hash.h
>> +++ b/arch/powerpc/include/asm/book3s/64/mmu-hash.h
>> @@ -468,7 +468,7 @@ extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
>>  			     int psize, int ssize);
>>  int htab_remove_mapping(unsigned long vstart, unsigned long vend,
>>  			int psize, int ssize);
>> -extern void add_gpage(u64 addr, u64 page_size, unsigned long number_of_pages);
>> +extern void pSeries_add_gpage(u64 addr, u64 page_size, unsigned long number_of_pages);
>
> Linux kernel coding style says 'mixed-case names are frowned upon'

Agreed, but that is how we named all the pseries related functions in
platforms/pseries/*.c files. Hence i kept the same naming style.

-aneesh



More information about the Linuxppc-dev mailing list