> On Jun 5, 2023, at 9:10 AM, Edgecombe, Rick P
> wrote:
>
> On Mon, 2023-06-05 at 11:11 +0300, Mike Rapoport wrote:
>> On Sun, Jun 04, 2023 at 10:52:44PM -0400, Steven Rostedt wrote:
>>> On Thu, 1 Jun 2023 16:54:36 -0700
>>> Nadav Amit wrote:
>>>
> The way text_poke() is used here, it
On Mon, 2023-06-05 at 23:42 +0300, Mike Rapoport wrote:
> > I tried this technique previously [0], and I thought it was not too
> > bad. In most of the callers it looks similar to what you have in
> > do_text_poke(). Sometimes less, sometimes more. It might need
> > enlightening of some of the stuf
On Mon, Jun 05, 2023 at 04:10:21PM +, Edgecombe, Rick P wrote:
> On Mon, 2023-06-05 at 11:11 +0300, Mike Rapoport wrote:
> > On Sun, Jun 04, 2023 at 10:52:44PM -0400, Steven Rostedt wrote:
> > > On Thu, 1 Jun 2023 16:54:36 -0700
> > > Nadav Amit wrote:
> > >
> > > > > The way text_poke() is u
On Mon, 2023-06-05 at 11:11 +0300, Mike Rapoport wrote:
> On Sun, Jun 04, 2023 at 10:52:44PM -0400, Steven Rostedt wrote:
> > On Thu, 1 Jun 2023 16:54:36 -0700
> > Nadav Amit wrote:
> >
> > > > The way text_poke() is used here, it is creating a new writable
> > > > alias
> > > > and flushing it f
On Sun, Jun 04, 2023 at 10:52:44PM -0400, Steven Rostedt wrote:
> On Thu, 1 Jun 2023 16:54:36 -0700
> Nadav Amit wrote:
>
> > > The way text_poke() is used here, it is creating a new writable alias
> > > and flushing it for *each* write to the module (like for each write of
> > > an individual re
On Thu, 1 Jun 2023 16:54:36 -0700
Nadav Amit wrote:
> > The way text_poke() is used here, it is creating a new writable alias
> > and flushing it for *each* write to the module (like for each write of
> > an individual relocation, etc). I was just thinking it might warrant
> > some batching or so
On Thu, Jun 01, 2023 at 08:50:39PM +, Edgecombe, Rick P wrote:
> > Ahh! Thanks for that; perhaps the comment in text_poke() about IPIs
> > could be a bit clearer.
> >
> > What is it (if anything) you don't like about text_poke() then? It
> > looks
> > like it's doing broadly similar things to
On Thu, Jun 1, 2023 at 4:07 AM Mike Rapoport wrote:
>
> On Thu, Jun 01, 2023 at 12:30:50PM +0200, Peter Zijlstra wrote:
> > On Thu, Jun 01, 2023 at 01:12:56PM +0300, Mike Rapoport wrote:
> >
> > > +static void __init_or_module do_text_poke(void *addr, const void
> > > *opcode, size_t len)
> > > +
> On Jun 1, 2023, at 1:50 PM, Edgecombe, Rick P
> wrote:
>
> On Thu, 2023-06-01 at 14:38 -0400, Kent Overstreet wrote:
>> On Thu, Jun 01, 2023 at 06:13:44PM +, Edgecombe, Rick P wrote:
text_poke() _does_ create a separate RW mapping.
>>>
>>> Sorry, I meant a separate RW allocation.
On Thu, Jun 1, 2023 at 3:15 AM Mike Rapoport wrote:
>
> From: Song Liu
>
> Replace direct memory writes to memory allocated for code with text poking
> to allow allocation of executable memory as ROX.
>
> The only exception is arch_prepare_bpf_trampoline() that cannot jit
> directly into module m
On Thu, 2023-06-01 at 14:38 -0400, Kent Overstreet wrote:
> On Thu, Jun 01, 2023 at 06:13:44PM +, Edgecombe, Rick P wrote:
> > > text_poke() _does_ create a separate RW mapping.
> >
> > Sorry, I meant a separate RW allocation.
>
> Ah yes, that makes sense
>
>
> >
> > >
> > > The thing tha
On Thu, Jun 01, 2023 at 06:13:44PM +, Edgecombe, Rick P wrote:
> > text_poke() _does_ create a separate RW mapping.
>
> Sorry, I meant a separate RW allocation.
Ah yes, that makes sense
>
> >
> > The thing that sucks about text_poke() is that it always does a full
> > TLB
> > flush, and A
On Thu, 2023-06-01 at 14:00 -0400, Kent Overstreet wrote:
> On Thu, Jun 01, 2023 at 04:54:27PM +, Edgecombe, Rick P wrote:
> > It is just a local flush, but I wonder how much text_poke()ing is
> > too
> > much. A lot of the are even inside loops. Can't it do the batch
> > version
> > at least?
On Thu, Jun 01, 2023 at 04:54:27PM +, Edgecombe, Rick P wrote:
> It is just a local flush, but I wonder how much text_poke()ing is too
> much. A lot of the are even inside loops. Can't it do the batch version
> at least?
>
> The other thing, and maybe this is in paranoia category, but it's
> p
On Thu, Jun 01, 2023 at 12:30:50PM +0200, Peter Zijlstra wrote:
> On Thu, Jun 01, 2023 at 01:12:56PM +0300, Mike Rapoport wrote:
>
> > +static void __init_or_module do_text_poke(void *addr, const void *opcode,
> > size_t len)
> > +{
> > + if (system_state < SYSTEM_RUNNING) {
> > + tex
On Thu, 2023-06-01 at 13:12 +0300, Mike Rapoport wrote:
> /*
> * Are we looking at a near JMP with a 1 or 4-byte displacement.
> @@ -331,7 +344,7 @@ void __init_or_module noinline
> apply_alternatives(struct alt_instr *start,
>
> DUMP_BYTES(insn_buff, insn_buff_sz, "%px: final_
On Thu, Jun 01, 2023 at 12:30:50PM +0200, Peter Zijlstra wrote:
> On Thu, Jun 01, 2023 at 01:12:56PM +0300, Mike Rapoport wrote:
>
> > +static void __init_or_module do_text_poke(void *addr, const void *opcode,
> > size_t len)
> > +{
> > + if (system_state < SYSTEM_RUNNING) {
> > + tex
On Thu, Jun 01, 2023 at 01:12:56PM +0300, Mike Rapoport wrote:
> +static void __init_or_module do_text_poke(void *addr, const void *opcode,
> size_t len)
> +{
> + if (system_state < SYSTEM_RUNNING) {
> + text_poke_early(addr, opcode, len);
> + } else {
> + mutex_lo
From: Song Liu
Replace direct memory writes to memory allocated for code with text poking
to allow allocation of executable memory as ROX.
The only exception is arch_prepare_bpf_trampoline() that cannot jit
directly into module memory yet, so it uses set_memory calls to
unprotect the memory befo
19 matches
Mail list logo