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 34E09C3ABC9 for ; Fri, 16 May 2025 09:51:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 554F56B011B; Fri, 16 May 2025 05:51:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 500B86B011C; Fri, 16 May 2025 05:51:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3C8396B011D; Fri, 16 May 2025 05:51:09 -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 08AC46B011B for ; Fri, 16 May 2025 05:51:09 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D317D1A1C22 for ; Fri, 16 May 2025 09:51:09 +0000 (UTC) X-FDA: 83448302658.01.F816E8D Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf30.hostedemail.com (Postfix) with ESMTP id E5E9D80007 for ; Fri, 16 May 2025 09:51:07 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=fGqf0+Mo; spf=pass (imf30.hostedemail.com: domain of ardb@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=ardb@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747389068; 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=wpmEv5y2T0r+CAelgGDk8WZr1e6/0UzQw2CUZz1jhoc=; b=ovdulCUUne8bux5x/GE42xoznm0t9rlMso7PjmA02zu14U8eXVbmcbWAipSYK3SNHjCWFY kNtpIqlmcIL69ZTKlF/c8P8G4xptKjqh5nAydKHZwz0+aobbBcHjz9xOxaRASG3GwBAkIX xK0zyfnNnCw0Byq73dgwxYhS6XPCmgo= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=fGqf0+Mo; spf=pass (imf30.hostedemail.com: domain of ardb@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=ardb@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747389068; a=rsa-sha256; cv=none; b=HZVcSuxrLCOukuw4BKKu41JfOsZ3QsC+79LH/4QIWGgSHsR0A0eTQ7CfM5rmoZqEPAI2Qk +W73mqzeqn36TVfVgz9CIItDwi3xUr1X4XIyZyapFkM7Euyv0lml/JqziyYYTvmWYcq7uN 7+hoUMDnXejA80zQfXuDyjj+seu/dt0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id A276A5C3F98 for ; Fri, 16 May 2025 09:48:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C28AC4CEE4 for ; Fri, 16 May 2025 09:51:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1747389066; bh=/jAWXR6VKTKQSEmI6JrJ5jlZYyO2DKHCGM36Numsajs=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=fGqf0+MoRS1/UIGOVH5m2r+dFKA2BY1/DIU7tDFv6ZQFWXUuKsXdRbpcRoh2ej20T 0cWQmfmxnVSrPVFcYSSPYEmdJ0fhi7yKZZ5ofvOx6Gt7lmXwfaw64IJ0ZUYJjuSlK9 dZNdjganGReYFAJSbmYJipc6x017Z11dfLUETOg/20JaKiSNX+NHIAX+h6scQFjjCC OFxq1qamsfMYxOLmM/1VMq+3IiMojdAm4YhR4FeihgRaBxRNV1Y3wLEkQhnHisxMZn QfzLBch2+kln10ExkAi2sy7qIVNKttrbtb0IxxA2pAL7PijmK9MplNrqIwMj02gGsO ySphWh88fCvLA== Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-54b0d638e86so2311583e87.1 for ; Fri, 16 May 2025 02:51:06 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCXLVYu0E9IhZG3aDnvrk4Hdq14j6TpmB7OI5Rmj3YUL6ziQrXXinnTrbgMGBDRuimCk862TpQnUag==@kvack.org X-Gm-Message-State: AOJu0Yz9W+EdgDW7UjNY8xNsBmXU5k6vGMqp+BK13f9eTbLv4QQ4yzep xgU1JdaDLOYzEN6s6ObGgiMcfr54UEOwNUl9nuvMqFbl9IB4SMSxFrl9VwjHkrEUN0o1dqzYJNn WByYcbCJgxjQ15xx3aSPuUb8I0tBGG04= X-Google-Smtp-Source: AGHT+IGbo5ZSAqFfCoTDfiNzELg0CQUhk3Gl4Jge7Pzr0r/eMYBkHyuRoMUh2uZmfKdJ32lXEy1yzfZJj1dCdPbXlvE= X-Received: by 2002:a05:6512:2616:b0:545:2871:7cd5 with SMTP id 2adb3069b0e04-550e97bfc09mr421925e87.15.1747389065018; Fri, 16 May 2025 02:51:05 -0700 (PDT) MIME-Version: 1.0 References: <20250516091534.3414310-1-kirill.shutemov@linux.intel.com> <20250516091534.3414310-2-kirill.shutemov@linux.intel.com> In-Reply-To: <20250516091534.3414310-2-kirill.shutemov@linux.intel.com> From: Ard Biesheuvel Date: Fri, 16 May 2025 10:50:50 +0100 X-Gmail-Original-Message-ID: X-Gm-Features: AX0GCFtwvkgkQcSJHaBvXi0OGJh1BP9q2wUBN4cXzu3cTwzMsUmdgboTcKKTlmU Message-ID: Subject: Re: [PATCHv2 1/3] x86/64/mm: Always use dynamic memory layout To: "Kirill A. Shutemov" Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Jonathan Corbet , Andy Lutomirski , Peter Zijlstra , Jan Kiszka , Kieran Bingham , Michael Roth , Rick Edgecombe , Brijesh Singh , Sandipan Das , Juergen Gross , Tom Lendacky , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-efi@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: E5E9D80007 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: i1wjy5a7q88ndk6gj9e9j8pow8yaqyur X-HE-Tag: 1747389067-253606 X-HE-Meta: U2FsdGVkX18bZ+2NKWhO+mSmEhw6mfXy6cy/L8cSF0+Fjn3Ci5ARwqNUXNR7GVE7YiA4xFZkq+TsGg+k7Hjpa7BZmW2TzNYvkY7QA5D2Mb68fJY4SfRBUabK8t3SKaAUVBUqYDt/lpGqp5HHE65vXvIABZzpMKsXEBjTpD78y/mdf1bMBOX+GyEeAFtPUd88aw3m5yfUvoL4N3C4eUMnEFKluNz3gBr0BUyQTNPv6VkjWKDwp3iL6KIY500WFvYqZFGsYGkF/wrAlZY34DycRdQid3VAG/FQXqEOqA3K9t1HCbDvg5a1um4R3OhMpzQPjayKE6YvzTWgUmxcXWaS+JO8BEsO9QKiXMuxCTH4aqNLKHGs8AIDEC48BLUqsKmlT1+ctEvvM2ben/A4qVlpP5mLSH4Zo46lMweWDvY2oImLahGeEaP2K6fkPQtdzLw1NyIDkaUk9DFHtsYgKNQ+JLG2hQ3sD+ZWZomdGCu8eGPiuAARUgkhp7gdUkFZ7zB253rLvHg0nk/1aKZ9YUbUUgk+HBfMsF8uCxLOXEMYiAwk372hSySyVCIkkoBUJELVP3xYiQXJjprkbxof6gaa6V/dKrbp7IIgIm6d8RaYDvLhhM/WbIZVG/KX0YBq+FMLHBmdDUl6owc/c7UzPDgytQxlr2Yj3WXAd4xRrc+Za7EPhzfShSB/2zDv1KHuDybSYM1jAQRNQKAN6emW3/T++GCEEi9HWXqqof8FhMPnZLTm1T0dQxzk506OEauaJsSIXfMfvu+57srJWxmrtHNIt4eGP3oZm6i11drDx05bgr0F7oOdbxn2tZ0HqHw9bUTfIvqOlQlTzQgw90OJe3Ekumi+sR+NnF51hvEDtX30z3AY1X4gil6n51FANR7EPGFHjvYuoZajQPoC88JFoc+7kjJ8E9+Tf1MdjtQQYGbA80B/N1rk/de786aiv1M5ix5xx9Ep1Vj+NoVv1DPArWn e+m9NQTl 4yKruiYXs3gljsLvwhu7LjMWICbTdgGrNrjKh1OE9vlL8UQRN9sVyeBKY5fG2B9tytYyhw9obxi3ZH0II+TvZkLiQt2F0bprhFbklWcI+1RvnPCCF0yKCnVg1U6Jby8/kPu1jEnrrWzOxWoq96eMuqhqOi8DwYZA1im+YL4Sh+HP22dHPd8/At5GaNC4J7XNLRaFrnDLPBgOpXz3sl1D0c2e0kFzX+kNxziBKeqOrjFiAf3kT03rBbfzuIhtQzGYVSwlbgwoGXuldWUz3rcVIZbnpzoofEOpumJoEuUgV8MtaEXVMi8S3068TpWlU48gmApkoa0jCRi2pzd0= 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: On Fri, 16 May 2025 at 10:15, Kirill A. Shutemov wrote: > > Dynamic memory layout is used by KASLR and 5-level paging. > > CONFIG_X86_5LEVEL is going to be removed, making 5-level paging support > unconditional which requires unconditional support of dynamic memory > layout. > > Remove CONFIG_DYNAMIC_MEMORY_LAYOUT. > > Signed-off-by: Kirill A. Shutemov Reviewed-by: Ard Biesheuvel > --- > arch/x86/Kconfig | 8 -------- > arch/x86/include/asm/page_64_types.h | 4 ---- > arch/x86/include/asm/pgtable_64_types.h | 6 ------ > arch/x86/kernel/head64.c | 2 -- > scripts/gdb/linux/pgtable.py | 4 +--- > 5 files changed, 1 insertion(+), 23 deletions(-) > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 891a69b308cb..d3c2da3b2f0b 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -1467,7 +1467,6 @@ config X86_PAE > config X86_5LEVEL > bool "Enable 5-level page tables support" > default y > - select DYNAMIC_MEMORY_LAYOUT > select SPARSEMEM_VMEMMAP > depends on X86_64 > help > @@ -2167,17 +2166,10 @@ config PHYSICAL_ALIGN > > Don't change this unless you know what you are doing. > > -config DYNAMIC_MEMORY_LAYOUT > - bool > - help > - This option makes base addresses of vmalloc and vmemmap as well as > - __PAGE_OFFSET movable during boot. > - > config RANDOMIZE_MEMORY > bool "Randomize the kernel memory sections" > depends on X86_64 > depends on RANDOMIZE_BASE > - select DYNAMIC_MEMORY_LAYOUT > default RANDOMIZE_BASE > help > Randomizes the base virtual address of kernel memory sections > diff --git a/arch/x86/include/asm/page_64_types.h b/arch/x86/include/asm/page_64_types.h > index 1faa8f88850a..6b8c8169c71d 100644 > --- a/arch/x86/include/asm/page_64_types.h > +++ b/arch/x86/include/asm/page_64_types.h > @@ -41,11 +41,7 @@ > #define __PAGE_OFFSET_BASE_L5 _AC(0xff11000000000000, UL) > #define __PAGE_OFFSET_BASE_L4 _AC(0xffff888000000000, UL) > > -#ifdef CONFIG_DYNAMIC_MEMORY_LAYOUT > #define __PAGE_OFFSET page_offset_base > -#else > -#define __PAGE_OFFSET __PAGE_OFFSET_BASE_L4 > -#endif /* CONFIG_DYNAMIC_MEMORY_LAYOUT */ > > #define __START_KERNEL_map _AC(0xffffffff80000000, UL) > > diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h > index e83721db18c9..eee06f77b245 100644 > --- a/arch/x86/include/asm/pgtable_64_types.h > +++ b/arch/x86/include/asm/pgtable_64_types.h > @@ -128,15 +128,9 @@ extern unsigned int ptrs_per_p4d; > #define __VMEMMAP_BASE_L4 0xffffea0000000000UL > #define __VMEMMAP_BASE_L5 0xffd4000000000000UL > > -#ifdef CONFIG_DYNAMIC_MEMORY_LAYOUT > # define VMALLOC_START vmalloc_base > # define VMALLOC_SIZE_TB (pgtable_l5_enabled() ? VMALLOC_SIZE_TB_L5 : VMALLOC_SIZE_TB_L4) > # define VMEMMAP_START vmemmap_base > -#else > -# define VMALLOC_START __VMALLOC_BASE_L4 > -# define VMALLOC_SIZE_TB VMALLOC_SIZE_TB_L4 > -# define VMEMMAP_START __VMEMMAP_BASE_L4 > -#endif /* CONFIG_DYNAMIC_MEMORY_LAYOUT */ > > #ifdef CONFIG_RANDOMIZE_MEMORY > # define DIRECT_MAP_PHYSMEM_END direct_map_physmem_end > diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c > index 14f7dda20954..9f617be64fa9 100644 > --- a/arch/x86/kernel/head64.c > +++ b/arch/x86/kernel/head64.c > @@ -59,14 +59,12 @@ unsigned int ptrs_per_p4d __ro_after_init = 1; > EXPORT_SYMBOL(ptrs_per_p4d); > #endif > > -#ifdef CONFIG_DYNAMIC_MEMORY_LAYOUT > unsigned long page_offset_base __ro_after_init = __PAGE_OFFSET_BASE_L4; > EXPORT_SYMBOL(page_offset_base); > unsigned long vmalloc_base __ro_after_init = __VMALLOC_BASE_L4; > EXPORT_SYMBOL(vmalloc_base); > unsigned long vmemmap_base __ro_after_init = __VMEMMAP_BASE_L4; > EXPORT_SYMBOL(vmemmap_base); > -#endif > > /* Wipe all early page tables except for the kernel symbol map */ > static void __init reset_early_page_tables(void) > diff --git a/scripts/gdb/linux/pgtable.py b/scripts/gdb/linux/pgtable.py > index 30d837f3dfae..09aac2421fb8 100644 > --- a/scripts/gdb/linux/pgtable.py > +++ b/scripts/gdb/linux/pgtable.py > @@ -29,11 +29,9 @@ def page_mask(level=1): > raise Exception(f'Unknown page level: {level}') > > > -#page_offset_base in case CONFIG_DYNAMIC_MEMORY_LAYOUT is disabled > -POB_NO_DYNAMIC_MEM_LAYOUT = '0xffff888000000000' > def _page_offset_base(): > pob_symbol = gdb.lookup_global_symbol('page_offset_base') > - pob = pob_symbol.name if pob_symbol else POB_NO_DYNAMIC_MEM_LAYOUT > + pob = pob_symbol.name > return gdb.parse_and_eval(pob) > > > -- > 2.47.2 > >