Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp2763445pxx; Sun, 1 Nov 2020 09:06:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJzV5KOdAyhqF6mUpgak5oWqsueD50oyAMQUOKJLT9pjsh7CloKdVX/QGehMWnNO5lvwclmu X-Received: by 2002:a17:906:2850:: with SMTP id s16mr12168698ejc.276.1604250413301; Sun, 01 Nov 2020 09:06:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604250413; cv=none; d=google.com; s=arc-20160816; b=vovjaOYsOqXPlUi/uSdxClpGanuT65sIZBe3RWNvZTYr2XvtDOYwtZO1VQm+hOpJZE 7kxYKdgYMCsRwceEsDpkiZJeOVo4Nxrbme7faGy98IZsQhTgfQOe+psxElikyWh+yWHP PZV2DH5HD+May92w8/7q/x+CgkK0PbQfq/6Ctlijplgnyq3lPYSF7KiCsLleoXEfiMx2 c4l7o5VB0VLfOjtMFkzXRRLNQqX8z4XWzSlZwhcae+cFcTHZUs0i0eqXxD5bCIJvdWzd /IOkRb0AV0J4cAag9T/tmlUvMMFc0gkE7MF/IfefoCie4VlhkmjtxurVbFigtLL3GweZ Ye3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=hZ6Iqgp0OsWJdHZ8LhiYYjHZ7qekDkuN2z1ndq5Szro=; b=KWY2e/XPc5eHXhC02dkTqXtcIJXgd6Q7rc38KmTnM6GgSYfadrmKC0C4eOmtdUd9Cv h4rc9MjDzEyHXOq8eEJhey3ckm2Iua3ZwxpQoIZ2ZLDKDDIFiurXxDXlKQ+V29nmSN8m krTex8JtZJ/0eNljKK5xvvJsZ3CdZJ+SqOebK19SuyU3++Vl9+0XAYf+3MfBkLQl0SVr T49qRzRtXHc9YLW0gXlOccm1mOVuLzIsx+JJcoICPdf0qKIWa/BgbsdqrVIKOcElqymO XfPiVzCtBrqQJzQnZ+yEn4p4QaxwLMXLiwag19c0Ew6usYuNFMiaU6XqGnPF+gcMApS4 GXPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FrkPQS2E; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r7si8300223eji.675.2020.11.01.09.06.30; Sun, 01 Nov 2020 09:06:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FrkPQS2E; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727052AbgKARFG (ORCPT + 99 others); Sun, 1 Nov 2020 12:05:06 -0500 Received: from mail.kernel.org ([198.145.29.99]:38564 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726790AbgKARFG (ORCPT ); Sun, 1 Nov 2020 12:05:06 -0500 Received: from aquarius.haifa.ibm.com (nesher1.haifa.il.ibm.com [195.110.40.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1FAFA2074F; Sun, 1 Nov 2020 17:04:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604250305; bh=oXw4Lx1NYuJ69gGGqNamHUkXUylmi9VRKQWFyQVI+YU=; h=From:To:Cc:Subject:Date:From; b=FrkPQS2E0ZQ+PuuS3oma+ZwGGofySdv39YC9LrWPhRCR56yt5T8bw9DGG1PbkpkMk JhiXZHBdj2Tg0cHvoX7pwd236w1hfXnFzVx3jCaOzF19IyG09GNFF8EpLuY+OEnvCz dphHcTa0Kq2BUBQMWmfn5dXwTbV+wTs002IDs+Qs= From: Mike Rapoport To: Andrew Morton Cc: Alexey Dobriyan , Catalin Marinas , Geert Uytterhoeven , Greg Ungerer , John Paul Adrian Glaubitz , Jonathan Corbet , Matt Turner , Meelis Roos , Michael Schmitz , Mike Rapoport , Mike Rapoport , Russell King , Tony Luck , Vineet Gupta , Will Deacon , linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mm@kvack.org, linux-snps-arc@lists.infradead.org Subject: [PATCH v2 00/13] arch, mm: deprecate DISCONTIGMEM Date: Sun, 1 Nov 2020 19:04:41 +0200 Message-Id: <20201101170454.9567-1-rppt@kernel.org> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mike Rapoport Hi, It's been a while since DISCONTIGMEM is generally considered deprecated, but it is still used by four architectures. This set replaces DISCONTIGMEM with a different way to handle holes in the memory map and marks DISCONTIGMEM configuration as BROKEN in Kconfigs of these architectures with the intention to completely remove it in several releases. While for 64-bit alpha and ia64 the switch to SPARSEMEM is quite obvious and was a matter of moving some bits around, for smaller 32-bit arc and m68k SPARSEMEM is not necessarily the best thing to do. On 32-bit machines SPARSEMEM would require large sections to make section index fit in the page flags, but larger sections mean that more memory is wasted for unused memory map. Besides, pfn_to_page() and page_to_pfn() become less efficient, at least on arc. So I've decided to generalize arm's approach for freeing of unused parts of the memory map with FLATMEM and enable it for both arc and m68k. The details are in the description of patches 10 (arc) and 13 (m68k). v2 changes: - remove additional stale '#ifdef CONFIG_SINGLE_MEMORY_CHUNK' on m68k - fix bisectability on m68k v1: https://lore.kernel.org/lkml/20201027112955.14157-1-rppt@kernel.org Mike Rapoport (13): alpha: switch from DISCONTIGMEM to SPARSEMEM ia64: remove custom __early_pfn_to_nid() ia64: remove 'ifdef CONFIG_ZONE_DMA32' statements ia64: discontig: paging_init(): remove local max_pfn calculation ia64: split virtual map initialization out of paging_init() ia64: forbid using VIRTUAL_MEM_MAP with FLATMEM ia64: make SPARSEMEM default and disable DISCONTIGMEM arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL arm, arm64: move free_unused_memmap() to generic mm arc: use FLATMEM with freeing of unused memory map instead of DISCONTIGMEM m68k/mm: make node data and node setup depend on CONFIG_DISCONTIGMEM m68k/mm: enable use of generic memory_model.h for !DISCONTIGMEM m68k: deprecate DISCONTIGMEM Documentation/vm/memory-model.rst | 3 +- arch/Kconfig | 3 ++ arch/alpha/Kconfig | 8 +++ arch/alpha/include/asm/mmzone.h | 14 +---- arch/alpha/include/asm/page.h | 7 +-- arch/alpha/include/asm/pgtable.h | 12 ++--- arch/alpha/include/asm/sparsemem.h | 18 +++++++ arch/alpha/kernel/setup.c | 1 + arch/arc/Kconfig | 3 +- arch/arc/include/asm/page.h | 20 ++++++-- arch/arc/mm/init.c | 29 ++++++++--- arch/arm/Kconfig | 10 +--- arch/arm/mach-bcm/Kconfig | 1 - arch/arm/mach-davinci/Kconfig | 1 - arch/arm/mach-exynos/Kconfig | 1 - arch/arm/mach-highbank/Kconfig | 1 - arch/arm/mach-omap2/Kconfig | 1 - arch/arm/mach-s5pv210/Kconfig | 1 - arch/arm/mach-tango/Kconfig | 1 - arch/arm/mm/init.c | 78 ---------------------------- arch/arm64/Kconfig | 4 +- arch/arm64/mm/init.c | 68 ------------------------ arch/ia64/Kconfig | 11 ++-- arch/ia64/include/asm/meminit.h | 2 - arch/ia64/mm/contig.c | 58 ++++++++++----------- arch/ia64/mm/discontig.c | 44 ++++++++-------- arch/ia64/mm/init.c | 14 ----- arch/ia64/mm/numa.c | 30 ----------- arch/m68k/Kconfig.cpu | 31 +++++++++-- arch/m68k/include/asm/page.h | 2 + arch/m68k/include/asm/page_mm.h | 7 ++- arch/m68k/include/asm/virtconvert.h | 5 -- arch/m68k/mm/init.c | 8 +-- fs/proc/kcore.c | 2 - include/linux/mm.h | 3 -- include/linux/mmzone.h | 42 --------------- mm/memblock.c | 80 +++++++++++++++++++++++++++++ mm/mmzone.c | 14 ----- mm/page_alloc.c | 16 ++++-- mm/vmstat.c | 4 -- 40 files changed, 270 insertions(+), 388 deletions(-) create mode 100644 arch/alpha/include/asm/sparsemem.h base-commit: 3650b228f83adda7e5ee532e2b90429c03f7b9ec -- 2.28.0