From: Mike Rapoport <rppt@kernel.org> To: linux-kernel@vger.kernel.org Cc: Rich Felker <dalias@libc.org>, linux-ia64@vger.kernel.org, linux-doc@vger.kernel.org, Catalin Marinas <catalin.marinas@arm.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, Michal Hocko <mhocko@kernel.org>, "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, Max Filippov <jcmvbkbc@gmail.com>, Guo Ren <guoren@kernel.org>, linux-csky@vger.kernel.org, linux-parisc@vger.kernel.org, sparclinux@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-riscv@lists.infradead.org, Mike Rapoport <rppt@linux.ibm.com>, Greg Ungerer <gerg@linux-m68k.org>, linux-arch@vger.kernel.org, linux-s390@vger.kernel.org, linux-c6x-dev@linux-c6x.org, Baoquan He <bhe@redhat.com>, Jonathan Corbet <corbet@lwn.net>, linux-sh@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>, Helge Deller <deller@gmx.de>, x86@kernel.org, Russell King <linux@armlinux.org.uk>, Ley Foon Tan <ley.foon.tan@in> Subject: [PATCH 08/21] arm64: simplify detection of memory zone boundaries for UMA configs Date: Sun, 12 Apr 2020 22:48:46 +0300 Message-ID: <20200412194859.12663-9-rppt@kernel.org> (raw) In-Reply-To: <20200412194859.12663-1-rppt@kernel.org> From: Mike Rapoport <rppt@linux.ibm.com> The free_area_init() function only requires the definition of maximal PFN for each of the supported zone rater than calculation of actual zone sizes and the sizes of the holes between the zones. After removal of CONFIG_HAVE_MEMBLOCK_NODE_MAP the free_area_init() is available to all architectures. Using this function instead of free_area_init_node() simplifies the zone detection. Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> --- arch/arm64/mm/init.c | 54 -------------------------------------------- 1 file changed, 54 deletions(-) diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index a650adb358ee..d54ad2250dce 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -192,8 +192,6 @@ static phys_addr_t __init max_zone_phys(unsigned int zone_bits) return min(offset + (1ULL << zone_bits), memblock_end_of_DRAM()); } -#ifdef CONFIG_NUMA - static void __init zone_sizes_init(unsigned long min, unsigned long max) { unsigned long max_zone_pfns[MAX_NR_ZONES] = {0}; @@ -209,58 +207,6 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) free_area_init(max_zone_pfns); } -#else - -static void __init zone_sizes_init(unsigned long min, unsigned long max) -{ - struct memblock_region *reg; - unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES]; - unsigned long __maybe_unused max_dma, max_dma32; - - memset(zone_size, 0, sizeof(zone_size)); - - max_dma = max_dma32 = min; -#ifdef CONFIG_ZONE_DMA - max_dma = max_dma32 = PFN_DOWN(arm64_dma_phys_limit); - zone_size[ZONE_DMA] = max_dma - min; -#endif -#ifdef CONFIG_ZONE_DMA32 - max_dma32 = PFN_DOWN(arm64_dma32_phys_limit); - zone_size[ZONE_DMA32] = max_dma32 - max_dma; -#endif - zone_size[ZONE_NORMAL] = max - max_dma32; - - memcpy(zhole_size, zone_size, sizeof(zhole_size)); - - for_each_memblock(memory, reg) { - unsigned long start = memblock_region_memory_base_pfn(reg); - unsigned long end = memblock_region_memory_end_pfn(reg); - -#ifdef CONFIG_ZONE_DMA - if (start >= min && start < max_dma) { - unsigned long dma_end = min(end, max_dma); - zhole_size[ZONE_DMA] -= dma_end - start; - start = dma_end; - } -#endif -#ifdef CONFIG_ZONE_DMA32 - if (start >= max_dma && start < max_dma32) { - unsigned long dma32_end = min(end, max_dma32); - zhole_size[ZONE_DMA32] -= dma32_end - start; - start = dma32_end; - } -#endif - if (start >= max_dma32 && start < max) { - unsigned long normal_end = min(end, max); - zhole_size[ZONE_NORMAL] -= normal_end - start; - } - } - - free_area_init_node(0, zone_size, min, zhole_size); -} - -#endif /* CONFIG_NUMA */ - int pfn_valid(unsigned long pfn) { phys_addr_t addr = pfn << PAGE_SHIFT; -- 2.25.1
next prev parent reply index Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-12 19:48 [PATCH 00/21] mm: rework free_area_init*() funcitons Mike Rapoport 2020-04-12 19:48 ` [PATCH 01/21] mm: memblock: replace dereferences of memblock_region.nid with API calls Mike Rapoport 2020-04-21 2:06 ` Baoquan He 2020-04-12 19:48 ` [PATCH 02/21] mm: make early_pfn_to_nid() and related defintions close to each other Mike Rapoport 2020-04-21 2:24 ` Baoquan He 2020-04-21 8:49 ` Mike Rapoport 2020-04-21 8:49 ` Mike Rapoport 2020-04-21 9:33 ` Baoquan He 2020-04-21 3:31 ` Baoquan He 2020-04-21 8:39 ` Mike Rapoport 2020-04-21 8:39 ` Mike Rapoport 2020-04-12 19:48 ` [PATCH 03/21] mm: remove CONFIG_HAVE_MEMBLOCK_NODE_MAP option Mike Rapoport 2020-04-21 4:23 ` Baoquan He 2020-04-21 9:09 ` Mike Rapoport 2020-04-21 9:09 ` Mike Rapoport 2020-04-21 9:45 ` Baoquan He 2020-04-12 19:48 ` [PATCH 04/21] mm: free_area_init: use maximal zone PFNs rather than zone sizes Mike Rapoport 2020-04-22 23:41 ` Baoquan He 2020-06-15 3:53 ` Greg Ungerer 2020-06-15 6:22 ` Mike Rapoport 2020-06-15 6:22 ` Mike Rapoport 2020-06-15 7:17 ` Greg Ungerer 2020-04-12 19:48 ` [PATCH 05/21] mm: use free_area_init() instead of free_area_init_nodes() Mike Rapoport 2020-04-23 0:02 ` Baoquan He 2020-04-12 19:48 ` [PATCH 06/21] alpha: simplify detection of memory zone boundaries Mike Rapoport 2020-04-12 19:48 ` [PATCH 07/21] arm: " Mike Rapoport 2020-04-12 19:48 ` Mike Rapoport [this message] 2020-04-12 19:48 ` [PATCH 09/21] csky: " Mike Rapoport 2020-04-12 19:48 ` [PATCH 10/21] m68k: mm: " Mike Rapoport 2020-04-12 19:48 ` [PATCH 11/21] parisc: " Mike Rapoport 2020-04-12 19:48 ` [PATCH 12/21] sparc32: " Mike Rapoport 2020-04-12 19:48 ` [PATCH 13/21] unicore32: " Mike Rapoport 2020-04-12 19:48 ` [PATCH 14/21] xtensa: " Mike Rapoport 2020-04-12 19:48 ` [PATCH 15/21] mm: memmap_init: iterate over memblock regions rather that check each PFN Mike Rapoport 2020-04-20 14:26 ` Qian Cai 2020-04-24 7:22 ` David Hildenbrand 2020-04-25 16:49 ` Mike Rapoport 2020-04-25 16:49 ` Mike Rapoport 2020-04-12 19:48 ` [PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES Mike Rapoport 2020-04-23 1:13 ` Baoquan He 2020-04-23 5:50 ` Mike Rapoport 2020-04-23 5:50 ` Mike Rapoport 2020-05-18 21:38 ` Hoan Tran 2020-04-12 19:48 ` [PATCH 17/21] mm: free_area_init: allow defining max_zone_pfn in descending order Mike Rapoport 2020-04-23 2:53 ` Baoquan He 2020-04-23 2:57 ` Baoquan He 2020-04-23 5:55 ` Mike Rapoport 2020-04-23 5:55 ` Mike Rapoport 2020-04-24 0:33 ` Baoquan He 2020-04-12 19:48 ` [PATCH 18/21] mm: rename free_area_init_node() to free_area_init_memoryless_node() Mike Rapoport 2020-04-23 3:14 ` Baoquan He 2020-04-23 6:18 ` Mike Rapoport 2020-04-23 6:18 ` Mike Rapoport 2020-04-12 19:48 ` [PATCH 19/21] mm: clean up free_area_init_node() and its helpers Mike Rapoport 2020-04-12 19:48 ` [PATCH 20/21] mm: simplify find_min_pfn_with_active_regions() Mike Rapoport 2020-04-12 19:48 ` [PATCH 21/21] docs/vm: update memory-models documentation Mike Rapoport
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200412194859.12663-9-rppt@kernel.org \ --to=rppt@kernel.org \ --cc=James.Bottomley@HansenPartnership.com \ --cc=bhe@redhat.com \ --cc=catalin.marinas@arm.com \ --cc=corbet@lwn.net \ --cc=dalias@libc.org \ --cc=deller@gmx.de \ --cc=gerg@linux-m68k.org \ --cc=guoren@kernel.org \ --cc=heiko.carstens@de.ibm.com \ --cc=jcmvbkbc@gmail.com \ --cc=ley.foon.tan@in \ --cc=linux-arch@vger.kernel.org \ --cc=linux-c6x-dev@linux-c6x.org \ --cc=linux-csky@vger.kernel.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-hexagon@vger.kernel.org \ --cc=linux-ia64@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-parisc@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=linux-s390@vger.kernel.org \ --cc=linux-sh@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=mhocko@kernel.org \ --cc=mpe@ellerman.id.au \ --cc=rppt@linux.ibm.com \ --cc=sparclinux@vger.kernel.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-arch Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-arch/0 linux-arch/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-arch linux-arch/ https://lore.kernel.org/linux-arch \ linux-arch@vger.kernel.org public-inbox-index linux-arch Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-arch AGPL code for this site: git clone https://public-inbox.org/public-inbox.git