Message ID | 20210130221035.4169-1-rppt@kernel.org (mailing list archive) |
---|---|
Headers | show
Return-Path: <SRS0=Lw6a=HB=kvack.org=owner-linux-mm@kernel.org> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50E0FC433E0 for <linux-mm@archiver.kernel.org>; Sat, 30 Jan 2021 22:10:48 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id C20FA64E0C for <linux-mm@archiver.kernel.org>; Sat, 30 Jan 2021 22:10:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C20FA64E0C 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 462F36B0005; Sat, 30 Jan 2021 17:10:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 41FD36B0006; Sat, 30 Jan 2021 17:10:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2DACA6B006C; Sat, 30 Jan 2021 17:10:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0071.hostedemail.com [216.40.44.71]) by kanga.kvack.org (Postfix) with ESMTP id 188F76B0005 for <linux-mm@kvack.org>; Sat, 30 Jan 2021 17:10:47 -0500 (EST) Received: from smtpin24.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id CB3B88249980 for <linux-mm@kvack.org>; Sat, 30 Jan 2021 22:10:46 +0000 (UTC) X-FDA: 77763836892.24.story07_330b650275b4 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin24.hostedemail.com (Postfix) with ESMTP id A6A2A1A4A0 for <linux-mm@kvack.org>; Sat, 30 Jan 2021 22:10:46 +0000 (UTC) X-HE-Tag: story07_330b650275b4 X-Filterd-Recvd-Size: 4337 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf47.hostedemail.com (Postfix) with ESMTP for <linux-mm@kvack.org>; Sat, 30 Jan 2021 22:10:46 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id C154561492; Sat, 30 Jan 2021 22:10:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1612044645; bh=77YcxH+eCPwOFkQU6sZz0QWeMg6cwRdjlKD7GsMTqwU=; h=From:To:Cc:Subject:Date:From; b=iDaX/syaAW2XrojjStjvRMKYtZEIRJgVm71qjEFEjf+FqsqaAT0btQKSTi2eaB9mM nu+J+UhagiBUICloKRUDvnj0MtJ5G8uFg8g2o0e+n8k7qEXiDKfDMIeMWlc1fSzIpw a4AvQ2POs2C+tgLjyp+Wg2BtlCoxpumaKIUMYv6o0MUgf29HJkinzONA0rOa34KpS3 0xo7x+9fgH6iAjBGcEb3rRkm02hlChI5rkh1rdGDIG60DeIssdPB+n1HHg2Pd2AbVv DfadvqxXZ09Qt+Q7cm3NQdvOCbFaOVH0ifYTglX4FhQDuenq3F7mQc43oP25nho5z/ h4RLvojt2uqfw== From: Mike Rapoport <rppt@kernel.org> To: Andrew Morton <akpm@linux-foundation.org> Cc: Andrea Arcangeli <aarcange@redhat.com>, Baoquan He <bhe@redhat.com>, Borislav Petkov <bp@alien8.de>, Chris Wilson <chris@chris-wilson.co.uk>, David Hildenbrand <david@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, Linus Torvalds <torvalds@linux-foundation.org>, =?utf-8?q?=C5=81ukasz_Majcz?= =?utf-8?q?ak?= <lma@semihalf.com>, Mel Gorman <mgorman@suse.de>, Michal Hocko <mhocko@kernel.org>, Mike Rapoport <rppt@kernel.org>, Mike Rapoport <rppt@linux.ibm.com>, Qian Cai <cai@lca.pw>, "Sarvela, Tomi P" <tomi.p.sarvela@intel.com>, Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, linux-kernel@vger.kernel.org, linux-mm@kvack.org, stable@vger.kernel.org, x86@kernel.org Subject: [PATCH v4 0/2] mm: fix initialization of struct page for holes in memory layout Date: Sun, 31 Jan 2021 00:10:33 +0200 Message-Id: <20210130221035.4169-1-rppt@kernel.org> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: <linux-mm.kvack.org> |
Series |
mm: fix initialization of struct page for holes in memory layout
|
expand
|
From: Mike Rapoport <rppt@linux.ibm.com> Hi, Commit 73a6e474cb37 ("mm: memmap_init: iterate over memblock regions rather that check each PFN") exposed several issues with the memory map initialization and these patches fix those issues. Initially there were crashes during compaction that Qian Cai reported back in April [1]. It seemed back then that the problem was fixed, but a few weeks ago Andrea Arcangeli hit the same bug [2] and there was an additional discussion at [3]. I didn't appreciate variety of ways BIOSes can report memory in the first megabyte, so v3 of this set caused boot failures on several x86 systems. Hopefully this time I covered all the bases. The first patch here complements commit bde9cfa3afe4 ("x86/setup: don't remove E820_TYPE_RAM for pfn 0") for the cases when BIOS reports the first page as absent or reserved. The second patch is a more robust version of d3921cb8be29 ("mm: fix initialization of struct page for holes in memory layout") that can now handle the above cases as well. v4: * make sure pages in the range 0 - start_pfn_of_lowest_zone are initialized even if an architecture hides them from the generic mm * finally make pfn 0 on x86 to be a part of memory visible to the generic mm as reserved memory. v3: https://lore.kernel.org/lkml/20210111194017.22696-1-rppt@kernel.org * use architectural zone constraints to set zone links for struct pages corresponding to the holes * drop implicit update of memblock.memory * add a patch that sets pfn 0 to E820_TYPE_RAM on x86 v2: https://lore.kernel.org/lkml/20201209214304.6812-1-rppt@kernel.org/): * added patch that adds all regions in memblock.reserved that do not overlap with memblock.memory to memblock.memory in the beginning of free_area_init() [1] https://lore.kernel.org/lkml/8C537EB7-85EE-4DCF-943E-3CC0ED0DF56D@lca.pw [2] https://lore.kernel.org/lkml/20201121194506.13464-1-aarcange@redhat.com [3] https://lore.kernel.org/mm-commits/20201206005401.qKuAVgOXr%akpm@linux-foundation.org Mike Rapoport (2): x86/setup: always add the beginning of RAM as memblock.memory mm: fix initialization of struct page for holes in memory layout arch/x86/kernel/setup.c | 8 ++++ mm/page_alloc.c | 85 ++++++++++++++++++++++++----------------- 2 files changed, 59 insertions(+), 34 deletions(-)