[PATCH] powerpc: always enable queued spinlocks for 64s, disable for others

Nicholas Piggin npiggin at gmail.com
Tue Dec 22 14:28:32 AEDT 2020


Excerpts from Christophe Leroy's message of December 21, 2020 4:04 pm:
> 
> 
> Le 21/12/2020 à 04:22, Nicholas Piggin a écrit :
>> Queued spinlocks have shown to have good performance and fairness
>> properties even on smaller (2 socket) POWER systems. This selects
>> them automatically for 64s. For other platforms they are de-selected,
>> the standard spinlock is far simpler and smaller code, and single
>> chips with a handful of cores is unlikely to show any improvement.
>> 
>> CONFIG_EXPERT still allows this to be changed, e.g., to help debug
>> performance or correctness issues.
>> 
>> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
>> ---
>>   arch/powerpc/Kconfig | 8 +++-----
>>   1 file changed, 3 insertions(+), 5 deletions(-)
>> 
>> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
>> index ae7391627054..1f9f9e64d638 100644
>> --- a/arch/powerpc/Kconfig
>> +++ b/arch/powerpc/Kconfig
>> @@ -255,6 +255,7 @@ config PPC
>>   	select PCI_MSI_ARCH_FALLBACKS		if PCI_MSI
>>   	select PCI_SYSCALL			if PCI
>>   	select PPC_DAWR				if PPC64
>> +	select PPC_QUEUED_SPINLOCKS		if !EXPERT && PPC_BOOK3S_64 && SMP
> 
> The condition is a bit complicated, and it doesn't set it to Y by default when EXPERT is selected.

Yeah, I don't know how to do that (switch people's oldconfig from =N to 
=Y) otherwise (without renaming the option). I think it's enough though, 
experts should have said yes already :)

> 
>>   	select RTC_LIB
>>   	select SPARSE_IRQ
>>   	select SYSCTL_EXCEPTION_TRACE
>> @@ -506,16 +507,13 @@ config HOTPLUG_CPU
>>   config PPC_QUEUED_SPINLOCKS
>>   	bool "Queued spinlocks"
>>   	depends on SMP
>> +	depends on EXPERT || PPC_BOOK3S_64
>> +
> 
> I would do:
> 
>     config PPC_QUEUED_SPINLOCKS
>   	bool "Queued spinlocks" if EXPERT
>   	depends on SMP
> 	default PPC_BOOK3S_64

That's nicer.

Thanks,
Nick


More information about the Linuxppc-dev mailing list