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 7462CC30658 for ; Fri, 5 Jul 2024 06:55:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BC7136B0092; Fri, 5 Jul 2024 02:55:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B76C06B0096; Fri, 5 Jul 2024 02:55:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A3F0E6B0098; Fri, 5 Jul 2024 02:55:03 -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 8785A6B0092 for ; Fri, 5 Jul 2024 02:55:03 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1CEDFC15FC for ; Fri, 5 Jul 2024 06:55:03 +0000 (UTC) X-FDA: 82304786886.04.1DAAB7D Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by imf30.hostedemail.com (Postfix) with ESMTP id 243BF80004 for ; Fri, 5 Jul 2024 06:54:59 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=McsyEXpq; spf=pass (imf30.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.46 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=1720162475; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=KtbWFhxeEymIWS8tWUCbo8i07LprGpYbyo4f1G00ZP0=; b=Wn75dtSbBeXR37Woc5Onc57BdpaHgwsdp7hnFDymL93bFVzh7x+dmmCfDtX2FkwP7EeQOc 2ji1jwAfrhTys+Ei0kmvXes/2McXjdb6CWmvFxstjHdaiP97v1VqCoF7PyIIRMM90ULvEH GhMmN7VP4nt2pTnKqiFd4WWCXKGHujY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720162475; a=rsa-sha256; cv=none; b=8PMmrRWz+9y0PDjGzUScRu5EjXNLYIYGEHZpXlzrWw9axlL1kO6Xqa+ki2o0AHg7TrIwJn /4JowumbPR0xtv65d6g9SYccWBhVNhRWjnsL6phMWplv915YSuGXgtfpAtlkMN1/t5YzAz Wxmq3CgxekpMBwT8/Y5tRMHC+6Mux9A= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=McsyEXpq; spf=pass (imf30.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.46 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-a728f74c23dso153618266b.1 for ; Thu, 04 Jul 2024 23:54:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720162498; x=1720767298; darn=kvack.org; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:reply-to:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=KtbWFhxeEymIWS8tWUCbo8i07LprGpYbyo4f1G00ZP0=; b=McsyEXpq4tIlb1OhiCzFCh2YO3qhjpHKaqMXsj2VFNSbf9rXL3sq6u8K/OFZxSG9uO qC8kflUuh3NhKBai39hrEAMQAmtSvW26p4gvzYxNgsuKWyfn0YUc1Ynnb1K/tyWUnPWT 5QYF2f+KK+WLz1HYtYxQ+2qOFP6FsfAkmcrSiz+tRiqurpfRfOR+qkG3MxeU3QIn7WFL o2r7PQc9YG009G3kFRx5thCe1cLCSYoHptcAT21PdNseDnBYfxiD9+iPdaKdmLf5nrR3 QFRwOdZSyFSXaQeg9wsb2ZpuK+og0MDeo5VZD7SzeFnHZYI2GkFGO9JRPJuOdPRzQWRu KsEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720162498; x=1720767298; h=user-agent:in-reply-to:content-transfer-encoding :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=KtbWFhxeEymIWS8tWUCbo8i07LprGpYbyo4f1G00ZP0=; b=P9gaCJ+ey+JL3ZE/plQFf3NLNwyOBxEicyJV2npWxUpvz4qMDK9MS5u3N1I9hmmj0W +CXazvzZzCHqCxxOAJjQnu5LCv1nvuzagrmI7b5XIht7E/9uyfAmfrPkpxs7b0PMqQzf FaklLr+zFZ4Gl4EopV+Exj0o17sfDayKml4JilUeEgVyDY4aN3dIFs30myzG3n3gAdo8 /x5gBSRKtJtQopKsEzgfP0DWjoWXv7Iplx4wfUaCQy9td8AAqTQ3S2M6AEKQVYT1LjVU PKJFyzv8VOXl4ENG0E1MDhDp36+1WM6UpY2uML4skoxMVVnNyJCOURqtaa6Dk7qkuoX4 9PYg== X-Forwarded-Encrypted: i=1; AJvYcCVBGeJ4zA6kEHadh7uUWTNlXpo+HaGdxdPA64Y8t98ngp4sak6KiDI7Q+cf5rd4Wmw/4EKuTNHY1KNijNiy9qYnBQA= X-Gm-Message-State: AOJu0YwwFoPJmM7x3b74N16stbBjW/DobbihHwBDMed6Qj3L+1sLXf/L 66ACskqSQkWtVTW9kIHyCB91dtKQD0MW8pNPLLwW7UoLrqd65R77 X-Google-Smtp-Source: AGHT+IGHx/Vjks1k64fIQj9z77lOxI2plruUsuqWWDgID6a1HNNAIahUxcjbzgjGloIRV61vxwGAGQ== X-Received: by 2002:a17:906:834c:b0:a6f:392d:51a9 with SMTP id a640c23a62f3a-a77ba6dc0ccmr260806866b.14.1720162498306; Thu, 04 Jul 2024 23:54:58 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a77c3772ad5sm74840666b.173.2024.07.04.23.54.57 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 04 Jul 2024 23:54:57 -0700 (PDT) Date: Fri, 5 Jul 2024 06:54:56 +0000 From: Wei Yang To: Masahiro Yamada Cc: Wei Yang , akpm@linux-foundation.org, nathan@kernel.org, nicolas@fjasle.eu, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, Mike Rapoport Subject: Re: [PATCH 2/3] modpost: .meminit.* is not in init section when CONFIG_MEMORY_HOTPLUG set Message-ID: <20240705065456.dogycpd37jun44p5@master> Reply-To: Wei Yang References: <20240702234008.19101-1-richard.weiyang@gmail.com> <20240702234008.19101-2-richard.weiyang@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) X-Rspamd-Queue-Id: 243BF80004 X-Stat-Signature: rhrh1pusp3frx6nu9t7pxycw1pe6kh69 X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1720162499-857512 X-HE-Meta: U2FsdGVkX1+vdBsjVF6/VmoB7OCF81RQko7n4b21ghMpDNlEhDbTM+BJKUYHnQe9X2atbQSM9nC48UpAfbsHztdtrmvn5vhj5HNBi31lPRA2YuDrDXDNYVPz1YT/R4XyAyry7N2oHBRD/ceDEaOo4GrPM/4eqr0a5JhwsDS9vvJAox8/JljVK7vH6YXQN16oX2ddVO6AgISA1KauOknh3cWM+XrOyaaeXR8hiFWAghqDA2dXnZVIV4KemFBoAUOAJ4Ls46YSWL91ILHyp6hDlsqcJFI7Vv/a4gjephqtwP8A/AB4iHKyu/13gDp9y8qr9aAC+/BHccPj1tIDlgz5FidWpKOsnOAH7cUCqYGSMph+yPVv4tjlOm2KVOQSbCinVowZciLtA1kwWVClS8xIT8jcTdfIZ+bfXQuut+Z9IHQgIxj288oLrRKiC6GiKui/PosjkuItm+VtV8gIC2gtK0rtjyEoFF+OCxgJM2ejFX0YUs8+L//lJ4g7E4MQI6G5opPkjdx2KgDbhncaO9Lekcgx5nedccxjnCgzLtGlJY0gtlPjv+BkCyVbvgydaVscVmtQBUab2tpKNkDLOr5dPA4b1wyF/GmndreTrSF4PK1YheeKC1ekzkodxf/GAhJOrYj6m36fbEv1WUIcvXrEmXnEoJVnF7Kmjv7KmZV27o/mcSH7pOuXtR5Duy247D8ybdLg7yASzy3jmxUmoM/rFAa69G6tJ4zNqOEUPG3bPzolvKMa+VzSy8ZLhr3MwEZuJivsDTJ/RIBm1r/RMuRz3PlxrwSibbl+Uy/v7wLW239kvKTEh8N0WpzlD57g1Ku8+Xis/29sVGLWmI8qtODOIuwlP/vFT998LgSmuFZjjqwH780ikgj8WwyGS4uNBevJsGOndVpakeBdw5vlNaodb1K0jipfxCUShllJZX4q8Dr3pIaPrJiO0hDR3ZEfvTtQaw6b5zAqAUzTHb8YKxV DXXUPMnq Fx8zP8RyUeDW0W6YO59QpAouleQ1DGR0DKRDsbFZIfFXftlp9rVAG1ih9CQDwql4SJyhhWq720fy5K7Q6IOBYZfm8M63+ZcCW0tCTjiXqmOyZGerlKeTMKJWErayB9LxJaC/DnPMOyuq5YE14+as67LJX6+F88zB+q7snxi3b8Rm54y8Q0QwBVH+abF3MkqU+VtqO8Bq+H73KOpW/HhYIbed7GqJl8WgqzjnvvAZW7LqUOwxGQTkYeRiEINuvFlmnowT/ntClJn6XOMvmHqUbz2vBjaArLInYwtkgx0hqYwetO1fM98tUlo6zHpDyvrYhMx4zljRY34CK9+KD8mMUV6J8ZKktEWbhxQB0pziemc6G9jPRgG6JKmIHAsU8F9NxxPdXD1lZ/zk2OEl1Kfm0ULiRsFhdxrDVvuN68uEZvtq4vJ77/onuuzQ7qpjjbS6KFv26p8eHpMoeDRG8orPsv+VLSR+M6e6Gy0dYehYMS0e4gjjrp61h7WuV/OvTgLQMgIrgzXSRlABL/Qw7tR3sa0CSxaqkl0qYqdaf7H1NBG7BryVhsB9A1zuv2ZIRL826TmD9X7CblQyESj/iZ60Q1rAsJM+AFzgimml0gEq70z+2u64W29PYP6fc1WTS3OlWQGwwyAuTxmv8SO8PZK0V4e3e2DCVROZ3sg4HbpMFpGsM7J5U9LBe9txahrR5DWXL8YAguZIux8eRKX0LVPEKO/lqyPuIeWPW6GzIONUeFGYBS5q2qqZUn213Maqw2z9FfvUKih/hYevuKymlk1FkwH11pNyqWeE072eRMd4/qpUYN+NLvoksLTl/Bj2eOXLRATPP1RPZvorYqYcM1G2C6aEqnZ8Sd82+IvJhbhE4lnC/AAgxUxeutoB8uNoy9XBo8jxPa+aQHJ2xyUnZCHstdS+QVQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000548, 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 Wed, Jul 03, 2024 at 11:44:38PM +0900, Masahiro Yamada wrote: >On Wed, Jul 3, 2024 at 8:40 AM Wei Yang wrote: >> >> .meminit.* is not put into init section when CONFIG_MEMORY_HOTPLUG is >> set, since we define MEM_KEEP()/MEM_DISCARD() according to >> CONFIG_MEMORY_HOTPLUG. >> >> Signed-off-by: Wei Yang >> CC: Mike Rapoport (IBM) >> --- >> scripts/mod/modpost.c | 10 ++++++++++ >> 1 file changed, 10 insertions(+) > > > >NACK. > > >The section mismatch is performed _unconditionally_. > > > >In the old days, we did this depending on relevant CONFIG options. >It was more than 15 years ago that we stopped doing that. > > >See this: > > >commit eb8f689046b857874e964463619f09df06d59fad >Author: Sam Ravnborg >Date: Sun Jan 20 20:07:28 2008 +0100 > > Use separate sections for __dev/__cpu/__mem code/data > > > > >So, if you wanted to check this only when CONFIG_MEMORY_HOTPLUG=n, >you would need to add #ifdef CONFIG_MEMORY_HOTPLUG to include/linux/init.h > >That is what we did in the Linux 2.6.* era, which had much worse >section mismatch coverage. > Masahiro If you would give me some suggestions, I'd appreciate it a lot. The original thing I want to do is to put function __free_pages_core() in __meminit section, since this function is only used by __init functions and in memory_hotplug.c. This means it is save to release it if CONFIG_MEMORY_HOTPLUG is set. Then I add __meminit to function __free_pages_core() and face the warning from modpost. WARNING: modpost: vmlinux: section mismatch in reference: generic_online_page+0xa (section: .text) -> __free_pages_core (section: .meminit.text) A .text function calls init code is not proper. Then I add __meminit to generic_online_page too. Then I face this warning from modpost. WARNING: modpost: vmlinux: generic_online_page: EXPORT_SYMBOL used for init symbol. Remove __init or EXPORT_SYMBOL. Function generic_online_page() is exported and be used in some modules. And is not allowed to use init tag. When looking into the code, this warning is printed by this code: #define ALL_INIT_SECTIONS INIT_SECTIONS, ALL_XXXINIT_SECTIONS if (match(secname, PATTERNS(ALL_INIT_SECTIONS))) warn("%s: %s: EXPORT_SYMBOL used for init symbol. Remove __init or EXPORT_SYMBOL.\n", mod->name, name); If my understanding is correct, the code means we can't use a function in init section, since the code will be released after bootup. But for this case, when CONFIG_MEMORY_HOTPLUG is set, the section .meminit.* is not put into the real init sections. So the functions are not released and could be used by modules. This behavior is introduced in commit eb8f689046b8(the one you mentioned above). So the check here is not proper to me. We should exclude .meminit.* from ALL_INIT_SECTIONS. Looking forward your suggestion and a proper way to handle this. -- Wei Yang Help you, Help me