Thread (29 messages) flat view 29 messages, 2 authors, 2021-10-22

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

From: Christophe Leroy <hidden>
Date: 2021-10-22 07:03:25


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@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(-)
quoted hunk ↗ jump to hunk
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
quoted hunk ↗ jump to hunk
@@ -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
quoted hunk ↗ jump to hunk
  config PPC_HAVE_KUEP
  	bool
  
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 ?

quoted hunk ↗ jump to hunk
  	select PPC_HASH_MMU_NATIVE
  	select PPC_RTAS
  	select IRQ_EDGE_EOI_HANDLER
diff --git a/arch/powerpc/platforms/maple/Kconfig b/arch/powerpc/platforms/maple/Kconfig
index 7fd84311ade5..4c058cc57c90 100644
--- a/arch/powerpc/platforms/maple/Kconfig
+++ b/arch/powerpc/platforms/maple/Kconfig
@@ -9,6 +9,7 @@ config PPC_MAPLE
  	select GENERIC_TBSYNC
  	select PPC_UDBG_16550
  	select PPC_970_NAP
+	select PPC_64S_HASH_MMU
  	select PPC_HASH_MMU_NATIVE
  	select PPC_RTAS
  	select MMIO_NVRAM
diff --git a/arch/powerpc/platforms/microwatt/Kconfig b/arch/powerpc/platforms/microwatt/Kconfig
index 62b51e37fc05..823192e9d38a 100644
--- a/arch/powerpc/platforms/microwatt/Kconfig
+++ b/arch/powerpc/platforms/microwatt/Kconfig
@@ -5,7 +5,7 @@ config PPC_MICROWATT
  	select PPC_XICS
  	select PPC_ICS_NATIVE
  	select PPC_ICP_NATIVE
-	select PPC_HASH_MMU_NATIVE
+	select PPC_HASH_MMU_NATIVE if PPC_64S_HASH_MMU
  	select PPC_UDBG_16550
  	select ARCH_RANDOM
  	help
diff --git a/arch/powerpc/platforms/pasemi/Kconfig b/arch/powerpc/platforms/pasemi/Kconfig
index bc7137353a7f..85ae18ddd911 100644
--- a/arch/powerpc/platforms/pasemi/Kconfig
+++ b/arch/powerpc/platforms/pasemi/Kconfig
@@ -5,6 +5,7 @@ config PPC_PASEMI
  	select MPIC
  	select FORCE_PCI
  	select PPC_UDBG_16550
+	select PPC_64S_HASH_MMU
  	select PPC_HASH_MMU_NATIVE
  	select MPIC_BROKEN_REGREAD
  	help
diff --git a/arch/powerpc/platforms/powermac/Kconfig b/arch/powerpc/platforms/powermac/Kconfig
index 2b56df145b82..130707ec9f99 100644
--- a/arch/powerpc/platforms/powermac/Kconfig
+++ b/arch/powerpc/platforms/powermac/Kconfig
@@ -6,6 +6,7 @@ config PPC_PMAC
  	select FORCE_PCI
  	select PPC_INDIRECT_PCI if PPC32
  	select PPC_MPC106 if PPC32
+	select PPC_64S_HASH_MMU if PPC64
  	select PPC_HASH_MMU_NATIVE
  	select ZONE_DMA if PPC32
  	default y
diff --git a/arch/powerpc/platforms/powernv/Kconfig b/arch/powerpc/platforms/powernv/Kconfig
index cd754e116184..161dfe024085 100644
--- a/arch/powerpc/platforms/powernv/Kconfig
+++ b/arch/powerpc/platforms/powernv/Kconfig
@@ -2,7 +2,7 @@
  config PPC_POWERNV
  	depends on PPC64 && PPC_BOOK3S
  	bool "IBM PowerNV (Non-Virtualized) platform support"
-	select PPC_HASH_MMU_NATIVE
+	select PPC_HASH_MMU_NATIVE if PPC_64S_HASH_MMU
  	select PPC_XICS
  	select PPC_ICP_NATIVE
  	select PPC_XIVE_NATIVE
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help