Message ID | 20210322143714.494603ed@canb.auug.org.au |
---|---|
State | New |
Headers | show |
Series | linux-next: build failure after merge of the tip tree | expand |
On Mon, Mar 22, 2021 at 02:37:14PM +1100, Stephen Rothwell wrote: > Hi all, > > After merging the tip tree, today's linux-next build (x86_64 allmodconfig) > failed like this: > > arch/x86/net/bpf_jit_comp.c: In function 'arch_prepare_bpf_trampoline': > arch/x86/net/bpf_jit_comp.c:2015:16: error: 'ideal_nops' undeclared (first use in this function) > 2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > | ^~~~~~~~~~ > arch/x86/net/bpf_jit_comp.c:2015:16: note: each undeclared identifier is reported only once for each function it appears in > arch/x86/net/bpf_jit_comp.c:2015:27: error: 'NOP_ATOMIC5' undeclared (first use in this function); did you mean 'GFP_ATOMIC'? > 2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > | ^~~~~~~~~~~ > | GFP_ATOMIC > > Caused by commit > > a89dfde3dc3c ("x86: Remove dynamic NOP selection") > > interacting with commit > > b90829704780 ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG") > > from the net tree. > > I have applied the following merge fix patch. > > From: Stephen Rothwell <sfr@canb.auug.org.au> > Date: Mon, 22 Mar 2021 14:30:37 +1100 > Subject: [PATCH] x86: fix up for "bpf: Use NOP_ATOMIC5 instead of > emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" > > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> > --- > arch/x86/net/bpf_jit_comp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c > index db50ab14df67..e2b5da5d441d 100644 > --- a/arch/x86/net/bpf_jit_comp.c > +++ b/arch/x86/net/bpf_jit_comp.c > @@ -2012,7 +2012,7 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *i > /* remember return value in a stack for bpf prog to access */ > emit_stx(&prog, BPF_DW, BPF_REG_FP, BPF_REG_0, -8); > im->ip_after_call = prog; > - memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > + memcpy(prog, x86_nops[5], X86_PATCH_SIZE); > prog += X86_PATCH_SIZE; > } > > -- I guess we can do the same as with the hyperv tree - the folks who send the respective branches to Linus in the next merge window should point to this patch of yours which Linus can apply after merging the second branch in order. Thx.
On Mon, Mar 22, 2021 at 4:39 AM Stephen Rothwell <sfr@canb.auug.org.au> wrote: > > Hi all, > > After merging the tip tree, today's linux-next build (x86_64 allmodconfig) > failed like this: > > arch/x86/net/bpf_jit_comp.c: In function 'arch_prepare_bpf_trampoline': > arch/x86/net/bpf_jit_comp.c:2015:16: error: 'ideal_nops' undeclared (first use in this function) > 2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > | ^~~~~~~~~~ > arch/x86/net/bpf_jit_comp.c:2015:16: note: each undeclared identifier is reported only once for each function it appears in > arch/x86/net/bpf_jit_comp.c:2015:27: error: 'NOP_ATOMIC5' undeclared (first use in this function); did you mean 'GFP_ATOMIC'? > 2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > | ^~~~~~~~~~~ > | GFP_ATOMIC > > Caused by commit > > a89dfde3dc3c ("x86: Remove dynamic NOP selection") > > interacting with commit > > b90829704780 ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG") > > from the net tree. > > I have applied the following merge fix patch. > > From: Stephen Rothwell <sfr@canb.auug.org.au> > Date: Mon, 22 Mar 2021 14:30:37 +1100 > Subject: [PATCH] x86: fix up for "bpf: Use NOP_ATOMIC5 instead of > emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" > > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> I had the same issue yesterday, when I had... <tip.git#x86/cpu> + <net.git#master> ...on top of Linux v5.12-rc4. ( See [1] and [2] ). I applied the same fix. - Sedat - [1] https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=x86/cpu&id=a89dfde3dc3c2dbf56910af75e2d8b11ec5308f6 [2] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=b9082970478009b778aa9b22d5561eef35b53b63 > --- > arch/x86/net/bpf_jit_comp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c > index db50ab14df67..e2b5da5d441d 100644 > --- a/arch/x86/net/bpf_jit_comp.c > +++ b/arch/x86/net/bpf_jit_comp.c > @@ -2012,7 +2012,7 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *i > /* remember return value in a stack for bpf prog to access */ > emit_stx(&prog, BPF_DW, BPF_REG_FP, BPF_REG_0, -8); > im->ip_after_call = prog; > - memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > + memcpy(prog, x86_nops[5], X86_PATCH_SIZE); > prog += X86_PATCH_SIZE; > } > > -- > 2.30.0 > > -- > Cheers, > Stephen Rothwell
On Mon, Mar 22, 2021 at 10:02 AM Borislav Petkov <bp@suse.de> wrote: > > On Mon, Mar 22, 2021 at 02:37:14PM +1100, Stephen Rothwell wrote: > > Hi all, > > > > After merging the tip tree, today's linux-next build (x86_64 allmodconfig) > > failed like this: > > > > arch/x86/net/bpf_jit_comp.c: In function 'arch_prepare_bpf_trampoline': > > arch/x86/net/bpf_jit_comp.c:2015:16: error: 'ideal_nops' undeclared (first use in this function) > > 2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > > | ^~~~~~~~~~ > > arch/x86/net/bpf_jit_comp.c:2015:16: note: each undeclared identifier is reported only once for each function it appears in > > arch/x86/net/bpf_jit_comp.c:2015:27: error: 'NOP_ATOMIC5' undeclared (first use in this function); did you mean 'GFP_ATOMIC'? > > 2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > > | ^~~~~~~~~~~ > > | GFP_ATOMIC > > > > Caused by commit > > > > a89dfde3dc3c ("x86: Remove dynamic NOP selection") > > > > interacting with commit > > > > b90829704780 ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG") > > > > from the net tree. > > > > I have applied the following merge fix patch. > > > > From: Stephen Rothwell <sfr@canb.auug.org.au> > > Date: Mon, 22 Mar 2021 14:30:37 +1100 > > Subject: [PATCH] x86: fix up for "bpf: Use NOP_ATOMIC5 instead of > > emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" > > > > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> > > --- > > arch/x86/net/bpf_jit_comp.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c > > index db50ab14df67..e2b5da5d441d 100644 > > --- a/arch/x86/net/bpf_jit_comp.c > > +++ b/arch/x86/net/bpf_jit_comp.c > > @@ -2012,7 +2012,7 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *i > > /* remember return value in a stack for bpf prog to access */ > > emit_stx(&prog, BPF_DW, BPF_REG_FP, BPF_REG_0, -8); > > im->ip_after_call = prog; > > - memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); > > + memcpy(prog, x86_nops[5], X86_PATCH_SIZE); > > prog += X86_PATCH_SIZE; > > } > > > > -- > > I guess we can do the same as with the hyperv tree - the folks who send the > respective branches to Linus in the next merge window should point to this patch > of yours which Linus can apply after merging the second branch in order. > > Thx. > The commit b90829704780 "bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" is now in Linus Git (see [1]). Where will Stephen's fixup-patch be carried? Linux-next? net-next? <tip.git#x86/cpu>? Thanks. - Sedat - [1] https://git.kernel.org/linus/b9082970478009b778aa9b22d5561eef35b53b63
On Fri, Mar 26, 2021 at 09:57:43AM +0100, Sedat Dilek wrote: > The commit b90829704780 "bpf: Use NOP_ATOMIC5 instead of > emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" is now in Linus Git > (see [1]). > > Where will Stephen's fixup-patch be carried? > Linux-next? > net-next? > <tip.git#x86/cpu>? I guess we'll resolve it on our end and pick up sfr's patch, most likely. Thanks for letting me know. -- Regards/Gruss, Boris. SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg
On Fri, Mar 26, 2021 at 2:11 PM Borislav Petkov <bp@suse.de> wrote: > > On Fri, Mar 26, 2021 at 09:57:43AM +0100, Sedat Dilek wrote: > > The commit b90829704780 "bpf: Use NOP_ATOMIC5 instead of > > emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" is now in Linus Git > > (see [1]). > > > > Where will Stephen's fixup-patch be carried? > > Linux-next? > > net-next? > > <tip.git#x86/cpu>? > > I guess we'll resolve it on our end and pick up sfr's patch, most > likely. > > Thanks for letting me know. > Sounds good to me. So you need: $ grep CONFIG_BPF_JIT= .config 1795:CONFIG_BPF_JIT=y $ git grep CONFIG_BPF_JIT arch/x86/net/Makefile arch/x86/net/Makefile: obj-$(CONFIG_BPF_JIT) += bpf_jit_comp32.o arch/x86/net/Makefile: obj-$(CONFIG_BPF_JIT) += bpf_jit_comp.o I wonder why Stephen's fixup-patch was not carried in recent Linux-next releases. Wild speculation - no random-config with x86(-64) plus CONFIG_BPF_JIT=y? Anyway, I integrated Stephen's fixup-patch into my custom patchset. $ git log --oneline --author="Stephen Rothwell" v5.12-rc4.. 600417efac59 (for-5.12/x86-cpu-20210315-net-bpf-sfr) x86: fix up for "bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" Feel free to add my: Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # LLVM/Clang v12.0.0-rc3 (x86-64) - Sedat -
Hi Sedat, On Sat, 27 Mar 2021 12:50:55 +0100 Sedat Dilek <sedat.dilek@gmail.com> wrote: > > I wonder why Stephen's fixup-patch was not carried in recent > Linux-next releases. It is part of the tip tree merge commit. So it is not an explicit commit on its own, but the needed change is there. > Wild speculation - no random-config with x86(-64) plus CONFIG_BPF_JIT=y? I detected it with an X86_64 allmodconfig build (which I do all day). -- Cheers, Stephen Rothwell
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c index db50ab14df67..e2b5da5d441d 100644 --- a/arch/x86/net/bpf_jit_comp.c +++ b/arch/x86/net/bpf_jit_comp.c @@ -2012,7 +2012,7 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *i /* remember return value in a stack for bpf prog to access */ emit_stx(&prog, BPF_DW, BPF_REG_FP, BPF_REG_0, -8); im->ip_after_call = prog; - memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE); + memcpy(prog, x86_nops[5], X86_PATCH_SIZE); prog += X86_PATCH_SIZE; }