[PATCH v3 15/18] powerpc/64s: Make hash MMU support configurable

Nicholas Piggin npiggin at gmail.com
Fri Oct 22 20:30:13 AEDT 2021


Excerpts from Christophe Leroy's message of October 22, 2021 5:02 pm:
> 
> 
> Le 22/10/2021 à 00:30, Nicholas Piggin a écrit :
>> This adds Kconfig selection which allows 64s hash MMU support to be
>> disabled. It can be disabled if radix support is enabled, the minimum
>> supported CPU type is POWER9 (or higher), and KVM is not selected.
>> 
>> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
>> ---
>>   arch/powerpc/Kconfig                     |  3 ++-
>>   arch/powerpc/include/asm/mmu.h           | 16 ++++++++++---
>>   arch/powerpc/kernel/dt_cpu_ftrs.c        | 14 ++++++++----
>>   arch/powerpc/kvm/Kconfig                 |  1 +
>>   arch/powerpc/mm/init_64.c                | 15 +++++++++---
>>   arch/powerpc/platforms/Kconfig.cputype   | 29 ++++++++++++++++++++++--
>>   arch/powerpc/platforms/cell/Kconfig      |  1 +
>>   arch/powerpc/platforms/maple/Kconfig     |  1 +
>>   arch/powerpc/platforms/microwatt/Kconfig |  2 +-
>>   arch/powerpc/platforms/pasemi/Kconfig    |  1 +
>>   arch/powerpc/platforms/powermac/Kconfig  |  1 +
>>   arch/powerpc/platforms/powernv/Kconfig   |  2 +-
>>   12 files changed, 71 insertions(+), 15 deletions(-)
>> 
> 
>> diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
>> index a208997ade88..1cf254a5d5d4 100644
>> --- a/arch/powerpc/platforms/Kconfig.cputype
>> +++ b/arch/powerpc/platforms/Kconfig.cputype
> 
>> @@ -364,6 +371,17 @@ config SPE
>>   
>>   	  If in doubt, say Y here.
>>   
>> +config PPC_64S_HASH_MMU
>> +	bool "Hash MMU Support"
>> +	depends on PPC_BOOK3S_64
>> +	select PPC_MM_SLICES
>> +	default y
>> +	help
>> +	  Enable support for the Power ISA Hash style MMU. This is implemented
>> +	  by all IBM Power and other Book3S CPUs.
>> +
>> +	  If you're unsure, say Y.
>> +
>>   config PPC_RADIX_MMU
>>   	bool "Radix MMU Support"
>>   	depends on PPC_BOOK3S_64
>> @@ -374,9 +392,10 @@ config PPC_RADIX_MMU
>>   	  is only implemented by IBM Power9 CPUs, if you don't have one of them
>>   	  you can probably disable this.
>>   
>> -config PPC_RADIX_MMU_DEFAULT
>> +config PPC_RADIX_MMU_DEFAULT_OPTION
>>   	bool "Default to using the Radix MMU when possible"
>>   	depends on PPC_RADIX_MMU
>> +	depends on PPC_64S_HASH_MMU
>>   	default y
>>   	help
>>   	  When the hardware supports the Radix MMU, default to using it unless
>> @@ -387,6 +406,12 @@ config PPC_RADIX_MMU_DEFAULT
>>   
>>   	  If you're unsure, say Y.
>>   
>> +config PPC_RADIX_MMU_DEFAULT
>> +	bool
>> +	depends on PPC_BOOK3S_64
>> +	depends on PPC_RADIX_MMU_DEFAULT_OPTION || !PPC_64S_HASH_MMU
>> +	default y
>> +
> 
> Why do you need that PPC_RADIX_MMU_DEFAULT_OPTION ?
> 
> What about
> 
> 	config PPC_RADIX_MMU_DEFAULT
> 		bool "Default to using the Radix MMU when possible" if PPC_64S_HASH_MMU
> 		depends on PPC_RADIX_MMU
> 		depends on PPC_BOOK3S_64
> 		default y

That's what I was trying to do I guess, I forget about the if clause on 
the bool option.

>> diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig
>> index db4465c51b56..faa894714a2a 100644
>> --- a/arch/powerpc/platforms/cell/Kconfig
>> +++ b/arch/powerpc/platforms/cell/Kconfig
>> @@ -8,6 +8,7 @@ config PPC_CELL_COMMON
>>   	select PPC_DCR_MMIO
>>   	select PPC_INDIRECT_PIO
>>   	select PPC_INDIRECT_MMIO
>> +	select PPC_64S_HASH_MMU
> 
> Is this one (and the others) needed ?
> 
> Because it PPC_64S_HASH_MMU is 'default y', selection shouldn't be 
> needed I think.
> 
> Did you check with savedefconfig ?

The platform ones maybe aren't needed but it's because the cpu type 
support selects hash (I don't want it to be configurable even if it 
defaults to y). But it probably makes better sense to select this with 
CPU type support rather than platform.

Thanks,
Nick


More information about the Linuxppc-dev mailing list