From mboxrd@z Thu Jan 1 00:00:00 1970 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 093CAC3ABBC for ; Fri, 9 May 2025 07:47:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 731AB6B00BA; Fri, 9 May 2025 03:47:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6AE2B6B00BB; Fri, 9 May 2025 03:47:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 49ACA6B00BC; Fri, 9 May 2025 03:47:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 1F5DE6B00BA for ; Fri, 9 May 2025 03:47:00 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 325D4CBA0F for ; Fri, 9 May 2025 07:47:01 +0000 (UTC) X-FDA: 83422588242.16.369F20C Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.201]) by imf29.hostedemail.com (Postfix) with ESMTP id 6E894120003 for ; Fri, 9 May 2025 07:46:59 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=RVwEHQPJ; spf=pass (imf29.hostedemail.com: domain of 38rIdaAoKCBcz4xA3LHxA83BB381.zB985AHK-997Ixz7.BE3@flex--changyuanl.bounces.google.com designates 209.85.215.201 as permitted sender) smtp.mailfrom=38rIdaAoKCBcz4xA3LHxA83BB381.zB985AHK-997Ixz7.BE3@flex--changyuanl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746776819; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4JV2egkEexGC2KVdW3wwgddRMOlB2ZWufNhl8IHgg18=; b=dtOIlREEpP0kDjOGhgPkbUmtqugvDOqW1U2jvzIifNvuuc8UX+TId+Eq1hAejAqUXjkED4 Nm+jBomrcragH5xsLmOdMv7pT9aFvZX47xD8uk8Z7q1gM62KcGzXN2/Q0678iPKHX3bNq0 SR0YJO6x5/XjmWvc5ntrHjSKHw9Sz8Q= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=RVwEHQPJ; spf=pass (imf29.hostedemail.com: domain of 38rIdaAoKCBcz4xA3LHxA83BB381.zB985AHK-997Ixz7.BE3@flex--changyuanl.bounces.google.com designates 209.85.215.201 as permitted sender) smtp.mailfrom=38rIdaAoKCBcz4xA3LHxA83BB381.zB985AHK-997Ixz7.BE3@flex--changyuanl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746776819; a=rsa-sha256; cv=none; b=17cisUS4F//54gF5uw6Q2+Avywlm8PNudJ9Foenv1x+gwysaKnMkzI7Ic/qcmAzqC939OV s+o8s6Ue7tjW8NQNCx8F6Ka94TCk37rv8vXOccYt4k/dQpG2hEI8BsLIx+VMYE7+0E01gs EPi9lRWaNivtf4Hy6mb6J5fScZKhguU= Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-b0e0c573531so1270786a12.3 for ; Fri, 09 May 2025 00:46:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746776818; x=1747381618; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=4JV2egkEexGC2KVdW3wwgddRMOlB2ZWufNhl8IHgg18=; b=RVwEHQPJijiUYtWAvhIoEB3apO7jYvErYVyF8xLDwC56hrkS3WuGw5JenRVhnNPkos CTk+T7sA1VS8rGB1pMPg2oSurwU5VvHFSisWvhgzY9AfpgmNZ8f9hYjjAb9/ns/FNt9V L7amEQZx3STaTkFeAxNXyUpfunob4FQsDysuWVkQNQK6MLQ7zmbAQ4a1538rMOT7cXE8 GJ4Pz6xxYfz46CrOP31RnOT8atQ4AWmeHyi5xZ2EIMmFiIR1kpujNhOT9dxnkRS/MGiS bxypjFoxGxaidoIthb+mEPBjUpB4dKURak+eSqtBqOomRm3q3+CD0fDZofq3UE3AuPYi 2PNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746776818; x=1747381618; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4JV2egkEexGC2KVdW3wwgddRMOlB2ZWufNhl8IHgg18=; b=UhUq7hTOBkYWAe9jRz3J6CZJeDgwoySiHHniWwVcDD9863SSgSAxrRBU7NOld4BvQI mzHZCu/DFBlraWfohtd5EZNDydGeBjNsjfxzAzmKY2muD/5RoMa6p14eBQ9nrU8JQDlh pESKD1MjoH4+2fjQaX6QIav6w1t43RXBlkw35nhI1zOD25sZcW9ZqxMTpgsEP3o0gGYK 2YhoBxkhp74IDklQe7DD8TXygsGbKyBIigY8Mq3JYLADZ9OhnwmZhCqIh8MLmwZEi3uq AA2+USzGdXumy/OP152Rff4u+2iXi7f059XU3aI3CWBWNvCe924aQJjzsKTT1uuuwfpQ yT0g== X-Forwarded-Encrypted: i=1; AJvYcCUb3QAYaatlHUL32qaUMSsrHFPjC9gVE/KAode/WFnm+gsoEP4WpvmMh78elm+/XqBlt4GADAqAKg==@kvack.org X-Gm-Message-State: AOJu0Yzjic7gKV4o6+k7q2LSCsAOqXAuWfos7Bhe89I7HxwMIY7xeTc5 dbCg91XQqAzmnJU6VMPraZrfydG410J8WMVS9QVbBLfLYV+jF0nfGS7kCCOvFoMAs1gBp6I6k52 WvHP+4ot96PtsXngpgQ== X-Google-Smtp-Source: AGHT+IE8BHG0gIhtKMP95nkOnFyM8l48yB2kt14KYWpJX66kgx1Q1oJi29flkDnsQNF/jOCJx+09Qacohn+DYiah X-Received: from pge26.prod.google.com ([2002:a05:6a02:2d1a:b0:b1b:caa8:2ec9]) (user=changyuanl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:158d:b0:1f5:64a4:aeac with SMTP id adf61e73a8af0-215abd23d71mr3064222637.33.1746776818314; Fri, 09 May 2025 00:46:58 -0700 (PDT) Date: Fri, 9 May 2025 00:46:21 -0700 In-Reply-To: <20250509074635.3187114-1-changyuanl@google.com> Mime-Version: 1.0 References: <20250509074635.3187114-1-changyuanl@google.com> X-Mailer: git-send-email 2.49.0.1015.ga840276032-goog Message-ID: <20250509074635.3187114-4-changyuanl@google.com> Subject: [PATCH v8 03/17] memblock: introduce memmap_init_kho_scratch() From: Changyuan Lyu To: akpm@linux-foundation.org, linux-kernel@vger.kernel.org Cc: anthony.yznaga@oracle.com, arnd@arndb.de, ashish.kalra@amd.com, benh@kernel.crashing.org, bp@alien8.de, catalin.marinas@arm.com, corbet@lwn.net, dave.hansen@linux.intel.com, devicetree@vger.kernel.org, dwmw2@infradead.org, ebiederm@xmission.com, graf@amazon.com, hpa@zytor.com, jgowans@amazon.com, kexec@lists.infradead.org, krzk@kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, luto@kernel.org, mark.rutland@arm.com, mingo@redhat.com, pasha.tatashin@soleen.com, pbonzini@redhat.com, peterz@infradead.org, ptyadav@amazon.de, robh@kernel.org, rostedt@goodmis.org, rppt@kernel.org, saravanak@google.com, skinsburskii@linux.microsoft.com, tglx@linutronix.de, thomas.lendacky@amd.com, will@kernel.org, x86@kernel.org, Changyuan Lyu Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 6E894120003 X-Stat-Signature: st11e4uufwwgra1kcjbtd3mfusq6g8in X-HE-Tag: 1746776819-326069 X-HE-Meta: U2FsdGVkX1+HcyMKX/4NSQIgXOdlVk2bOdD0SE7m3WmljMkZxPGQNbZHj+k0Wbgvsvzh8TZOD9BfbYz2M2CVTLa865eSN7VM7Lnp9/+rW4aUNtQqbmSI4C3H0OrhFjbb7WqT97Wl+G4KrVPK/tfeZk6upEnuOzZNj8e64azFMwJq3c6/XRfoOyLF08w9duRXuMn9xHem6JF5Q79zahYi7utee82A0m+3GSXRTm7BOt8jwasz2qUdQQQfgkKVMpkF6Ozg4kYmyIx/fE7VkUPCrgVFxVRjvEUl7dpZi3K6AFoXWRRbHttIZqbzJS6IYbyOTkDKFlzVrjqZTS+SEj/MTCFAHIlNRrQpk//xsZn8DLV3iMxnIP/fxKfKi5mYDAAfq/4YoEo0exL+IQicWBB7Dorg+HH7nQQq9PkdVkhj8OTmpzoQuaEX57oo8IPGwDVb/ALn6ZmnnmRYGIoiV+Dj00FYc4Y3LLh2K6CvSQvuG50qlLSJU7SNubhVLQggQUFzb2vxIdIau8KmNO+3x5GvlQj2ypbOXWQvX3q1aRKLF/1y70+cytmgqc6OwlqXeyn86Nk0z/Yk9imQpRdQD2+oZEeCt2km7hqclPLsu2F1MrqmNijIpqnh2+ck4raYtkhMpj4q6qNK3nFABMq4F33RDGct0heiVmqDaVD3hoX9YLAqJe0GFdVAh+yF7HQOZmIObns74q+vizroPBX3OFinDNoL/GyguIZ+78FZB/BlsXBAxJfW7qZFpSWgMpujgFqAx5kfi9oW1oLqeZgpGvZdw8KaTeWYTGyJqJBjdLbNdpyftNNCYBhu2HKT+rl6WXD8Nz/fthpIuUv7B3PtXsQDysybsPf1U2Yck131dbxO4mEEyzhynjJOQsaU9t2dj56dbw+WaPfVycngmhr5ufDSnX6Iu9Og+wbq3yKvfTyDZxLWScVPPa0gmsX/uARGuFYsJ+1910o60nqAUrhtGfi COzfy3xk wETr/DGib6EowNZKhHYvqOWXq+LOBvOogAOkLZgdmyQOdpBp3X1jsAW0BBZUuIxdBUOitru6IOGbRUlygMJbflpoSjYAkRFrt/XAQlLfhdcoNi4kz/8O/ywdt6zMiPne2QW62agsiUB/R4poWvLqwib1897dDcbua7Z77A5SmGQFRi3mOiqqKrXmWkg6x6bpgRwlgxhM3qHUatePhhYJtxC+raOzq6q4DIKaYXhYaaSw5+0m4YPwtp6wwhWNSkZan1IVr/DVODl4n4pYL/nJHZURob9oPvBqCQUpkLnA4TFPQiDpnYhg1jxV/DUaQH9F+bQkYiP73jNu+M+xEKzoeD7+7tNnV7i8q47pN9dldmF1RHLTH65E4+03Ev+hJ3w0c2prDr/FEmpkE/zPEtXsOx70IGKJOwNV2YUEWUZfjJ27VU6A1zo76aDRotbK+IMO0PIwr5hh9dFB8LAtuOvuMshAwLYkPfqjLpfYzJkZDUK93hXUmWttq2+QL4rWUjr6XIhmxI/8j0t5pI279LrIfAYw45I75ayzQ1pM1KGlFmy/Jeuv/rzJJtYQ4b+SOwRrcnkWLHbtCLZ+3dMdsqKTB2yujPUsMOe3ALpii5hSL+if722LKDTokwxhUw285Pcn3T0cCgwpXD3qwPzQ= 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: List-Subscribe: List-Unsubscribe: From: "Mike Rapoport (Microsoft)" With deferred initialization of struct page it will be necessary to initialize memory map for KHO scratch regions early. Add memmap_init_kho_scratch() method that will allow such initialization in upcoming patches. Signed-off-by: Mike Rapoport (Microsoft) Signed-off-by: Changyuan Lyu --- include/linux/memblock.h | 2 ++ mm/internal.h | 2 ++ mm/memblock.c | 22 ++++++++++++++++++++++ mm/mm_init.c | 11 ++++++++--- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 993937a6b9620..bb19a25342246 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h @@ -635,9 +635,11 @@ static inline void memtest_report_meminfo(struct seq_file *m) { } #ifdef CONFIG_MEMBLOCK_KHO_SCRATCH void memblock_set_kho_scratch_only(void); void memblock_clear_kho_scratch_only(void); +void memmap_init_kho_scratch_pages(void); #else static inline void memblock_set_kho_scratch_only(void) { } static inline void memblock_clear_kho_scratch_only(void) { } +static inline void memmap_init_kho_scratch_pages(void) {} #endif #endif /* _LINUX_MEMBLOCK_H */ diff --git a/mm/internal.h b/mm/internal.h index e9695baa59226..acfcefcbb6c03 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1121,6 +1121,8 @@ DECLARE_STATIC_KEY_TRUE(deferred_pages); bool __init deferred_grow_zone(struct zone *zone, unsigned int order); #endif /* CONFIG_DEFERRED_STRUCT_PAGE_INIT */ +void init_deferred_page(unsigned long pfn, int nid); + enum mminit_level { MMINIT_WARNING, MMINIT_VERIFY, diff --git a/mm/memblock.c b/mm/memblock.c index 6eba0dfe87155..b9148822db7aa 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -946,6 +946,28 @@ __init void memblock_clear_kho_scratch_only(void) { kho_scratch_only = false; } + +__init void memmap_init_kho_scratch_pages(void) +{ + phys_addr_t start, end; + unsigned long pfn; + int nid; + u64 i; + + if (!IS_ENABLED(CONFIG_DEFERRED_STRUCT_PAGE_INIT)) + return; + + /* + * Initialize struct pages for free scratch memory. + * The struct pages for reserved scratch memory will be set up in + * reserve_bootmem_region() + */ + __for_each_mem_range(i, &memblock.memory, NULL, NUMA_NO_NODE, + MEMBLOCK_KHO_SCRATCH, &start, &end, &nid) { + for (pfn = PFN_UP(start); pfn < PFN_DOWN(end); pfn++) + init_deferred_page(pfn, nid); + } +} #endif /** diff --git a/mm/mm_init.c b/mm/mm_init.c index 9659689b8ace0..128c100fdb977 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -743,7 +743,7 @@ defer_init(int nid, unsigned long pfn, unsigned long end_pfn) return false; } -static void __meminit init_deferred_page(unsigned long pfn, int nid) +static void __meminit __init_deferred_page(unsigned long pfn, int nid) { if (early_page_initialised(pfn, nid)) return; @@ -763,11 +763,16 @@ static inline bool defer_init(int nid, unsigned long pfn, unsigned long end_pfn) return false; } -static inline void init_deferred_page(unsigned long pfn, int nid) +static inline void __init_deferred_page(unsigned long pfn, int nid) { } #endif /* CONFIG_DEFERRED_STRUCT_PAGE_INIT */ +void __meminit init_deferred_page(unsigned long pfn, int nid) +{ + __init_deferred_page(pfn, nid); +} + /* * Initialised pages do not have PageReserved set. This function is * called for each range allocated by the bootmem allocator and @@ -784,7 +789,7 @@ void __meminit reserve_bootmem_region(phys_addr_t start, if (pfn_valid(start_pfn)) { struct page *page = pfn_to_page(start_pfn); - init_deferred_page(start_pfn, nid); + __init_deferred_page(start_pfn, nid); /* * no need for atomic set_bit because the struct -- 2.49.0.1015.ga840276032-goog