From: Mike Rapoport <rppt@kernel.org>
To: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"mcgrof@kernel.org" <mcgrof@kernel.org>,
"deller@gmx.de" <deller@gmx.de>,
"davem@davemloft.net" <davem@davemloft.net>,
"nadav.amit@gmail.com" <nadav.amit@gmail.com>,
"linux@armlinux.org.uk" <linux@armlinux.org.uk>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-mips@vger.kernel.org" <linux-mips@vger.kernel.org>,
"linux-riscv@lists.infradead.org"
<linux-riscv@lists.infradead.org>,
"hca@linux.ibm.com" <hca@linux.ibm.com>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"kent.overstreet@linux.dev" <kent.overstreet@linux.dev>,
"puranjay12@gmail.com" <puranjay12@gmail.com>,
"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
"palmer@dabbelt.com" <palmer@dabbelt.com>,
"chenhuacai@kernel.org" <chenhuacai@kernel.org>,
"tsbogend@alpha.franken.de" <tsbogend@alpha.franken.de>,
"linux-trace-kernel@vger.kernel.org"
<linux-trace-kernel@vger.kernel.org>,
"linux-parisc@vger.kernel.org" <linux-parisc@vger.kernel.org>,
"christophe.leroy@csgroup.eu" <christophe.leroy@csgroup.eu>,
"x86@kernel.org" <x86@kernel.org>,
"mpe@ellerman.id.au" <mpe@ellerman.id.au>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"rostedt@goodmis.org" <rostedt@goodmis.org>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
"will@kernel.org" <will@kernel.org>,
"dinguyen@kernel.org" <dinguyen@kernel.org>,
"naveen.n.rao@linux.ibm.com" <naveen.n.rao@linux.ibm.com>,
"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
"linux-modules@vger.kernel.org" <linux-modules@vger.kernel.org>,
"bpf@vger.kernel.org" <bpf@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"song@kernel.org" <song@kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"loongarch@lists.linux.dev" <loongarch@lists.linux.dev>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Subject: Re: [PATCH v2 06/12] mm/execmem: introduce execmem_data_alloc()
Date: Sat, 17 Jun 2023 09:44:21 +0300 [thread overview]
Message-ID: <20230617064421.GQ52412@kernel.org> (raw)
In-Reply-To: <90a64b6f040491da16af0694172a6cbdaba33669.camel@intel.com>
On Fri, Jun 16, 2023 at 04:55:53PM +0000, Edgecombe, Rick P wrote:
> On Fri, 2023-06-16 at 11:50 +0300, Mike Rapoport wrote:
> > From: "Mike Rapoport (IBM)" <rppt@kernel.org>
> >
> > Data related to code allocations, such as module data section, need
> > to
> > comply with architecture constraints for its placement and its
> > allocation right now was done using execmem_text_alloc().
> >
> > Create a dedicated API for allocating data related to code
> > allocations
> > and allow architectures to define address ranges for data
> > allocations.
>
> Right now the cross-arch way to specify kernel memory permissions is
> encoded in the function names of all the set_memory_foo()'s. You can't
> just have unified prot names because some arch's have NX and some have
> X bits, etc. CPA wouldn't know if it needs to set or unset a bit if you
> pass in a PROT.
The idea is that allocator never uses CPA. It allocates with the
permissions defined by architecture at the first place and then the callers
might use CPA to change them. Ideally, that shouldn't be needed for
anything but ro_after_init, but we are far from there.
> But then you end up with a new function for *each* combination (i.e.
> set_memory_rox()). I wish CPA has flags like mmap() does, and I wonder
> if it makes sense here instead of execmem_data_alloc().
I don't think execmem should handle all the combinations. The code is
always allocated as ROX for architectures that support text poking and as
RWX for those that don't.
Maybe execmem_data_alloc() will need to able to handle RW and RO data
differently at some point, but that's the only variant I can think of, but
even then I don't expect CPA will be used by execmem.
We also might move resetting the permissions to default from vmalloc to
execmem, but again, we are far from there.
> Maybe that is an overhaul for another day though...
CPA surely needs some love :)
--
Sincerely yours,
Mike.
next prev parent reply other threads:[~2023-06-17 6:45 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-16 8:50 [PATCH v2 00/12] mm: jit/text allocator Mike Rapoport
2023-06-16 8:50 ` [PATCH v2 01/12] nios2: define virtual address space for modules Mike Rapoport
2023-06-16 16:00 ` Edgecombe, Rick P
2023-06-17 5:52 ` Mike Rapoport
2023-06-16 18:14 ` Song Liu
2023-06-16 8:50 ` [PATCH v2 02/12] mm: introduce execmem_text_alloc() and jit_text_alloc() Mike Rapoport
2023-06-16 16:48 ` Kent Overstreet
2023-06-16 18:18 ` Song Liu
2023-06-17 5:57 ` Mike Rapoport
2023-06-17 20:38 ` Andy Lutomirski
2023-06-18 8:00 ` Mike Rapoport
2023-06-19 17:09 ` Andy Lutomirski
2023-06-19 20:18 ` Nadav Amit
2023-06-20 17:24 ` Andy Lutomirski
2023-06-25 16:14 ` Mike Rapoport
2023-06-25 16:59 ` Andy Lutomirski
2023-06-25 17:42 ` Mike Rapoport
2023-06-25 18:07 ` Kent Overstreet
2023-06-26 6:13 ` Song Liu
2023-06-26 9:54 ` Puranjay Mohan
2023-06-26 12:23 ` Mark Rutland
2023-06-26 12:31 ` Mark Rutland
2023-06-26 17:48 ` Song Liu
2023-07-17 17:23 ` Andy Lutomirski
2023-06-26 13:01 ` Mark Rutland
2023-06-19 11:34 ` Kent Overstreet
2023-06-16 8:50 ` [PATCH v2 03/12] mm/execmem, arch: convert simple overrides of module_alloc to execmem Mike Rapoport
2023-06-16 18:36 ` Song Liu
2023-06-16 8:50 ` [PATCH v2 04/12] mm/execmem, arch: convert remaining " Mike Rapoport
2023-06-16 16:16 ` Edgecombe, Rick P
2023-06-17 6:10 ` Mike Rapoport
2023-06-16 18:53 ` Song Liu
2023-06-17 6:14 ` Mike Rapoport
2023-06-16 8:50 ` [PATCH v2 05/12] modules, execmem: drop module_alloc Mike Rapoport
2023-06-16 18:56 ` Song Liu
2023-06-16 8:50 ` [PATCH v2 06/12] mm/execmem: introduce execmem_data_alloc() Mike Rapoport
2023-06-16 16:55 ` Edgecombe, Rick P
2023-06-17 6:44 ` Mike Rapoport [this message]
2023-06-16 20:01 ` Song Liu
2023-06-17 6:51 ` Mike Rapoport
2023-06-18 22:32 ` Thomas Gleixner
2023-06-18 23:14 ` Kent Overstreet
2023-06-19 0:43 ` Thomas Gleixner
2023-06-19 2:12 ` Kent Overstreet
2023-06-20 14:51 ` Steven Rostedt
2023-06-20 15:32 ` Alexei Starovoitov
2023-06-19 15:23 ` Mike Rapoport
2023-06-16 8:50 ` [PATCH v2 07/12] arm64, execmem: extend execmem_params for generated code definitions Mike Rapoport
2023-06-16 20:05 ` Song Liu
2023-06-17 6:57 ` Mike Rapoport
2023-06-17 15:36 ` Kent Overstreet
2023-06-17 16:38 ` Song Liu
2023-06-17 20:37 ` Kent Overstreet
2023-06-16 8:50 ` [PATCH v2 08/12] riscv: extend execmem_params for kprobes allocations Mike Rapoport
2023-06-16 20:09 ` Song Liu
2023-06-16 8:50 ` [PATCH v2 09/12] powerpc: " Mike Rapoport
2023-06-16 20:09 ` Song Liu
2023-06-16 8:50 ` [PATCH v2 10/12] arch: make execmem setup available regardless of CONFIG_MODULES Mike Rapoport
2023-06-16 20:17 ` Song Liu
2023-06-16 8:50 ` [PATCH v2 11/12] x86/ftrace: enable dynamic ftrace without CONFIG_MODULES Mike Rapoport
2023-06-16 20:18 ` Song Liu
2023-06-16 8:50 ` [PATCH v2 12/12] kprobes: remove dependcy on CONFIG_MODULES Mike Rapoport
2023-06-16 11:44 ` Björn Töpel
2023-06-17 6:52 ` Mike Rapoport
2023-06-16 17:02 ` [PATCH v2 00/12] mm: jit/text allocator Edgecombe, Rick P
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=20230617064421.GQ52412@kernel.org \
--to=rppt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bpf@vger.kernel.org \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=davem@davemloft.net \
--cc=deller@gmx.de \
--cc=dinguyen@kernel.org \
--cc=hca@linux.ibm.com \
--cc=kent.overstreet@linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-modules@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=mark.rutland@arm.com \
--cc=mcgrof@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=nadav.amit@gmail.com \
--cc=naveen.n.rao@linux.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=palmer@dabbelt.com \
--cc=puranjay12@gmail.com \
--cc=rick.p.edgecombe@intel.com \
--cc=rostedt@goodmis.org \
--cc=song@kernel.org \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tsbogend@alpha.franken.de \
--cc=will@kernel.org \
--cc=x86@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).