Message ID | 20210604064916.26580-4-rppt@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Remove DISCINTIGMEM memory model | expand |
On 6/3/21 11:49 PM, Mike Rapoport wrote: > From: Mike Rapoport <rppt@linux.ibm.com> > > DISCONTIGMEM was replaced by FLATMEM with freeing of the unused memory map > in v5.11. > > Remove the support for DISCONTIGMEM entirely. > > Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> Looks non intrusive, but I'd still like to give this a spin on hardware - considering highmem on ARC has tendency to go sideways ;-) Can you please share a branch ! Acked-by: Vineet Gupta <vgupta@synopsys.com> Thx, -Vineet > --- > arch/arc/Kconfig | 13 ------------ > arch/arc/include/asm/mmzone.h | 40 ----------------------------------- > arch/arc/mm/init.c | 8 ------- > 3 files changed, 61 deletions(-) > delete mode 100644 arch/arc/include/asm/mmzone.h > > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig > index 2d98501c0897..d8f51eb8963b 100644 > --- a/arch/arc/Kconfig > +++ b/arch/arc/Kconfig > @@ -62,10 +62,6 @@ config SCHED_OMIT_FRAME_POINTER > config GENERIC_CSUM > def_bool y > > -config ARCH_DISCONTIGMEM_ENABLE > - def_bool n > - depends on BROKEN > - > config ARCH_FLATMEM_ENABLE > def_bool y > > @@ -344,15 +340,6 @@ config ARC_HUGEPAGE_16M > > endchoice > > -config NODES_SHIFT > - int "Maximum NUMA Nodes (as a power of 2)" > - default "0" if !DISCONTIGMEM > - default "1" if DISCONTIGMEM > - depends on NEED_MULTIPLE_NODES > - help > - Accessing memory beyond 1GB (with or w/o PAE) requires 2 memory > - zones. > - > config ARC_COMPACT_IRQ_LEVELS > depends on ISA_ARCOMPACT > bool "Setup Timer IRQ as high Priority" > diff --git a/arch/arc/include/asm/mmzone.h b/arch/arc/include/asm/mmzone.h > deleted file mode 100644 > index b86b9d1e54dc..000000000000 > --- a/arch/arc/include/asm/mmzone.h > +++ /dev/null > @@ -1,40 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0-only */ > -/* > - * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com) > - */ > - > -#ifndef _ASM_ARC_MMZONE_H > -#define _ASM_ARC_MMZONE_H > - > -#ifdef CONFIG_DISCONTIGMEM > - > -extern struct pglist_data node_data[]; > -#define NODE_DATA(nid) (&node_data[nid]) > - > -static inline int pfn_to_nid(unsigned long pfn) > -{ > - int is_end_low = 1; > - > - if (IS_ENABLED(CONFIG_ARC_HAS_PAE40)) > - is_end_low = pfn <= virt_to_pfn(0xFFFFFFFFUL); > - > - /* > - * node 0: lowmem: 0x8000_0000 to 0xFFFF_FFFF > - * node 1: HIGHMEM w/o PAE40: 0x0 to 0x7FFF_FFFF > - * HIGHMEM with PAE40: 0x1_0000_0000 to ... > - */ > - if (pfn >= ARCH_PFN_OFFSET && is_end_low) > - return 0; > - > - return 1; > -} > - > -static inline int pfn_valid(unsigned long pfn) > -{ > - int nid = pfn_to_nid(pfn); > - > - return (pfn <= node_end_pfn(nid)); > -} > -#endif /* CONFIG_DISCONTIGMEM */ > - > -#endif > diff --git a/arch/arc/mm/init.c b/arch/arc/mm/init.c > index 397a201adfe3..abfeef7bf6f8 100644 > --- a/arch/arc/mm/init.c > +++ b/arch/arc/mm/init.c > @@ -32,11 +32,6 @@ unsigned long arch_pfn_offset; > EXPORT_SYMBOL(arch_pfn_offset); > #endif > > -#ifdef CONFIG_DISCONTIGMEM > -struct pglist_data node_data[MAX_NUMNODES] __read_mostly; > -EXPORT_SYMBOL(node_data); > -#endif > - > long __init arc_get_mem_sz(void) > { > return low_mem_sz; > @@ -147,9 +142,6 @@ void __init setup_arch_memory(void) > * to the hole is freed and ARC specific version of pfn_valid() > * handles the hole in the memory map. > */ > -#ifdef CONFIG_DISCONTIGMEM > - node_set_online(1); > -#endif > > min_high_pfn = PFN_DOWN(high_mem_start); > max_high_pfn = PFN_DOWN(high_mem_start + high_mem_sz);
On Fri, Jun 04, 2021 at 02:07:39PM +0000, Vineet Gupta wrote: > On 6/3/21 11:49 PM, Mike Rapoport wrote: > > From: Mike Rapoport <rppt@linux.ibm.com> > > > > DISCONTIGMEM was replaced by FLATMEM with freeing of the unused memory map > > in v5.11. > > > > Remove the support for DISCONTIGMEM entirely. > > > > Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> > > Looks non intrusive, but I'd still like to give this a spin on hardware > - considering highmem on ARC has tendency to go sideways ;-) > Can you please share a branch ! Sure: https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git/log/?h=memory-models/rm-discontig/v2 > Acked-by: Vineet Gupta <vgupta@synopsys.com> Thanks! > Thx, > -Vineet > > > --- > > arch/arc/Kconfig | 13 ------------ > > arch/arc/include/asm/mmzone.h | 40 ----------------------------------- > > arch/arc/mm/init.c | 8 ------- > > 3 files changed, 61 deletions(-) > > delete mode 100644 arch/arc/include/asm/mmzone.h > > > > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig > > index 2d98501c0897..d8f51eb8963b 100644 > > --- a/arch/arc/Kconfig > > +++ b/arch/arc/Kconfig > > @@ -62,10 +62,6 @@ config SCHED_OMIT_FRAME_POINTER > > config GENERIC_CSUM > > def_bool y > > > > -config ARCH_DISCONTIGMEM_ENABLE > > - def_bool n > > - depends on BROKEN > > - > > config ARCH_FLATMEM_ENABLE > > def_bool y > > > > @@ -344,15 +340,6 @@ config ARC_HUGEPAGE_16M > > > > endchoice > > > > -config NODES_SHIFT > > - int "Maximum NUMA Nodes (as a power of 2)" > > - default "0" if !DISCONTIGMEM > > - default "1" if DISCONTIGMEM > > - depends on NEED_MULTIPLE_NODES > > - help > > - Accessing memory beyond 1GB (with or w/o PAE) requires 2 memory > > - zones. > > - > > config ARC_COMPACT_IRQ_LEVELS > > depends on ISA_ARCOMPACT > > bool "Setup Timer IRQ as high Priority" > > diff --git a/arch/arc/include/asm/mmzone.h b/arch/arc/include/asm/mmzone.h > > deleted file mode 100644 > > index b86b9d1e54dc..000000000000 > > --- a/arch/arc/include/asm/mmzone.h > > +++ /dev/null > > @@ -1,40 +0,0 @@ > > -/* SPDX-License-Identifier: GPL-2.0-only */ > > -/* > > - * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com) > > - */ > > - > > -#ifndef _ASM_ARC_MMZONE_H > > -#define _ASM_ARC_MMZONE_H > > - > > -#ifdef CONFIG_DISCONTIGMEM > > - > > -extern struct pglist_data node_data[]; > > -#define NODE_DATA(nid) (&node_data[nid]) > > - > > -static inline int pfn_to_nid(unsigned long pfn) > > -{ > > - int is_end_low = 1; > > - > > - if (IS_ENABLED(CONFIG_ARC_HAS_PAE40)) > > - is_end_low = pfn <= virt_to_pfn(0xFFFFFFFFUL); > > - > > - /* > > - * node 0: lowmem: 0x8000_0000 to 0xFFFF_FFFF > > - * node 1: HIGHMEM w/o PAE40: 0x0 to 0x7FFF_FFFF > > - * HIGHMEM with PAE40: 0x1_0000_0000 to ... > > - */ > > - if (pfn >= ARCH_PFN_OFFSET && is_end_low) > > - return 0; > > - > > - return 1; > > -} > > - > > -static inline int pfn_valid(unsigned long pfn) > > -{ > > - int nid = pfn_to_nid(pfn); > > - > > - return (pfn <= node_end_pfn(nid)); > > -} > > -#endif /* CONFIG_DISCONTIGMEM */ > > - > > -#endif > > diff --git a/arch/arc/mm/init.c b/arch/arc/mm/init.c > > index 397a201adfe3..abfeef7bf6f8 100644 > > --- a/arch/arc/mm/init.c > > +++ b/arch/arc/mm/init.c > > @@ -32,11 +32,6 @@ unsigned long arch_pfn_offset; > > EXPORT_SYMBOL(arch_pfn_offset); > > #endif > > > > -#ifdef CONFIG_DISCONTIGMEM > > -struct pglist_data node_data[MAX_NUMNODES] __read_mostly; > > -EXPORT_SYMBOL(node_data); > > -#endif > > - > > long __init arc_get_mem_sz(void) > > { > > return low_mem_sz; > > @@ -147,9 +142,6 @@ void __init setup_arch_memory(void) > > * to the hole is freed and ARC specific version of pfn_valid() > > * handles the hole in the memory map. > > */ > > -#ifdef CONFIG_DISCONTIGMEM > > - node_set_online(1); > > -#endif > > > > min_high_pfn = PFN_DOWN(high_mem_start); > > max_high_pfn = PFN_DOWN(high_mem_start + high_mem_sz); >
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 2d98501c0897..d8f51eb8963b 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -62,10 +62,6 @@ config SCHED_OMIT_FRAME_POINTER config GENERIC_CSUM def_bool y -config ARCH_DISCONTIGMEM_ENABLE - def_bool n - depends on BROKEN - config ARCH_FLATMEM_ENABLE def_bool y @@ -344,15 +340,6 @@ config ARC_HUGEPAGE_16M endchoice -config NODES_SHIFT - int "Maximum NUMA Nodes (as a power of 2)" - default "0" if !DISCONTIGMEM - default "1" if DISCONTIGMEM - depends on NEED_MULTIPLE_NODES - help - Accessing memory beyond 1GB (with or w/o PAE) requires 2 memory - zones. - config ARC_COMPACT_IRQ_LEVELS depends on ISA_ARCOMPACT bool "Setup Timer IRQ as high Priority" diff --git a/arch/arc/include/asm/mmzone.h b/arch/arc/include/asm/mmzone.h deleted file mode 100644 index b86b9d1e54dc..000000000000 --- a/arch/arc/include/asm/mmzone.h +++ /dev/null @@ -1,40 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com) - */ - -#ifndef _ASM_ARC_MMZONE_H -#define _ASM_ARC_MMZONE_H - -#ifdef CONFIG_DISCONTIGMEM - -extern struct pglist_data node_data[]; -#define NODE_DATA(nid) (&node_data[nid]) - -static inline int pfn_to_nid(unsigned long pfn) -{ - int is_end_low = 1; - - if (IS_ENABLED(CONFIG_ARC_HAS_PAE40)) - is_end_low = pfn <= virt_to_pfn(0xFFFFFFFFUL); - - /* - * node 0: lowmem: 0x8000_0000 to 0xFFFF_FFFF - * node 1: HIGHMEM w/o PAE40: 0x0 to 0x7FFF_FFFF - * HIGHMEM with PAE40: 0x1_0000_0000 to ... - */ - if (pfn >= ARCH_PFN_OFFSET && is_end_low) - return 0; - - return 1; -} - -static inline int pfn_valid(unsigned long pfn) -{ - int nid = pfn_to_nid(pfn); - - return (pfn <= node_end_pfn(nid)); -} -#endif /* CONFIG_DISCONTIGMEM */ - -#endif diff --git a/arch/arc/mm/init.c b/arch/arc/mm/init.c index 397a201adfe3..abfeef7bf6f8 100644 --- a/arch/arc/mm/init.c +++ b/arch/arc/mm/init.c @@ -32,11 +32,6 @@ unsigned long arch_pfn_offset; EXPORT_SYMBOL(arch_pfn_offset); #endif -#ifdef CONFIG_DISCONTIGMEM -struct pglist_data node_data[MAX_NUMNODES] __read_mostly; -EXPORT_SYMBOL(node_data); -#endif - long __init arc_get_mem_sz(void) { return low_mem_sz; @@ -147,9 +142,6 @@ void __init setup_arch_memory(void) * to the hole is freed and ARC specific version of pfn_valid() * handles the hole in the memory map. */ -#ifdef CONFIG_DISCONTIGMEM - node_set_online(1); -#endif min_high_pfn = PFN_DOWN(high_mem_start); max_high_pfn = PFN_DOWN(high_mem_start + high_mem_sz);