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

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE2067d

3 messages, 2 authors, 2020-12-22 · open the first message on its own page

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

From: Nicholas Piggin <npiggin@gmail.com>
Date: 2020-12-21 03:24:54

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@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
 	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
+
 	help
 	  Say Y here to use queued spinlocks which give better scalability and
 	  fairness on large SMP and NUMA systems without harming single threaded
 	  performance.
 
-	  This option is currently experimental, the code is more complex and
-	  less tested so it defaults to "N" for the moment.
-
-	  If unsure, say "N".
-
 config ARCH_CPU_PROBE_RELEASE
 	def_bool y
 	depends on HOTPLUG_CPU
-- 
2.23.0

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

From: Christophe Leroy <hidden>
Date: 2020-12-21 06:09:00


Le 21/12/2020 à 04:22, Nicholas Piggin a écrit :
quoted hunk
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@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.
quoted hunk
  	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


  	help
  	  Say Y here to use queued spinlocks which give better scalability and
  	  fairness on large SMP and NUMA systems without harming single threaded
  	  performance.
  
-	  This option is currently experimental, the code is more complex and
-	  less tested so it defaults to "N" for the moment.
-
-	  If unsure, say "N".
-
  config ARCH_CPU_PROBE_RELEASE
  	def_bool y
  	depends on HOTPLUG_CPU
Christophe

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

From: Nicholas Piggin <npiggin@gmail.com>
Date: 2020-12-22 03:30:37

Excerpts from Christophe Leroy's message of December 21, 2020 4:04 pm:

Le 21/12/2020 à 04:22, Nicholas Piggin a écrit :
quoted
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@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 :)
quoted
  	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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help