[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPhsuW44n8wzx6Ois4hNRWR9S=kB=LL+DqMTtMjAyGY2FVNoUA@mail.gmail.com>
Date: Tue, 17 Jan 2023 10:50:55 -0800
From: Song Liu <song@...nel.org>
To: Thomas Gleixner <tglx@...utronix.de>,
Luis Chamberlain <mcgrof@...nel.org>,
Christophe Leroy <christophe.leroy@...roup.eu>
Cc: songliubraving@...com, Peter Zijlstra <peterz@...radead.org>,
Christoph Hellwig <hch@....de>, linux-modules@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH/RFC] module: replace module_layout with module_memory
Hi Thomas and Luis,
Could you please share your comments on this? Specifically, is this on
the right direction? And, what's your preference with Christophe's
suggestions?
"I dislike how it looks with enums, things like
mod->mod_mem[MOD_MEM_TYPE_INIT
_TEXT] are odd and don't read nicely.
Could we have something nicer like mod->mod_mem_init_text ?
I know it will complicate your for_each_mod_mem_type() but it would look
nicer."
Thanks,
Song
On Tue, Jan 10, 2023 at 10:31 AM Song Liu <song@...nel.org> wrote:
>
> + Christoph
>
> Hi folks,
>
> Could you please share your comments on this work? If there isn't
> major issue with it, maybe we can ship it in 6.3? (so we don't pile
> too many changes in one big set).
>
> Thanks,
> Song
>
> On Fri, Jan 6, 2023 at 2:10 PM Song Liu <song@...nel.org> wrote:
> >
> > module_layout manages different types of memory (text, data, rodata, etc.)
> > in one allocation, which is problematic for some reasons:
> >
> > 1. It is hard to enable CONFIG_STRICT_MODULE_RWX.
> > 2. It is hard to use huge pages in modules (and not break strict rwx).
> > 3. Many archs uses module_layout for arch-specific data, but it is not
> > obvious how these data are used (are they RO, RX, or RW?)
> >
> > Improve the scenario by replacing 2 (or 3) module_layout per module with
> > up to 7 module_memory per module:
> >
> > MOD_MEM_TYPE_TEXT,
> > MOD_MEM_TYPE_DATA,
> > MOD_MEM_TYPE_RODATA,
> > MOD_MEM_TYPE_RO_AFTER_INIT,
> > MOD_MEM_TYPE_INIT_TEXT,
> > MOD_MEM_TYPE_INIT_DATA,
> > MOD_MEM_TYPE_INIT_RODATA,
> >
> > and allocating them separately.
> >
> > Various archs use module_layout for different data. These data are put
> > into different module_memory based on their location in module_layout.
> > IOW, data that used to go with text is allocated with MOD_MEM_TYPE_TEXT;
> > data that used to go with data is allocated with MOD_MEM_TYPE_DATA, etc.
> >
> > Signed-off-by: Song Liu <song@...nel.org>
> > Cc: Luis Chamberlain <mcgrof@...nel.org>
> > Cc: Thomas Gleixner <tglx@...utronix.de>
> > Cc: Peter Zijlstra <peterz@...radead.org>
>
> [...]
Powered by blists - more mailing lists