From: Wei Yang <richard.weiyang@gmail.com>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: Wei Yang <richard.weiyang@gmail.com>,
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 <rppt@kernel.org>
Subject: Re: [PATCH 2/3] modpost: .meminit.* is not in init section when CONFIG_MEMORY_HOTPLUG set
Date: Thu, 4 Jul 2024 02:27:57 +0000 [thread overview]
Message-ID: <20240704022757.fq62i4nhb5eignvf@master> (raw)
In-Reply-To: <CAK7LNAR08Nx3-8XYe4qmUegDFo2zLUvkVdA1t51g1Bamh5Tteg@mail.gmail.com>
On Wed, Jul 03, 2024 at 11:44:38PM +0900, Masahiro Yamada wrote:
>On Wed, Jul 3, 2024 at 8:40 AM Wei Yang <richard.weiyang@gmail.com> 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 <richard.weiyang@gmail.com>
>> CC: Mike Rapoport (IBM) <rppt@kernel.org>
>> ---
>> 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 <sam@ravnborg.org>
>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
>
You mean something like this?
diff --git a/include/linux/init.h b/include/linux/init.h
index 58cef4c2e59a..388f0a4c34e9 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -85,10 +85,12 @@
#define __exit __section(".exit.text") __exitused __cold notrace
/* Used for MEMORY_HOTPLUG */
+#ifndef CONFIG_MEMORY_HOTPLUG
#define __meminit __section(".meminit.text") __cold notrace \
__latent_entropy
#define __meminitdata __section(".meminit.data")
#define __meminitconst __section(".meminit.rodata")
+#endif
/* For assembly routines */
#define __HEAD .section ".head.text","ax"
>That is what we did in the Linux 2.6.* era, which had much worse
>section mismatch coverage.
>
I guess you mean this is not a good practice.
Then I am confused how we do the mismatch check unconditionally?
After commit
commit eb8f689046b857874e964463619f09df06d59fad
Author: Sam Ravnborg <sam@ravnborg.org>
Date: Sun Jan 20 20:07:28 2008 +0100
Use separate sections for __dev/__cpu/__mem code/data
Sections .meminit.* will be put into INIT_SECTION conditionally, but we always
do the mismatch check unconditionally. It will report mismatch when .meminit.*
is not in INIT_SECTION. It looks not correct to me.
Maybe I am not fully understand your message. Would you mind explaining more
on what is the correct way to do?
--
Wei Yang
Help you, Help me
next prev parent reply other threads:[~2024-07-04 2:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-02 23:40 [PATCH 1/3] mm: use zonelist_zone() to get zone Wei Yang
2024-07-02 23:40 ` [PATCH 2/3] modpost: .meminit.* is not in init section when CONFIG_MEMORY_HOTPLUG set Wei Yang
2024-07-03 1:52 ` Andrew Morton
2024-07-03 14:49 ` Masahiro Yamada
2024-07-03 14:44 ` Masahiro Yamada
2024-07-04 2:27 ` Wei Yang [this message]
2024-07-05 6:54 ` Wei Yang
2024-07-06 6:12 ` Wei Yang
2024-07-06 13:50 ` Masahiro Yamada
2024-07-07 0:04 ` Wei Yang
2024-07-02 23:40 ` [PATCH 3/3] mm/page_alloc: put __free_pages_core() in __meminit section Wei Yang
2024-07-05 9:03 ` [PATCH 1/3] mm: use zonelist_zone() to get zone David Hildenbrand
2024-07-06 0:51 ` Wei Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240704022757.fq62i4nhb5eignvf@master \
--to=richard.weiyang@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=masahiroy@kernel.org \
--cc=nathan@kernel.org \
--cc=nicolas@fjasle.eu \
--cc=rppt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.