From: Mark Rutland <mark.rutland@arm.com>
To: Puranjay Mohan <puranjay12@gmail.com>
Cc: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org,
martin.lau@linux.dev, song@kernel.org, catalin.marinas@arm.com,
bpf@vger.kernel.org, kpsingh@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH bpf-next v3 3/3] bpf, arm64: use bpf_jit_binary_pack_alloc
Date: Thu, 22 Jun 2023 10:36:45 +0100 [thread overview]
Message-ID: <ZJQWLRq2zxyMXR4N@FVFF77S0Q05N> (raw)
In-Reply-To: <CANk7y0jtm9yYobPLsMEHAem+R-wKjVOLWo=EeU-bojYks9tetQ@mail.gmail.com>
On Thu, Jun 22, 2023 at 10:47:08AM +0200, Puranjay Mohan wrote:
> On Thu, Jun 22, 2023 at 10:23 AM Mark Rutland <mark.rutland@arm.com> wrote:
> > On Wed, Jun 21, 2023 at 10:57:20PM +0200, Puranjay Mohan wrote:
> > > When I move the call to bpf_flush_icache() after
> > > bpf_jit_binary_pack_finalize() (this does the copy to ro_header), the
> > > boot issue is fixed. Would this change be enough to make this work or I
> > > would need to do more with the data cache as well to catch other edge
> > > cases?
> >
> > AFAICT, bpf_flush_icache() calls flush_icache_range(). Despite its name,
> > flush_icache_range() has d-cache maintenance, i-cache maintenance, and context
> > synchronization (i.e. it does everything necessary).
> >
> > As long as you call that with the VAs the code will be executed from, that
> > should be sufficient, and you don't need to do any other work.
>
> Thanks for explaining this.
> After reading your explanation, I feel this should work.
>
> bpf_jit_binary_pack_finalize() will copy the instructions from
> rw_header to ro_header.
> After the copy, calling bpf_flush_icache(ro_header, ctx.ro_image +
> ctx.idx); will invalidate the caches
> for the VAs in the ro_header, this is where the code will be executed from.
>
> I will send the v4 patchset with this change.
Sure -- I'll be happy to review that.
Mark.
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Puranjay Mohan <puranjay12@gmail.com>
Cc: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org,
martin.lau@linux.dev, song@kernel.org, catalin.marinas@arm.com,
bpf@vger.kernel.org, kpsingh@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH bpf-next v3 3/3] bpf, arm64: use bpf_jit_binary_pack_alloc
Date: Thu, 22 Jun 2023 10:36:45 +0100 [thread overview]
Message-ID: <ZJQWLRq2zxyMXR4N@FVFF77S0Q05N> (raw)
In-Reply-To: <CANk7y0jtm9yYobPLsMEHAem+R-wKjVOLWo=EeU-bojYks9tetQ@mail.gmail.com>
On Thu, Jun 22, 2023 at 10:47:08AM +0200, Puranjay Mohan wrote:
> On Thu, Jun 22, 2023 at 10:23 AM Mark Rutland <mark.rutland@arm.com> wrote:
> > On Wed, Jun 21, 2023 at 10:57:20PM +0200, Puranjay Mohan wrote:
> > > When I move the call to bpf_flush_icache() after
> > > bpf_jit_binary_pack_finalize() (this does the copy to ro_header), the
> > > boot issue is fixed. Would this change be enough to make this work or I
> > > would need to do more with the data cache as well to catch other edge
> > > cases?
> >
> > AFAICT, bpf_flush_icache() calls flush_icache_range(). Despite its name,
> > flush_icache_range() has d-cache maintenance, i-cache maintenance, and context
> > synchronization (i.e. it does everything necessary).
> >
> > As long as you call that with the VAs the code will be executed from, that
> > should be sufficient, and you don't need to do any other work.
>
> Thanks for explaining this.
> After reading your explanation, I feel this should work.
>
> bpf_jit_binary_pack_finalize() will copy the instructions from
> rw_header to ro_header.
> After the copy, calling bpf_flush_icache(ro_header, ctx.ro_image +
> ctx.idx); will invalidate the caches
> for the VAs in the ro_header, this is where the code will be executed from.
>
> I will send the v4 patchset with this change.
Sure -- I'll be happy to review that.
Mark.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-06-22 9:38 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-19 10:01 [PATCH bpf-next v3 0/3] bpf, arm64: use BPF prog pack allocator in BPF JIT Puranjay Mohan
2023-06-19 10:01 ` Puranjay Mohan
2023-06-19 10:01 ` [PATCH bpf-next v3 1/3] bpf: make bpf_prog_pack allocator portable Puranjay Mohan
2023-06-19 10:01 ` Puranjay Mohan
2023-06-19 10:01 ` [PATCH bpf-next v3 2/3] arm64: patching: Add aarch64_insn_copy() Puranjay Mohan
2023-06-19 10:01 ` Puranjay Mohan
2023-06-19 10:01 ` [PATCH bpf-next v3 3/3] bpf, arm64: use bpf_jit_binary_pack_alloc Puranjay Mohan
2023-06-19 10:01 ` Puranjay Mohan
2023-06-20 23:24 ` Song Liu
2023-06-20 23:24 ` Song Liu
2023-06-21 15:31 ` Mark Rutland
2023-06-21 15:31 ` Mark Rutland
2023-06-21 16:24 ` Alexei Starovoitov
2023-06-21 16:24 ` Alexei Starovoitov
2023-06-21 20:57 ` Puranjay Mohan
2023-06-21 20:57 ` Puranjay Mohan
2023-06-22 8:23 ` Mark Rutland
2023-06-22 8:23 ` Mark Rutland
2023-06-22 8:47 ` Puranjay Mohan
2023-06-22 8:47 ` Puranjay Mohan
2023-06-22 9:36 ` Mark Rutland [this message]
2023-06-22 9:36 ` Mark Rutland
2023-06-20 23:40 ` [PATCH bpf-next v3 0/3] bpf, arm64: use BPF prog pack allocator in BPF JIT patchwork-bot+netdevbpf
2023-06-20 23:40 ` patchwork-bot+netdevbpf
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=ZJQWLRq2zxyMXR4N@FVFF77S0Q05N \
--to=mark.rutland@arm.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=catalin.marinas@arm.com \
--cc=daniel@iogearbox.net \
--cc=kpsingh@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=puranjay12@gmail.com \
--cc=song@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.