From patchwork Wed Aug 2 18:36:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yun Levi X-Patchwork-Id: 13338734 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3345DC001E0 for ; Wed, 2 Aug 2023 18:36:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A4EFF2801D6; Wed, 2 Aug 2023 14:36:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9FEB62801AA; Wed, 2 Aug 2023 14:36:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8C6562801D6; Wed, 2 Aug 2023 14:36:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7D5872801AA for ; Wed, 2 Aug 2023 14:36:21 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id B9CB4C0747 for ; Wed, 2 Aug 2023 18:36:20 +0000 (UTC) X-FDA: 81080019720.08.15D8D90 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by imf02.hostedemail.com (Postfix) with ESMTP id BDACF80026 for ; Wed, 2 Aug 2023 18:36:18 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="Y0WhxoV/"; spf=pass (imf02.hostedemail.com: domain of ppbuk5246@gmail.com designates 209.85.221.46 as permitted sender) smtp.mailfrom=ppbuk5246@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691001378; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=TAs2W0UQPvG+IMRnbk4btgVlH770IjvAYL2tx8M/WQo=; b=dD4TxiaCPu8f0IRmgNkYlQOl/ILQHrUOq9p+Bytjbf/jMN3NaAS5TRm0M9cdctVeawXgFE hgLibUtWuuPAUAxCXgdM6AjFt8pGKnuIcSH5csbG+cJNmmdLbL6C/aKiWSQsQ+KsWnFGix 3vRtSLkq7/5hkplMxcLHTZU/dUCg6FI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691001378; a=rsa-sha256; cv=none; b=NOTisRYof98zeyDUGbpPrIeUV/wvezPmarO3tafYqOAQj5MPyei/Ur8wtIz53yo5YRnW/w fLeTSeND+IiL6+3D0LaXQTp5/s3nBz0dOASNlDaNd0eKnqG0rodcX2HxV1YZneeTDJSgnZ Chfcklv1Yl894yDxoAviZyTiVxaa2WM= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="Y0WhxoV/"; spf=pass (imf02.hostedemail.com: domain of ppbuk5246@gmail.com designates 209.85.221.46 as permitted sender) smtp.mailfrom=ppbuk5246@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-3178fa77b27so106801f8f.2 for ; Wed, 02 Aug 2023 11:36:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691001377; x=1691606177; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=TAs2W0UQPvG+IMRnbk4btgVlH770IjvAYL2tx8M/WQo=; b=Y0WhxoV/BzAocRJ6IJmR0uV2Pq0+TNdd0NezQ/SRyF+Kbz8K4DGauZiFY/NktvtwR0 1IBGENdk8cwRnPqNa33a+uZXNT9V4HdV0yfHr/VWbEekJctSBupAqMset2u9zbJOZ976 bhsank+kn1yQpM9JJ4BooL1vewrYaI2dLDP9umlvIPMbfuAXNtzSR00hhscVorvRA+lQ KMhZqxbj/QJ9zVLnG6kFquAUgKvNJOBI/kNU8+QYQB0Q29xGXT8v9pYI/G/JPWA5GriJ RjRHb9hVHKjvzAGFIWl3Q+FkXr9reiTFWq+TZQUxmug9fhUJyfVc62Sh4R08PiOuDd1G /JSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691001377; x=1691606177; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TAs2W0UQPvG+IMRnbk4btgVlH770IjvAYL2tx8M/WQo=; b=km+7UiVIwRIg85g5ZiYkZqa9kU7GIxxFOaketiCfY52Oo2l1VscYDCSYbIFGBBqBid dYVsGrs0xLAHIRnk9zKlrQ3k4CsKR5v67XG2L8hpN6NxuActPUhtY1W5uJkL75zu045V gJ8K1OPaFcOj+BRnIp+4DSItW9tOGCp7WlRXJ+QBYbjwlJ9R6lMzpv4+gYC73CFDUFvC LkRF4LiIy0kvspbopZ7fGTGDOuHnOGTEauCWLTejz7UhD6UzQ9Hmf5+j9te2YDXj4E/g IahCXPuVm4mBR9BFZLK6A7eQ9zganY7CsCCQnB0RoMSny2TmVv9wCdK1YuHp/Xr6NkaL CRAQ== X-Gm-Message-State: ABy/qLYGJSpqweWBi/CcY0x+YlnTI3NsYTGbEh+me63MC6LlyUwNbVIJ q09IySv58Nt8cBlTxp6nfco= X-Google-Smtp-Source: APBJJlFhUQqZe+Xo9YYnuL4IdIpOPvWU+jVICi15RIjPf7K8uwY+77EYoazV0uQThsil71PmxVQrgA== X-Received: by 2002:adf:ce8a:0:b0:317:5c18:f31d with SMTP id r10-20020adfce8a000000b003175c18f31dmr5318090wrn.35.1691001376650; Wed, 02 Aug 2023 11:36:16 -0700 (PDT) Received: from localhost.localdomain (host31-52-141-59.range31-52.btcentralplus.com. [31.52.141.59]) by smtp.gmail.com with ESMTPSA id z1-20020adfd0c1000000b0031424f4ef1dsm19839681wrh.19.2023.08.02.11.36.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Aug 2023 11:36:16 -0700 (PDT) From: Levi Yun To: rppt@kernel.org, akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Levi Yun Subject: [PATCH] mm/mm_init: Ignore kernelcore=mirror boot option when no mirror memory presents. Date: Wed, 2 Aug 2023 19:36:14 +0100 Message-ID: <20230802183614.15520-1-ppbuk5246@gmail.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-Stat-Signature: iq1xwqcgemkecfspffr48643ztqya3ts X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: BDACF80026 X-Rspam-User: X-HE-Tag: 1691001378-786683 X-HE-Meta: U2FsdGVkX1+ztCxbl/qk9Kl7RPKreLlHiQqTGo5HrkX3FQ4joZHv51alXak1JzfKIDBxGo+UK2mL7oxKTWf/UNbr/xurPeg7giKg1LfRfql5iWydqADfF3fsxFv13tNaNBoS2N4m7FWsr33GYN/3+sVQp0hLqcfnwdG8dd3Z6R9Bgb6a7wUz/HYvxRPYJjGnaaad6ryRTnFbtTIuzjqL61D2xlxoA6yh3SbzWsVklczBf6vnZxwvflrt19MTR8CcO7wmZ5tPd/Ca59SVLG6RkrGSXJanelkIBPC/UWSPLSiohF8Szla/vpqTF2WOeQqPLezHC20Y7dWl9iTORbXGXJS2wi0aNrsWxwoYrFI4CDZrF/i4FsoOMOEWrSNmAfVJLFCw96UbHJ5AwaalVH3I3GtihiPx14jbjVBLWPPkQ6Tn/OJg2wHm0tfkHnctxM7fOoZ3jUycNGWanqhA1qdZgMM+yVm7xPUdcsbEWQbGT3aI/lMJMRCFIEiww8+CxUpV8p5NU35EJj0IChLyZrAvT6de4XdyB0GAsk87t5TJFdvgy/U8lxlxn/L3LoWYn5WscRT5eMBrcooClQ/ltkSH3pGyvtrGTFJN0gLkQz0PQ+C+sBUvKnv7lTgSRq6AOpiv+l4h4X77yiKjsEIEKVcAiX/gJXS3z4wK8y2vxcMGLUrNpIx5Gd8s8snFqctAiddRfHwttIuv3fWN2veqP/tgzqFq+OLHZePRb/smf+zw01W9x/hKMZ92+igD4/4nZtBdlCyKb1bVwoxMJ20njWrUu8/bMeBAT99P88Sbj9wT07YSyjNuwHSGy4Xzdoqx703pL6Zgxjz6czAb45ua5VJtek22XL9GbyHmIDODS+0z7iLzvTkxJcvegxrlqfUFrfefuMlXVh3Xem6UxOH1mwV4+2aX5h70r3Gc9r6iOHAH+qiCTD9molPwAS35BgxdxUQu/psCbLDIXh8fHVdIUuj DOd9C03s tQFc4hMIKAibPuFqyAEkwRIMGLQN4Zq2E/RS6cqvc5NsI+dPZjpxDuqQfWCwFh5aB798yKLQevoucVPEJCarzZtxsbPNmZkbWx/CTQy6mnYF9naRsulGEvJOOPd1cDfz/H45CjlmwnbdHUZu4hoSeIiDCeo4C3WFjHKsOxw6cx2lEBAcVoJbCdzEtKfMVyhQZTClnJTGeQ85Dcsv71ZR0ttWB/wGMTv8Rx8LyXKG5W152fpn7GGyL18ca11ew4hKDGHPXT8cMdS0bDlEC0xEm8b5C9mYBxdKZIvrJvsa8Q+ay0ArTnnXu9i/Nrm8tKCJUdQUuZFRtJolELaewdUIvrVlbyIZSKjK+JMcHJvQIiKiCQ0vERDS1wpOGBNB4kMDS6f0qIzCJ5x0s4Cic367/vgdnmqeq3w8w9DBKeJjzSsmp42z0eCZnIUQZGt3c+Au2mFvxroCF2OQjcvFn4q+Ii6sWTNLDQy3MnY6PdHImo6mcbZc= 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: In the machine where no mirror memory is set, All memory region in ZONE_NORMAL is used as ZONE_MOVABLE when kernelcore=mirror boot option is used. So, ZONE_NORMAL couldn't be populated properly because all of ZONE_NORMAL pages is absent. To avoid this abnormal situation, ignore disable kernelcore=mirror option when no mirror memory is found. Signed-off-by: Levi Yun --- mm/mm_init.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index a1963c3322af..4c180ef1a993 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -376,10 +376,13 @@ static void __init find_zone_movable_pfns_for_nodes(void) */ if (mirrored_kernelcore) { bool mem_below_4gb_not_mirrored = false; + bool no_mirror_mem = true; for_each_mem_region(r) { - if (memblock_is_mirror(r)) + if (memblock_is_mirror(r)) { + no_mirror_mem = false; continue; + } nid = memblock_get_region_node(r); @@ -398,6 +401,12 @@ static void __init find_zone_movable_pfns_for_nodes(void) if (mem_below_4gb_not_mirrored) pr_warn("This configuration results in unmirrored kernel memory.\n"); + if (no_mirror_mem) { + pr_warn("There is no mirrored memory. Ignore kernelcore=mirror.\n"); + mirrored_kernelcore = false; + memset(zone_movable_pfn, 0x00, sizeof(zone_movable_pfn)); + } + goto out2; }