From: bot+bpf-ci@kernel.org
To: main.kalliope@gmail.com,ast@kernel.org,daniel@iogearbox.net,andrii@kernel.org,eddyz87@gmail.com,memxor@gmail.com,udknight@gmail.com,tglx@kernel.org,mingo@redhat.com,bp@alien8.de,dave.hansen@linux.intel.com,x86@kernel.org
Cc: martin.lau@linux.dev,song@kernel.org,yonghong.song@linux.dev,jolsa@kernel.org,emil@etsalapatis.com,ihor.solodrai@linux.dev,hpa@zytor.com,bpf@vger.kernel.org,linux-kernel@vger.kernel.org,visitorckw@gmail.com,ast@kernel.org,andrii@kernel.org,daniel@iogearbox.net,martin.lau@kernel.org,eddyz87@gmail.com,yonghong.song@linux.dev,mason@kernel.org,ihor.solodrai@linux.dev
Subject: Re: [PATCH bpf-next 2/5] bpf, x86: Extract the i386 JIT load emitter
Date: Tue, 15 Sep 2026 03:12:33 +0000 (UTC) [thread overview]
Message-ID: <53eafa0eb20cf72bbfbd0e94fb7771a160d90de18bd8d3e21b7278f0bab149f5@mail.kernel.org> (raw)
In-Reply-To: <20260915021338.1520964-3-main.kalliope@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2931 bytes --]
> bpf, x86: Extract the i386 JIT load emitter
>
> Move ordinary LDX lowering into an instruction-owned helper. Keep address
> staging, displacement encoding and register-pair completion together,
> including verifier-managed zero extension for narrow loads.
>
> Use the helper for the existing BPF_MEM cases before adding signed loads.
> This separates the code movement from the MEMSX instruction handling.
> The emitted instructions are preserved.
This isn't a bug, but could the middle paragraph be trimmed? It
enumerates what the moved block contains rather than adding rationale
beyond what the diff already shows. Would it read more clearly if the
changelog led with why the helper is being split out ahead of the MEMSX
patch, and used "No functional change intended" instead of "The emitted
instructions are preserved"?
> diff --git a/arch/x86/net/bpf_jit_comp32.c b/arch/x86/net/bpf_jit_comp32.c
> index 9cbeabac4f27f..6839c233cb734 100644
> --- a/arch/x86/net/bpf_jit_comp32.c
> +++ b/arch/x86/net/bpf_jit_comp32.c
[ ... ]
> @@ -1214,6 +1214,89 @@ static inline void emit_ia32_mul_i64(const u8 dst[], const u32 val,
> *pprog = prog;
> }
>
> +static void emit_ia32_ldx(const struct bpf_insn *insn, u8 **pprog,
> + const struct bpf_prog_aux *aux)
> +{
> + const u8 *dst = bpf2ia32[insn->dst_reg];
> + const u8 *src = bpf2ia32[insn->src_reg];
> + bool dstk = insn->dst_reg != BPF_REG_AX;
> + bool sstk = insn->src_reg != BPF_REG_AX;
> + u8 *prog = *pprog;
> + int cnt = 0;
> +
> + /* Stage the address in EAX; dst may alias src. */
> + if (sstk)
> + /* mov eax,dword ptr [ebp+off] */
> + EMIT3(0x8B, add_2reg(0x40, IA32_EBP, IA32_EAX),
> + STACK_VAR(src_lo));
> + else
> + /* mov eax,src_lo */
> + EMIT2(0x8B, add_2reg(0xC0, src_lo, IA32_EAX));
> +
> + switch (BPF_SIZE(insn->code)) {
> + case BPF_B:
> + /* movzx edx,byte ptr [eax+off] */
> + EMIT2(0x0F, 0xB6);
> + break;
> + case BPF_H:
> + /* movzx edx,word ptr [eax+off] */
> + EMIT2(0x0F, 0xB7);
> + break;
> + case BPF_W:
> + case BPF_DW:
> + /* mov edx,dword ptr [eax+off] */
> + EMIT1(0x8B);
> + break;
> + }
This isn't a bug, but since the patch is meant to be a pure move, would
it read more easily as a verbatim move plus a separate follow-up for the
cosmetic changes? The moved block is reworked here: the three case arms
are reflowed from the original one-line form, EMIT(0x8B, 1) becomes
EMIT1(0x8B), several EMITs gain new mnemonic comments, and the
pre-existing comment is corrected from "mov eax,dword ptr [ebp+off]" to
"mov eax,src_lo". Each edit is an improvement, but folding them into
the movement makes "emission is unchanged" harder to confirm by reading
the diff.
[ ... ]
---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/34921540254
next prev parent reply other threads:[~2026-09-15 3:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-15 2:13 [PATCH bpf-next 0/5] bpf, x86: Extend CPUv4 instruction support in the i386 JIT Nicholas Dudar
2026-09-15 2:13 ` [PATCH bpf-next 1/5] bpf, x86: Add support for BPF_MOVSX " Nicholas Dudar
2026-09-15 3:12 ` bot+bpf-ci
2026-09-15 2:13 ` [PATCH bpf-next 2/5] bpf, x86: Extract the i386 JIT load emitter Nicholas Dudar
2026-09-15 3:12 ` bot+bpf-ci [this message]
2026-09-15 2:13 ` [PATCH bpf-next 3/5] bpf, x86: Add BPF_MEMSX support to the i386 JIT Nicholas Dudar
2026-09-15 2:13 ` [PATCH bpf-next 4/5] bpf, x86: Add BPF_JMP32 | BPF_JA " Nicholas Dudar
2026-09-15 3:12 ` bot+bpf-ci
2026-09-15 2:13 ` [PATCH bpf-next 5/5] bpf, x86: Add unconditional byte swap " Nicholas Dudar
2026-09-15 3:12 ` bot+bpf-ci
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=53eafa0eb20cf72bbfbd0e94fb7771a160d90de18bd8d3e21b7278f0bab149f5@mail.kernel.org \
--to=bot+bpf-ci@kernel.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bp@alien8.de \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=dave.hansen@linux.intel.com \
--cc=eddyz87@gmail.com \
--cc=emil@etsalapatis.com \
--cc=hpa@zytor.com \
--cc=ihor.solodrai@linux.dev \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=main.kalliope@gmail.com \
--cc=martin.lau@kernel.org \
--cc=martin.lau@linux.dev \
--cc=mason@kernel.org \
--cc=memxor@gmail.com \
--cc=mingo@redhat.com \
--cc=song@kernel.org \
--cc=tglx@kernel.org \
--cc=udknight@gmail.com \
--cc=visitorckw@gmail.com \
--cc=x86@kernel.org \
--cc=yonghong.song@linux.dev \
/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
all inboxes | Powered by JetHome®