[PATCH v2 00/10] sh: remove NUMA and SPARSEMEM support

Mike Rapoport posted 10 patches 1 month ago
arch/sh/Kconfig                        | 12 ------
arch/sh/configs/migor_defconfig        |  1 -
arch/sh/configs/sdk7786_defconfig      |  1 -
arch/sh/configs/se7722_defconfig       |  1 -
arch/sh/configs/shx3_defconfig         |  1 -
arch/sh/configs/ul2_defconfig          |  1 -
arch/sh/include/asm/mmu.h              |  2 +
arch/sh/include/asm/mmzone.h           | 42 --------------------
arch/sh/include/asm/setup.h            |  3 ++
arch/sh/include/asm/sparsemem.h        | 12 ------
arch/sh/include/asm/topology.h         | 13 -------
arch/sh/kernel/cpu/sh4a/setup-sh7366.c |  5 ---
arch/sh/kernel/cpu/sh4a/setup-sh7722.c |  7 ----
arch/sh/kernel/cpu/sh4a/setup-sh7723.c |  1 -
arch/sh/kernel/cpu/sh4a/setup-sh7724.c |  1 -
arch/sh/kernel/cpu/sh4a/setup-sh7757.c |  5 ---
arch/sh/kernel/cpu/sh4a/setup-sh7785.c |  7 ----
arch/sh/kernel/cpu/sh4a/setup-sh7786.c |  5 ---
arch/sh/kernel/cpu/sh4a/setup-shx3.c   | 18 ---------
arch/sh/kernel/setup.c                 |  7 ----
arch/sh/kernel/topology.c              | 12 ------
arch/sh/kernel/vmcore_info.c           |  4 --
arch/sh/mm/Kconfig                     | 29 --------------
arch/sh/mm/Makefile                    |  1 -
arch/sh/mm/init.c                      | 24 ------------
arch/sh/mm/numa.c                      | 53 --------------------------
arch/sh/mm/sram.c                      |  3 +-
init/Kconfig                           |  7 ----
28 files changed, 6 insertions(+), 272 deletions(-)
delete mode 100644 arch/sh/include/asm/mmzone.h
delete mode 100644 arch/sh/include/asm/sparsemem.h
delete mode 100644 arch/sh/mm/numa.c
[PATCH v2 00/10] sh: remove NUMA and SPARSEMEM support
Posted by Mike Rapoport 1 month ago
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>

Hi,

NUMA support for SuperH was introduced a long time ago by commit
b241cb0c885e ("sh: Support for multiple nodes.")

	"... for boards with many different memory blocks that are
	 otherwise unused (SH7722/SH7785 URAM and so forth)"

In reality, this added 128K of memory on sh7722 and sh7785 and 256K on
shx3 at the expense of all the NUMA related code in the kernel.

For build of v7.0-rc7 with defconfig and the same configuration with
CONFIG_NUMA disabled, bloat-o-meter reports difference of ~76k. Disabling
CONFIG_SPARSMEM on top increases the difference to ~94k. And that's only
overhead in code and static data that does not take into the account data
structures allocated at run time.

And all this overhead has been there for nothing for almost 8 years
because since commit ac21fc2dcb40 ("sh: switch to NO_BOOTMEM")
those additional "nodes" could not be used by the core MM because the
maximal pfn for ZONE_NORMAL was cut out at the end of the normal memory.

v2 changes:
* remove stale SYS_SUPPORTS_NUMA
* add Arnd's Reviewed-by

v1: https://lore.kernel.org/all/20260413104649.852228-1-rppt@kernel.org

Mike Rapoport (Microsoft) (10):
  sh: remove CONFIG_NUMA and realted configuration options
  sh: mm: remove numa.c
  sh: mm: drop allocate_pgdat()
  sh: remove setup_bootmem_node() and plat_mem_setup()
  sh: drop dead code guarded by #ifdef CONFIG_NUMA
  sh: drop include/asm/mmzone.h
  init/Kconfig: drop ARCH_WANT_NUMA_VARIABLE_LOCALITY
  sh: init: remove call the memblock_set_node()
  sh: remove SPARSEMEM related entries from Kconfig
  sh: drop include/asm/sparsemem.h

 arch/sh/Kconfig                        | 12 ------
 arch/sh/configs/migor_defconfig        |  1 -
 arch/sh/configs/sdk7786_defconfig      |  1 -
 arch/sh/configs/se7722_defconfig       |  1 -
 arch/sh/configs/shx3_defconfig         |  1 -
 arch/sh/configs/ul2_defconfig          |  1 -
 arch/sh/include/asm/mmu.h              |  2 +
 arch/sh/include/asm/mmzone.h           | 42 --------------------
 arch/sh/include/asm/setup.h            |  3 ++
 arch/sh/include/asm/sparsemem.h        | 12 ------
 arch/sh/include/asm/topology.h         | 13 -------
 arch/sh/kernel/cpu/sh4a/setup-sh7366.c |  5 ---
 arch/sh/kernel/cpu/sh4a/setup-sh7722.c |  7 ----
 arch/sh/kernel/cpu/sh4a/setup-sh7723.c |  1 -
 arch/sh/kernel/cpu/sh4a/setup-sh7724.c |  1 -
 arch/sh/kernel/cpu/sh4a/setup-sh7757.c |  5 ---
 arch/sh/kernel/cpu/sh4a/setup-sh7785.c |  7 ----
 arch/sh/kernel/cpu/sh4a/setup-sh7786.c |  5 ---
 arch/sh/kernel/cpu/sh4a/setup-shx3.c   | 18 ---------
 arch/sh/kernel/setup.c                 |  7 ----
 arch/sh/kernel/topology.c              | 12 ------
 arch/sh/kernel/vmcore_info.c           |  4 --
 arch/sh/mm/Kconfig                     | 29 --------------
 arch/sh/mm/Makefile                    |  1 -
 arch/sh/mm/init.c                      | 24 ------------
 arch/sh/mm/numa.c                      | 53 --------------------------
 arch/sh/mm/sram.c                      |  3 +-
 init/Kconfig                           |  7 ----
 28 files changed, 6 insertions(+), 272 deletions(-)
 delete mode 100644 arch/sh/include/asm/mmzone.h
 delete mode 100644 arch/sh/include/asm/sparsemem.h
 delete mode 100644 arch/sh/mm/numa.c


base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731
-- 
2.53.0
Re: [PATCH v2 00/10] sh: remove NUMA and SPARSEMEM support
Posted by Mike Rapoport 3 weeks, 4 days ago
Gentle ping?

On Sun, May 10, 2026 at 04:55:36PM +0300, Mike Rapoport wrote:
> From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> 
> Hi,
> 
> NUMA support for SuperH was introduced a long time ago by commit
> b241cb0c885e ("sh: Support for multiple nodes.")
> 
> 	"... for boards with many different memory blocks that are
> 	 otherwise unused (SH7722/SH7785 URAM and so forth)"
> 
> In reality, this added 128K of memory on sh7722 and sh7785 and 256K on
> shx3 at the expense of all the NUMA related code in the kernel.
> 
> For build of v7.0-rc7 with defconfig and the same configuration with
> CONFIG_NUMA disabled, bloat-o-meter reports difference of ~76k. Disabling
> CONFIG_SPARSMEM on top increases the difference to ~94k. And that's only
> overhead in code and static data that does not take into the account data
> structures allocated at run time.
> 
> And all this overhead has been there for nothing for almost 8 years
> because since commit ac21fc2dcb40 ("sh: switch to NO_BOOTMEM")
> those additional "nodes" could not be used by the core MM because the
> maximal pfn for ZONE_NORMAL was cut out at the end of the normal memory.
> 
> v2 changes:
> * remove stale SYS_SUPPORTS_NUMA
> * add Arnd's Reviewed-by
> 
> v1: https://lore.kernel.org/all/20260413104649.852228-1-rppt@kernel.org
> 
> Mike Rapoport (Microsoft) (10):
>   sh: remove CONFIG_NUMA and realted configuration options
>   sh: mm: remove numa.c
>   sh: mm: drop allocate_pgdat()
>   sh: remove setup_bootmem_node() and plat_mem_setup()
>   sh: drop dead code guarded by #ifdef CONFIG_NUMA
>   sh: drop include/asm/mmzone.h
>   init/Kconfig: drop ARCH_WANT_NUMA_VARIABLE_LOCALITY
>   sh: init: remove call the memblock_set_node()
>   sh: remove SPARSEMEM related entries from Kconfig
>   sh: drop include/asm/sparsemem.h
> 
>  arch/sh/Kconfig                        | 12 ------
>  arch/sh/configs/migor_defconfig        |  1 -
>  arch/sh/configs/sdk7786_defconfig      |  1 -
>  arch/sh/configs/se7722_defconfig       |  1 -
>  arch/sh/configs/shx3_defconfig         |  1 -
>  arch/sh/configs/ul2_defconfig          |  1 -
>  arch/sh/include/asm/mmu.h              |  2 +
>  arch/sh/include/asm/mmzone.h           | 42 --------------------
>  arch/sh/include/asm/setup.h            |  3 ++
>  arch/sh/include/asm/sparsemem.h        | 12 ------
>  arch/sh/include/asm/topology.h         | 13 -------
>  arch/sh/kernel/cpu/sh4a/setup-sh7366.c |  5 ---
>  arch/sh/kernel/cpu/sh4a/setup-sh7722.c |  7 ----
>  arch/sh/kernel/cpu/sh4a/setup-sh7723.c |  1 -
>  arch/sh/kernel/cpu/sh4a/setup-sh7724.c |  1 -
>  arch/sh/kernel/cpu/sh4a/setup-sh7757.c |  5 ---
>  arch/sh/kernel/cpu/sh4a/setup-sh7785.c |  7 ----
>  arch/sh/kernel/cpu/sh4a/setup-sh7786.c |  5 ---
>  arch/sh/kernel/cpu/sh4a/setup-shx3.c   | 18 ---------
>  arch/sh/kernel/setup.c                 |  7 ----
>  arch/sh/kernel/topology.c              | 12 ------
>  arch/sh/kernel/vmcore_info.c           |  4 --
>  arch/sh/mm/Kconfig                     | 29 --------------
>  arch/sh/mm/Makefile                    |  1 -
>  arch/sh/mm/init.c                      | 24 ------------
>  arch/sh/mm/numa.c                      | 53 --------------------------
>  arch/sh/mm/sram.c                      |  3 +-
>  init/Kconfig                           |  7 ----
>  28 files changed, 6 insertions(+), 272 deletions(-)
>  delete mode 100644 arch/sh/include/asm/mmzone.h
>  delete mode 100644 arch/sh/include/asm/sparsemem.h
>  delete mode 100644 arch/sh/mm/numa.c
> 
> 
> base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731
> -- 
> 2.53.0
> 

-- 
Sincerely yours,
Mike.
Re: [PATCH v2 00/10] sh: remove NUMA and SPARSEMEM support
Posted by John Paul Adrian Glaubitz 3 weeks, 4 days ago
Hi Mike,

On Mon, 2026-05-18 at 14:43 +0300, Mike Rapoport wrote:
> Gentle ping?

It's on my TODO list for this week!

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Re: [PATCH v2 00/10] sh: remove NUMA and SPARSEMEM support
Posted by Mike Rapoport 1 week, 2 days ago
Hi Adrian,

On Mon, May 18, 2026 at 02:05:39PM +0200, John Paul Adrian Glaubitz wrote:
> Hi Mike,
> 
> On Mon, 2026-05-18 at 14:43 +0300, Mike Rapoport wrote:
> > Gentle ping?
> 
> It's on my TODO list for this week!

It's sad to see this being dragged since mid April (if we count v1 and
there were really minor changes in v2).

If you don't have time to take care of that, just say so and we'll take
this via one of the mm trees in the next cycle.
 
> Adrian

-- 
Sincerely yours,
Mike.
Re: [PATCH v2 00/10] sh: remove NUMA and SPARSEMEM support
Posted by John Paul Adrian Glaubitz 3 days, 20 hours ago
Hi Mike,

On Wed, 2026-06-03 at 18:32 +0300, Mike Rapoport wrote:
> On Mon, May 18, 2026 at 02:05:39PM +0200, John Paul Adrian Glaubitz wrote:
> > Hi Mike,
> > 
> > On Mon, 2026-05-18 at 14:43 +0300, Mike Rapoport wrote:
> > > Gentle ping?
> > 
> > It's on my TODO list for this week!
> 
> It's sad to see this being dragged since mid April (if we count v1 and
> there were really minor changes in v2).

I apologize. I am doing the maintenance as a hobby in my free time, it's
not my primary job and it can sometimes take me a bit longer to take up
changes.

> If you don't have time to take care of that, just say so and we'll take
> this via one of the mm trees in the next cycle.

It should be better this week. I've been recently busy with CVE fixes during
my dayjob and the workload was extremely high.

I am not going to let this slip, don't worry. It's just been a bit too much
stress the past weeks due to the AI CVE reporting.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913