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 822F4C282DE for ; Thu, 13 Mar 2025 18:11:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C49F6280011; Thu, 13 Mar 2025 14:11:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BD418280010; Thu, 13 Mar 2025 14:11:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A79FF280011; Thu, 13 Mar 2025 14:11:46 -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 7DED2280010 for ; Thu, 13 Mar 2025 14:11:46 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DD1AEAE481 for ; Thu, 13 Mar 2025 18:11:47 +0000 (UTC) X-FDA: 83217321054.23.DF176B0 Received: from mail-wr1-f73.google.com (mail-wr1-f73.google.com [209.85.221.73]) by imf29.hostedemail.com (Postfix) with ESMTP id ADB34120008 for ; Thu, 13 Mar 2025 18:11:45 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=pxXdKEvR; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of 34B_TZwgKCLEaRTbdReSXffXcV.TfdcZelo-ddbmRTb.fiX@flex--jackmanb.bounces.google.com designates 209.85.221.73 as permitted sender) smtp.mailfrom=34B_TZwgKCLEaRTbdReSXffXcV.TfdcZelo-ddbmRTb.fiX@flex--jackmanb.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741889505; a=rsa-sha256; cv=none; b=gYuQAYhUZEYICtROEUBaC9ks0pESxGCfRa/hsE0I1i/5EKIqV2eDPjZY2gDP1R7masoj8c FX2O5vDQfeemRFueXX9i8TqOW1B+2G4EQuzpYLuh1UWqCWxgC5woTk79ffvOLVGQka6tc3 K++8hNdyX2k/tZuWxmffAB2F2XmiH0E= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=pxXdKEvR; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of 34B_TZwgKCLEaRTbdReSXffXcV.TfdcZelo-ddbmRTb.fiX@flex--jackmanb.bounces.google.com designates 209.85.221.73 as permitted sender) smtp.mailfrom=34B_TZwgKCLEaRTbdReSXffXcV.TfdcZelo-ddbmRTb.fiX@flex--jackmanb.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741889505; 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=Yd3MTUJa5EaKKcsOqm6EUTHveqQqPDqzenzbNHF0zNE=; b=iXtKRpgDL+4Xrt+FcZW+ORwH/VIHO9biHGxTBhgnSdpaBFM+tCAyJ5wR2cvHG/T5BGpK5h 3rzk5rKglGTo/OCRN0n8qq4RX9ioBRoZGtfEPxHC/+crnHtkoimpV8sYUWQqlXedlWULgr pNtk/iJfXHJ0DpLxVki3Y6nMnQ/aGQw= Received: by mail-wr1-f73.google.com with SMTP id ffacd0b85a97d-3912d5f6689so730476f8f.1 for ; Thu, 13 Mar 2025 11:11:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741889504; x=1742494304; 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=Yd3MTUJa5EaKKcsOqm6EUTHveqQqPDqzenzbNHF0zNE=; b=pxXdKEvRAwCx90juMcxzeoLJQM0OUXnruLs2Z9IDPL8nLfQ6/oKgV7QV9G4BRpAZQM P3Mdi2goecYBA8toV3Mmb2Fe8QmqA8m3J2/Su+ud9WfHvjo0KEp0FLnhFAWETWpIQYfP vVugWgfby+RIg/8Mua84N1KB5LFpx4ISyy5pMCUjj0Im1i0pzKHBQQnbnGKHwBzVoVrR h7MOl6zn/JqCM5Ra4yy22tynpkSBmAYyEaurVMQlmBcrz+3juUo7GxG54UeB3IE61PUd 8wsb78KQlZSYL8cx2qE/40L2ykrdp3q2bJjij7yyxXr4zzvP4SlcmNUcTMaiL64MPDjW AsLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741889504; x=1742494304; 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=Yd3MTUJa5EaKKcsOqm6EUTHveqQqPDqzenzbNHF0zNE=; b=OnGBUZiD7i7WV2N71q9B85l24B5oQDzWFGVNeksk/YCLoLxh7DjCPKUBeYEOz9NnxU zBWIjNBtXgzhgZkGEBlYArve2Mdn3bm2tRWKZ8yTG5B+tN5hyyr03ztrUakIc7x6htnn H4pqPG1sUYo5wufdCkgwesk73X6+wajw14D6ChiA85WEQf1ELnO45BuvIFJosYgOYbHk 0cTtlV5l5q814EITgUOvjgBlZnqVwU8eICZ+nhxdWjbP8RDv90uH2GTkcHDNRIlYAYfw uk94INOfFTYFJERV9MrYOcbTg0J6zrjAY9b8W+25xftYx/kHbRGAc4Kc++ftlj4WA7zO S45w== X-Forwarded-Encrypted: i=1; AJvYcCXXPtvHT2OZeEk4PsYoubgJgB9MIhT1KMO77X9PS0pe8i5hrCpfQ+VJpIDe0mRdGnDqcwlYxD5Z1Q==@kvack.org X-Gm-Message-State: AOJu0YyHewFg1o6hMaMS1hCBdp/fRfkhfpb75hkyEpFaZA/1+vyY9W/k S2J/zetwvOWKHfonUbeRWlM4FcEzAm2d0aAe0SVjqSw18WplIOMRomvaJydILVM+wNrPeAqxBiU fWGTbOerdSQ== X-Google-Smtp-Source: AGHT+IFsOBeq83+HmwcjVeSsK8GiNED4UzJeglwlfgEFKTnF1muToCLx1a+QuwroI+KWJKQsz/7UlqSE3IjxUQ== X-Received: from wmbfp13.prod.google.com ([2002:a05:600c:698d:b0:43c:fb36:c419]) (user=jackmanb job=prod-delivery.src-stubby-dispatcher) by 2002:adf:8b45:0:b0:391:9b2:f49a with SMTP id ffacd0b85a97d-396c3e16b07mr499843f8f.55.1741889504104; Thu, 13 Mar 2025 11:11:44 -0700 (PDT) Date: Thu, 13 Mar 2025 18:11:21 +0000 In-Reply-To: <20250313-asi-page-alloc-v1-0-04972e046cea@google.com> Mime-Version: 1.0 References: <20250313-asi-page-alloc-v1-0-04972e046cea@google.com> X-Mailer: b4 0.14.2 Message-ID: <20250313-asi-page-alloc-v1-2-04972e046cea@google.com> Subject: [PATCH RFC 02/11] x86/mm: Factor out phys_pgd_init() From: Brendan Jackman To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Andrew Morton , David Rientjes , Vlastimil Babka , David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Mike Rapoport , Junaid Shahid , Reiji Watanabe , Patrick Bellasi , Brendan Jackman , Yosry Ahmed Content-Type: text/plain; charset="utf-8" X-Rspamd-Server: rspam07 X-Rspam-User: X-Stat-Signature: yu3os3codmowcc5u4yryrcrink7b8ao3 X-Rspamd-Queue-Id: ADB34120008 X-HE-Tag: 1741889505-723247 X-HE-Meta: U2FsdGVkX19nrOfEgWoKj/EwQuscPCO5S0dLOSH8t4zLUjLnrXTkAOyVN0e0m1n3yLUHEoxAHusJqkvZjfFI82S2zkuRwphJs1wmuAs34+BfHHyU680MlTqGvP5q+28Bw66LXq4+156Rvc88VNwIw4qgZ0T396b9p9SLk225KMS9kMpncrpKJ/yQI/CZmDBobX5vl8gK7mnxTxfi7fty2uvUMkrVs/mvWkdQAaS6zodqVWmwPGPNCmH1UEtgPLzIvsq1blxQWm2PSWoGuoNriSh94EeFfVcMZZEBJLPGyLpgSIISblQe/yRM/RuzLwqlLg/M8YOMj2TsjLF832aA+Tn963OxCkHHd7QowtjT4M4xE79G1a0PWLYV2VuibqIGLafFm13yhpNmBVxkbgTntUxdDoTkeD2PuAJD0keOshnT1vrcYpH63thT2KIgzAsZCL+VO9VhKlD55yita1fDI3KG7IangfQIjiso4vuyJzAoK9PN40wEL//7J0VCPujFRZzfk4TthVh4Mqp74+VxOunm5Pnd7NM9wOH6owtbg+MYXWWRf4JrbRXAjAjF8gSlPTTsNNbK/tw4y8k6V6qcz2YQZvLAOpMg9hZskrnYOqLW6KxMCS0EjBr2KRBiyYU3emSoOk5BnDmLiGoQn5CHhV40HUNQxfr0NvrfhFTg3V/GdQZWTp8eBtp4tINapHHHguwEq1s8C/49bnG2vODngMTrPRm0uqkwIRzLtAN8AKABFEBTNFOVwoIVsZAP2JTDCYejRlgq615ulywuMT+tq+7um+IYQH2nerCuPq3tESIlytL1eICTGGYWh4uVMBglT6Ms5kvZIcOSouTXq/2Nj9st4IjqM5wA6zWTI1oGH8MwU7sl7aRLNGeylpNf9mdflD6Jhd6yXtI2R0rUVYQUhfKRT1zxbqOjHpJdhVODz3GiE5nqjcMcucxc2YY3e+odQXpeLhT+jTYM9LBy5/u gM50LNxO 1jHPp5WdzTmZYw5UE7KbqwYGsdG/C6+3QgvNMzvVem0iFvxtGbnbd2ssa+23cLBuKOZZWt2pAPYd9vn0mtIeT+zGpZWEZ2VaaYrjHiDQQ43sGlwqTqxbWxyWFYUiYbrVjp+zFkzakM7mJJUXCIY7omSkc5nUU1K2T+csSRI1kbsNogXtWLNj2LY+SNXhz4FjXTN+mzOkhNka6XTmUxIpSTQ+dxPvoP3i7oFIOjF3yyLZtfNegv1aj8azXiqBKMRLIvE302HcRI9bw0oHXgRKPI14ts41Y3JCbpUZ9N5qN/YArcULqHBDfPuIO4o4N9J2JwMUmdeWnRnQXTEbWQJxGIznEm7s5ubUJnI+zZTfCatL57HmvlhZ2sc1raCcIFbiLOrp6iileaXhCgf2Jga5DWsd9vwMKzuPQzP8dXETD2WUAd/fapSwOiCG/M3ixqQgGEAYBynkc+HfqxEDR4FC0T1CzM3nte2UqkvGp7A1IbZzPnx5jUYDPMla4wNSPM5Yq14KBFRUrN50lSfmnZsMcdbiXrry9Bnw6L3UFMAzQBWXkn2uL1XHb6I7+nszGcaBlISR7My79giuo29PXJB31E0no1frvWVzFL4bXWH6SiyhMW14= 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: __kernel_physical_mapping_init() will soon need to work on multiple PGDs, so factor out something similar to phys_p4d_init() and friends, which takes the base of the PGD as an argument. Signed-off-by: Brendan Jackman --- arch/x86/mm/init_64.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 01ea7c6df3036bd185cdb3f54ddf244b79cbce8c..8f75274fddd96b8285aff48493ebad93e30daebe 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -731,21 +731,20 @@ phys_p4d_init(p4d_t *p4d_page, unsigned long paddr, unsigned long paddr_end, } static unsigned long __meminit -__kernel_physical_mapping_init(unsigned long paddr_start, - unsigned long paddr_end, - unsigned long page_size_mask, - pgprot_t prot, bool init) +phys_pgd_init(pgd_t *pgd_page, unsigned long paddr_start, unsigned long paddr_end, + unsigned long page_size_mask, pgprot_t prot, bool init, bool *pgd_changed) { - bool pgd_changed = false; unsigned long vaddr, vaddr_start, vaddr_end, vaddr_next, paddr_last; + *pgd_changed = false; + paddr_last = paddr_end; vaddr = (unsigned long)__va(paddr_start); vaddr_end = (unsigned long)__va(paddr_end); vaddr_start = vaddr; for (; vaddr < vaddr_end; vaddr = vaddr_next) { - pgd_t *pgd = pgd_offset_k(vaddr); + pgd_t *pgd = pgd_offset_pgd(pgd_page, vaddr); p4d_t *p4d; vaddr_next = (vaddr & PGDIR_MASK) + PGDIR_SIZE; @@ -771,15 +770,29 @@ __kernel_physical_mapping_init(unsigned long paddr_start, (pud_t *) p4d, init); spin_unlock(&init_mm.page_table_lock); - pgd_changed = true; + *pgd_changed = true; } - if (pgd_changed) - sync_global_pgds(vaddr_start, vaddr_end - 1); - return paddr_last; } +static unsigned long __meminit +__kernel_physical_mapping_init(unsigned long paddr_start, + unsigned long paddr_end, + unsigned long page_size_mask, + pgprot_t prot, bool init) +{ + bool pgd_changed; + unsigned long paddr_last; + + paddr_last = phys_pgd_init(init_mm.pgd, paddr_start, paddr_end, page_size_mask, + prot, init, &pgd_changed); + if (pgd_changed) + sync_global_pgds((unsigned long)__va(paddr_start), + (unsigned long)__va(paddr_end) - 1); + + return paddr_last; +} /* * Create page table mapping for the physical memory for specific physical -- 2.49.0.rc1.451.g8f38331e32-goog