From patchwork Wed Apr 29 12:11:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 11516787 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D3378913 for ; Wed, 29 Apr 2020 12:12:09 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 93E4F20B80 for ; Wed, 29 Apr 2020 12:12:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="hgnMSCWz" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 93E4F20B80 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id BE9678E0008; Wed, 29 Apr 2020 08:12:08 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B720E8E0001; Wed, 29 Apr 2020 08:12:08 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A132E8E0008; Wed, 29 Apr 2020 08:12:08 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0236.hostedemail.com [216.40.44.236]) by kanga.kvack.org (Postfix) with ESMTP id 820A18E0001 for ; Wed, 29 Apr 2020 08:12:08 -0400 (EDT) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 3C4AC5DD5 for ; Wed, 29 Apr 2020 12:12:08 +0000 (UTC) X-FDA: 76760779536.03.jeans33_2faad73b2e10e X-Spam-Summary: 2,0,0,b0c2984a2aac2c5b,d41d8cd98f00b204,rppt@kernel.org,,RULES_HIT:2:41:69:355:379:541:800:960:965:966:967:968:973:988:989:1260:1311:1314:1345:1437:1515:1535:1605:1730:1747:1777:1792:1801:1981:2194:2196:2198:2199:2200:2201:2393:2525:2559:2563:2682:2685:2731:2859:2895:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3865:3866:3867:3868:3870:3871:3872:3874:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4049:4120:4184:4250:4321:4365:4385:4390:4395:4605:5007:6117:6119:6261:6653:6742:6743:7576:8784:9025:9389:9391:9707:10004:11026:11232:11473:11658:11914:12043:12296:12297:12438:12517:12519:12555:12679:12895:12986:13161:13229:13894:14096:14394:21060:21080:21324:21433:21451:21627:21819:30012:30054:30062:30070,0,RBL:198.145.29.99:@kernel.org:.lbl8.mailshell.net-64.201.201.201 62.14.0.100,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fp,MSBL:0,DNSBL:neutral,Custom_rules:0:0:0,LFtime:24,LUA_SUMMARY:none X-HE-Tag: jeans33_2faad73b2e10e X-Filterd-Recvd-Size: 9232 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf20.hostedemail.com (Postfix) with ESMTP for ; Wed, 29 Apr 2020 12:12:07 +0000 (UTC) Received: from aquarius.haifa.ibm.com (nesher1.haifa.il.ibm.com [195.110.40.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 04AE12087E; Wed, 29 Apr 2020 12:11:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588162326; bh=CFoz4ZQtC45vozRHIJrum+IyiIDDM2pB0vein0HN77Q=; h=From:To:Cc:Subject:Date:From; b=hgnMSCWznOV11pnvEM4YfvU+8wv88/ZeNbJu8KMC6K7gkkHInG7wntWOoWVIDBdtt ND0rc8rLqnEbT7tOFkRyD1b9ylk7tlkBvyPKex6XEtZa/Pteq/zSxb4B7MATB4kD7L pDJlFv/WqLPqmQTU05lR7ezlA4acIUyPiaMeu5No= From: Mike Rapoport To: linux-kernel@vger.kernel.org Cc: Andrew Morton , Baoquan He , Brian Cain , Catalin Marinas , "David S. Miller" , Geert Uytterhoeven , Greentime Hu , Greg Ungerer , Guan Xuetao , Guo Ren , Heiko Carstens , Helge Deller , Hoan Tran , "James E.J. Bottomley" , Jonathan Corbet , Ley Foon Tan , Mark Salter , Matt Turner , Max Filippov , Michael Ellerman , Michal Hocko , Michal Simek , Nick Hu , Paul Walmsley , Qian Cai , Richard Weinberger , Rich Felker , Russell King , Stafford Horne , Thomas Bogendoerfer , Tony Luck , Vineet Gupta , x86@kernel.org, Yoshinori Sato , linux-alpha@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-c6x-dev@linux-c6x.org, linux-csky@vger.kernel.org, linux-doc@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, openrisc@lists.librecores.org, sparclinux@vger.kernel.org, uclinux-h8-devel@lists.sourceforge.jp, Mike Rapoport Subject: [PATCH v2 00/20] mm: rework free_area_init*() funcitons Date: Wed, 29 Apr 2020 15:11:06 +0300 Message-Id: <20200429121126.17989-1-rppt@kernel.org> X-Mailer: git-send-email 2.26.1 MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Mike Rapoport Hi, After the discussion [1] about removal of CONFIG_NODES_SPAN_OTHER_NODES and CONFIG_HAVE_MEMBLOCK_NODE_MAP options, I took it a bit further and updated the node/zone initialization. Since all architectures have memblock, it is possible to use only the newer version of free_area_init_node() that calculates the zone and node boundaries based on memblock node mapping and architectural limits on possible zone PFNs. The architectures that still determined zone and hole sizes can be switched to the generic code and the old code that took those zone and hole sizes can be simply removed. And, since it all started from the removal of CONFIG_NODES_SPAN_OTHER_NODES, the memmap_init() is now updated to iterate over memblocks and so it does not need to perform early_pfn_to_nid() query for every PFN. v2 changes: * move deletion of one of '#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP' from patch 2 to patch 3 where it should have been from the beginning * drop patch that introduced a free_area_init_memoryless_node() wrapper for free_area_init_node() * remove unused next_pfn(), thanks Qian * drop stale comment in memmap_init_zone(), as per David --- Sincerely yours, Mike. [1] https://lore.kernel.org/lkml/1585420282-25630-1-git-send-email-Hoan@os.amperecomputing.com Baoquan He (1): mm: memmap_init: iterate over memblock regions rather that check each PFN Mike Rapoport (19): mm: memblock: replace dereferences of memblock_region.nid with API calls mm: make early_pfn_to_nid() and related defintions close to each other mm: remove CONFIG_HAVE_MEMBLOCK_NODE_MAP option mm: free_area_init: use maximal zone PFNs rather than zone sizes mm: use free_area_init() instead of free_area_init_nodes() alpha: simplify detection of memory zone boundaries arm: simplify detection of memory zone boundaries arm64: simplify detection of memory zone boundaries for UMA configs csky: simplify detection of memory zone boundaries m68k: mm: simplify detection of memory zone boundaries parisc: simplify detection of memory zone boundaries sparc32: simplify detection of memory zone boundaries unicore32: simplify detection of memory zone boundaries xtensa: simplify detection of memory zone boundaries mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES mm: free_area_init: allow defining max_zone_pfn in descending order mm: clean up free_area_init_node() and its helpers mm: simplify find_min_pfn_with_active_regions() docs/vm: update memory-models documentation .../vm/numa-memblock/arch-support.txt | 34 --- Documentation/vm/memory-model.rst | 9 +- arch/alpha/mm/init.c | 16 +- arch/alpha/mm/numa.c | 22 +- arch/arc/mm/init.c | 36 +-- arch/arm/mm/init.c | 66 +---- arch/arm64/Kconfig | 1 - arch/arm64/mm/init.c | 56 +--- arch/arm64/mm/numa.c | 9 +- arch/c6x/mm/init.c | 8 +- arch/csky/kernel/setup.c | 26 +- arch/h8300/mm/init.c | 6 +- arch/hexagon/mm/init.c | 6 +- arch/ia64/Kconfig | 1 - arch/ia64/mm/contig.c | 2 +- arch/ia64/mm/discontig.c | 2 +- arch/m68k/mm/init.c | 6 +- arch/m68k/mm/mcfmmu.c | 9 +- arch/m68k/mm/motorola.c | 15 +- arch/m68k/mm/sun3mmu.c | 10 +- arch/microblaze/Kconfig | 1 - arch/microblaze/mm/init.c | 2 +- arch/mips/Kconfig | 1 - arch/mips/loongson64/numa.c | 2 +- arch/mips/mm/init.c | 2 +- arch/mips/sgi-ip27/ip27-memory.c | 2 +- arch/nds32/mm/init.c | 11 +- arch/nios2/mm/init.c | 8 +- arch/openrisc/mm/init.c | 9 +- arch/parisc/mm/init.c | 22 +- arch/powerpc/Kconfig | 10 - arch/powerpc/mm/mem.c | 2 +- arch/riscv/Kconfig | 1 - arch/riscv/mm/init.c | 2 +- arch/s390/Kconfig | 1 - arch/s390/mm/init.c | 2 +- arch/sh/Kconfig | 1 - arch/sh/mm/init.c | 2 +- arch/sparc/Kconfig | 10 - arch/sparc/mm/init_64.c | 2 +- arch/sparc/mm/srmmu.c | 21 +- arch/um/kernel/mem.c | 12 +- arch/unicore32/include/asm/memory.h | 2 +- arch/unicore32/include/mach/memory.h | 6 +- arch/unicore32/kernel/pci.c | 14 +- arch/unicore32/mm/init.c | 43 +-- arch/x86/Kconfig | 10 - arch/x86/mm/init.c | 2 +- arch/x86/mm/numa.c | 8 +- arch/xtensa/mm/init.c | 8 +- include/linux/memblock.h | 8 +- include/linux/mm.h | 28 +- include/linux/mmzone.h | 11 +- mm/Kconfig | 3 - mm/memblock.c | 19 +- mm/memory_hotplug.c | 4 - mm/page_alloc.c | 278 ++++++------------ 57 files changed, 243 insertions(+), 667 deletions(-) delete mode 100644 Documentation/features/vm/numa-memblock/arch-support.txt