Re: [PATCH 1/1] bpf: avoid unnecessary IPI in bpf_flush_icache

From: Will Deacon
Date: Wed Jun 02 2021 - 13:26:20 EST


On Wed, Jun 02, 2021 at 07:26:03PM +0800, Xu, Yanfei wrote:
>
>
> On 6/2/21 1:41 AM, Will Deacon wrote:
> > [Please note: This e-mail is from an EXTERNAL e-mail address]
> >
> > On Tue, Jun 01, 2021 at 07:20:04PM +0200, Daniel Borkmann wrote:
> > > On 6/1/21 5:06 PM, Yanfei Xu wrote:
> > > > It's no need to trigger IPI for keeping pipeline fresh in bpf case.
> > >
> > > This needs a more concrete explanation/analysis on "why it is safe" to do so
> > > rather than just saying that it is not needed.
> >
> > Agreed. You need to show how the executing thread ends up going through a
> > context synchronizing operation before jumping to the generated code if
> > the IPI here is removed.
>
> This patch came out with I looked through ftrace codes. Ftrace modify
> the text code and don't send IPI in aarch64_insn_patch_text_nosync(). I
> mistakenly thought the bpf is same with ftrace.
>
> But now I'm still not sure why the ftrace don't need the IPI to go
> through context synchronizing, maybe the worst situation is omit a
> tracing event?

I think ftrace handles this itself via ftrace_sync_ipi, no?

Will