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 BA31BC25B75 for ; Fri, 24 May 2024 01:47:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 272956B007B; Thu, 23 May 2024 21:47:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 222CF6B0083; Thu, 23 May 2024 21:47:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0EA5D6B0088; Thu, 23 May 2024 21:47:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E4AE16B007B for ; Thu, 23 May 2024 21:47:01 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8207F407C6 for ; Fri, 24 May 2024 01:47:01 +0000 (UTC) X-FDA: 82151601042.23.10AC5D3 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by imf24.hostedemail.com (Postfix) with ESMTP id 87539180023 for ; Fri, 24 May 2024 01:46:59 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IKP0+oPZ; spf=pass (imf24.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.221.44 as permitted sender) smtp.mailfrom=richard.weiyang@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=1716515219; h=from:from:sender:reply-to: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=t6jwG8DKwa2D68PCR9THchOvJn/p8bGOM0gVPOEmuF4=; b=tsDHZWkgOa34rIo1eKsMU/xzvV0FKC/yg+uZ59RRZou28UOsGOo7SF6fW5+f1YYPByi8HQ wYfilZoD22VtLCOPNjmGq+kVeg84zHRQcrZHXJhrIfwfO/EEIMZRHCb6EeIEX1xFRnlBUW 5Boxn1q//aZiM0Jb5DXCHVYkd34Td4M= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716515219; a=rsa-sha256; cv=none; b=p8E68myzYnWYjp6pY6/OwasIluZpNMbJgfF6slfZUBMMGaCDWz3DVR/OtvfxULPYO7tSPq zEidwouRntEs/IdYHHCrFng618zluOreywxql2ynWfnc9/3nvZkGgQB4RinMHtyltz1/XX LOwSoelM6eKbonb63U2LJfz3JLlbuiU= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IKP0+oPZ; spf=pass (imf24.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.221.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-354e0cc9c5cso2274327f8f.0 for ; Thu, 23 May 2024 18:46:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716515218; x=1717120018; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=t6jwG8DKwa2D68PCR9THchOvJn/p8bGOM0gVPOEmuF4=; b=IKP0+oPZjT9qBZsF2/iSAL8/Lthx3350JdcA9T3REUJUu73xRPWZldYjfgBY3xtt/M O+59f/pDSUjRYuZ6pqywNKYOmufyJWRkArZyKyeAuu2HJz6HeeSF/Ufm9sBv7xlfwIdQ Ld/Cd0nywWN6NZWAphCaG9j2seXoigQBovsRt/AIv47ODzFFMHqR7xN9sXycYOhSYGE6 dVY0Oq815+CFQrA2f8FgQlvOVKORvmghsKhfPyAK1E3MVeqAjBqkbb8dF7EfybON9nzG KWOkjMlG7sV6lUFkmjMSLn7lQu6LYSdof9pMZK7W8leblaVMlVz5+MzSv8cdDCEemqLB wBTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716515218; x=1717120018; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=t6jwG8DKwa2D68PCR9THchOvJn/p8bGOM0gVPOEmuF4=; b=uQ4V5Fpz+PT4JK1tV3L/JZuxgqf5/T6XugrtmVbpLi4MK5gJVvsI6m2RlRHdZaUeo8 F0PKa2yJQ/UXq5vlYFkTcjTzmVki3les1gt8fIObMXcdQIpoG7vRFg3Dl6tDLtQsi0eq 7j5Dx+c34OR3kgpItlD1431Ow4HYd3dBeAea+NwS+OUmFOcR9cWO5RJqfaI7FQE3mJ/o aMGCTTA2MDf/B19LqGgdWoEX76VZRGdU34YMudanc/FGhunuDL6lIrSOraJCamGewCWB dMKKsBzGi4dVxhPx57VfiFG30Vn/BtcVTpXEx2hNLxGnHtoSngASZ8FBmv9gOogvIrH8 DGcQ== X-Forwarded-Encrypted: i=1; AJvYcCWmFbjKJL4mLRNNTxOjae+iQG2o+9Heq+bHqWWWWyslU/2latYIAD/9JO6rE21SDXkgakkJO6Hb0PHm9wkfui72lSo= X-Gm-Message-State: AOJu0Yz1Sc8wIG/6J1Gz1Pk0ENPhYypwG8xqbifjWLyRFAQ/6ljd7Z+s 61lerUNIJ5fnDWvMRf2P//2fCle3/KqPf3oTCY9Pww9kuFrqRr/b X-Google-Smtp-Source: AGHT+IHDazZVS98g6jCPWCi6GMzJXJccQeP8EnJhTsM0NPuM+NoCFvUGXOm/kOMvOGJZBv5HNLIsdg== X-Received: by 2002:adf:ffce:0:b0:354:f802:f3a6 with SMTP id ffacd0b85a97d-355245e31b5mr430730f8f.9.1716515217640; Thu, 23 May 2024 18:46:57 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc51ee7sm41771366b.139.2024.05.23.18.46.56 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 23 May 2024 18:46:56 -0700 (PDT) Date: Fri, 24 May 2024 01:46:56 +0000 From: Wei Yang To: Mike Rapoport Cc: Wei Yang , mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu, aneesh.kumar@kernel.org, naveen.n.rao@linux.ibm.com, arnd@arndb.de, anshuman.khandual@arm.com, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org Subject: Re: [Patch v2] mm/memblock: discard .text/.data if CONFIG_ARCH_KEEP_MEMBLOCK not set Message-ID: <20240524014656.odw4yuvhgbu4dgf7@master> Reply-To: Wei Yang References: <20240510020422.8038-1-richard.weiyang@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) X-Rspam-User: X-Stat-Signature: e9hhyne13gfqmejipnciowyhrdg9md43 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 87539180023 X-HE-Tag: 1716515219-510205 X-HE-Meta: U2FsdGVkX18HC3733hfZWHkVGbwnuaYnWQN5tYw/z1ml+pMCBprxfl2pwmydWUCI4sklkbkPO+LiXEbOB0nHwbe/+4gYjtk/CQ8ETHz+vClGe9qX7ZGCf5I5+8+S4Q4kNyMr6NRJdj9T3traFKE2cCoZ2baxyAOIrLmY1HQ/KJLpWfubSEo49WTxZnFyyIadIwrjU6xI2xJDonLqODLgJ+OBhKHJM8zWdzCptdQwszSsnlTJKK+60io35aj3dhM9I7+cV7RaJVqQlH08aOoHDTweFash40X9psVkFQUQiM8L+G96C0lBZKIcBk3RlwAbrXQa+XrrbpUjVytnzsXG5ZwIvXlTu6W4HZAXbobF325VSTk5p3BSMqT7YjOOiGSdTJUHPzRNHXKotx7RmywXm6fgfeLno9kyp5WDqoSoPWdHKS+V2vPAAn5QHZH6V0OW7XXnY8ROLoW1r4dexLOOX3wcVZ8+FQE2BFLivqa55UqbOygTnHJElesV64Z8H7Tx3tQRwRBiXmhqyxg0KDgRkBtbIu4EH6SMk3nMWfeKtmXa8j/sSQ+tSf7kRTAGTgZ0Tyl7OhRmrGvdSwKMGwF/pI6XtR0/xKEJe/6S/B6X9LAgFNYfueGoLBO764hLzUPkigmk/VlomoyVoP7p0r2nswZ9/BbSD9/J5ZvRnGjwLXyS5CxBP5MbOh0Fo4LcYd8fOfM1bqt2UIZ+cmpaUxVT/PTRnFL8KL/3pMJwuPtdJxmlsOyYQfXbVQeYE4xDfYsjKAhjl1z/Zy9ORQkSNW+k1Dn8iGx24rbrxFAOsZbTLtwmEbF+p6FICY8KSqCmR1DiQFLjpqoGy0J+4pyspSxcU1EvcQRdTBJqdiUwSq7kKmZXfJEc0oHmy5GlSJExbdNyG2nNpvfzgcYXIdp8JemJq6vJKnlKrBkEhNUe+noMCsKe/zoZPFEoXakZpePAk+oMqHEu78xjnoZj6kp2VTF RiMgP0vE 7Wt46jy1UprsL6L3/kQO/Jc9In23uwT5bECbzZpAS12eKEqKewQOHMLB3sROyMHOKjlFKRNqrONave4U5SpY7x7yl/EuTub1B9zBlLSTN3CQBcraWvUtLCCxRlEF8Nvg1cMpluftFdL//f5TlZD6aePXhBDT8M0gmlX2P/uAB+ZtQBU7BjnRgjhX3IDfd1Z2Bp52YOpT0yDW5ye//scvksKNKNLllUnTezX0JR61r3EXcXDuMtfxY6fKL4XPfTtC1FeJAX+huKTaw9yph7bw6mGUrvACPTXQJa7LJR0k/z0oB1HnxE+eT+kfPj41MuXAv+i992sFg2W6ADMisNgN3eecS9eNXhCw9B973ClkK1hqgo3L6C3zYg67D5rjgrmZqTpO3B1eD43nOjbB9qffAYpjGoqTHsdgJMPDBn8qSaTrgqqpFDc2v7WrKkMMwcF/zZsVKaxaBnW8Gxat81qTPNsFCBPrapFB5Osx9niHJ/zdzXZNmj8kkYtQIvi0PtGwg86UdsQaeVGZgelt2tRftIGJC2yfyFy4VBZVHMh8Jqd7PP5s4wSy1tFV8Znbof8nOEFqIM2rOEwr9kymgKgA0ynzIsCq2/8XfhHSudMhiqXhDjdIpinyAZw2u0Tr8bAk8MIAWqiKCow0KKUO/qf8WFpMF8q3ZiIDsv+zfVAnitAWd71PImIOenHPrLc1cMR3EuO1e2xtl9kBuoeeI/uv5MwqtkXEYss/LMFlKIEbHZmTmkr3FrlVri4TFRWhTuXr4FUZV 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 Tue, May 21, 2024 at 10:21:52AM +0300, Mike Rapoport wrote: >Hi, > >On Fri, May 10, 2024 at 02:04:22AM +0000, Wei Yang wrote: >> When CONFIG_ARCH_KEEP_MEMBLOCK not set, we expect to discard related >> code and data. But it doesn't until CONFIG_MEMORY_HOTPLUG not set >> neither. >> >> This patch puts memblock's .text/.data into its own section, so that it >> only depends on CONFIG_ARCH_KEEP_MEMBLOCK to discard related code and >> data. >> >> After this, from the log message in mem_init_print_info(), init size >> increase from 2420K to 2432K on arch x86. >> >> Signed-off-by: Wei Yang >> >> --- >> v2: fix orphan section for powerpc >> --- >> arch/powerpc/kernel/vmlinux.lds.S | 1 + >> include/asm-generic/vmlinux.lds.h | 14 +++++++++++++- >> include/linux/memblock.h | 8 ++++---- >> 3 files changed, 18 insertions(+), 5 deletions(-) >> >> +#define __init_memblock __section(".mbinit.text") __cold notrace \ >> + __latent_entropy >> +#define __initdata_memblock __section(".mbinit.data") >> + > >The new .mbinit.* sections should be added to scripts/mod/modpost.c >alongside .meminit.* sections and then I expect modpost to report a bunch >of section mismatches because many memblock functions are called on memory >hotplug even on architectures that don't select ARCH_KEEP_MEMBLOCK. > I tried to add some code in modpost.c, "make all" looks good. May I ask how can I trigger the "mismatch" warning? BTW, if ARCH_KEEP_MEMBLOCK unset, we would discard memblock meta-data. If hotplug would call memblock function, it would be dangerous? The additional code I used is like below. --- scripts/mod/modpost.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 937294ff164f..c837e2882904 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -777,14 +777,14 @@ static void check_section(const char *modname, struct elf_info *elf, #define ALL_INIT_DATA_SECTIONS \ ".init.setup", ".init.rodata", ".meminit.rodata", \ - ".init.data", ".meminit.data" + ".init.data", ".meminit.data", "mbinit.data" #define ALL_PCI_INIT_SECTIONS \ ".pci_fixup_early", ".pci_fixup_header", ".pci_fixup_final", \ ".pci_fixup_enable", ".pci_fixup_resume", \ ".pci_fixup_resume_early", ".pci_fixup_suspend" -#define ALL_XXXINIT_SECTIONS ".meminit.*" +#define ALL_XXXINIT_SECTIONS ".meminit.*", "mbinit.*" #define ALL_INIT_SECTIONS INIT_SECTIONS, ALL_XXXINIT_SECTIONS #define ALL_EXIT_SECTIONS ".exit.*" @@ -799,7 +799,7 @@ static void check_section(const char *modname, struct elf_info *elf, #define INIT_SECTIONS ".init.*" -#define ALL_TEXT_SECTIONS ".init.text", ".meminit.text", ".exit.text", \ +#define ALL_TEXT_SECTIONS ".init.text", ".meminit.text", ".mbinit.text", ".exit.text", \ TEXT_SECTIONS, OTHER_TEXT_SECTIONS enum mismatch { -- 2.34.1 >> #ifndef CONFIG_ARCH_KEEP_MEMBLOCK >> -#define __init_memblock __meminit >> -#define __initdata_memblock __meminitdata >> void memblock_discard(void); >> #else >> -#define __init_memblock >> -#define __initdata_memblock >> static inline void memblock_discard(void) {} >> #endif >> >> -- >> 2.34.1 >> >> > >-- >Sincerely yours, >Mike. -- Wei Yang Help you, Help me