From: Menglong Dong <menglong.dong@linux.dev>
To: Menglong Dong <menglong8.dong@gmail.com>,
Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: ast@kernel.org, andrii@kernel.org, daniel@iogearbox.net,
martin.lau@linux.dev, eddyz87@gmail.com, song@kernel.org,
yonghong.song@linux.dev, john.fastabend@gmail.com,
kpsingh@kernel.org, sdf@fomichev.me, haoluo@google.com,
jolsa@kernel.org, davem@davemloft.net, dsahern@kernel.org,
tglx@linutronix.de, mingo@redhat.com, jiang.biao@linux.dev,
bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org,
hpa@zytor.com, bpf@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH bpf-next v9 02/11] bpf: use last 8-bits for the nr_args in trampoline
Date: Wed, 14 Jan 2026 10:19:02 +0800 [thread overview]
Message-ID: <2336927.iZASKD2KPV@7940hx> (raw)
In-Reply-To: <CAEf4BzZKn8B_8T+ET7+cK90AfE_p918zwOKhi+iQOo5RkV8dNQ@mail.gmail.com>
On 2026/1/14 09:22 Andrii Nakryiko <andrii.nakryiko@gmail.com> write:
> On Sat, Jan 10, 2026 at 6:11 AM Menglong Dong <menglong8.dong@gmail.com> wrote:
> >
> > For now, ctx[-1] is used to store the nr_args in the trampoline. However,
> > 1-byte is enough to store such information. Therefore, we use only the
> > last byte of ctx[-1] to store the nr_args, and reserve the rest for other
>
> Looking at the assembly below I think you are extracting the least
> significant byte, right? I'd definitely not call it "last" byte...
> Let's be precise and unambiguous here.
Yeah, the "last 8-bits", "lat byte" is ambiguous. So let's describe it as
"the least significant byte" here instead :)
Thanks!
Menglong Dong
>
> > usages.
> >
> > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
> > ---
> > v8:
> > - fix the missed get_func_arg_cnt
> > ---
> > kernel/bpf/verifier.c | 35 +++++++++++++++++++----------------
> > kernel/trace/bpf_trace.c | 6 +++---
> > 2 files changed, 22 insertions(+), 19 deletions(-)
> >
> > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
> > index 774c9b0aafa3..bfff3f84fd91 100644
> > --- a/kernel/bpf/verifier.c
> > +++ b/kernel/bpf/verifier.c
> > @@ -23277,15 +23277,16 @@ static int do_misc_fixups(struct bpf_verifier_env *env)
> > insn->imm == BPF_FUNC_get_func_arg) {
> > /* Load nr_args from ctx - 8 */
> > insn_buf[0] = BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_1, -8);
> > - insn_buf[1] = BPF_JMP32_REG(BPF_JGE, BPF_REG_2, BPF_REG_0, 6);
> > - insn_buf[2] = BPF_ALU64_IMM(BPF_LSH, BPF_REG_2, 3);
> > - insn_buf[3] = BPF_ALU64_REG(BPF_ADD, BPF_REG_2, BPF_REG_1);
> > - insn_buf[4] = BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_2, 0);
> > - insn_buf[5] = BPF_STX_MEM(BPF_DW, BPF_REG_3, BPF_REG_0, 0);
> > - insn_buf[6] = BPF_MOV64_IMM(BPF_REG_0, 0);
> > - insn_buf[7] = BPF_JMP_A(1);
> > - insn_buf[8] = BPF_MOV64_IMM(BPF_REG_0, -EINVAL);
> > - cnt = 9;
> > + insn_buf[1] = BPF_ALU64_IMM(BPF_AND, BPF_REG_0, 0xFF);
> > + insn_buf[2] = BPF_JMP32_REG(BPF_JGE, BPF_REG_2, BPF_REG_0, 6);
> > + insn_buf[3] = BPF_ALU64_IMM(BPF_LSH, BPF_REG_2, 3);
> > + insn_buf[4] = BPF_ALU64_REG(BPF_ADD, BPF_REG_2, BPF_REG_1);
> > + insn_buf[5] = BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_2, 0);
> > + insn_buf[6] = BPF_STX_MEM(BPF_DW, BPF_REG_3, BPF_REG_0, 0);
> > + insn_buf[7] = BPF_MOV64_IMM(BPF_REG_0, 0);
> > + insn_buf[8] = BPF_JMP_A(1);
> > + insn_buf[9] = BPF_MOV64_IMM(BPF_REG_0, -EINVAL);
> > + cnt = 10;
> >
>
> [...]
>
next prev parent reply other threads:[~2026-01-14 2:19 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-10 14:11 [PATCH bpf-next v9 00/11] bpf: fsession support Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 01/11] bpf: add " Menglong Dong
2026-01-14 1:22 ` Andrii Nakryiko
2026-01-14 2:10 ` Menglong Dong
2026-01-14 18:56 ` Andrii Nakryiko
2026-01-15 2:05 ` Menglong Dong
2026-01-15 8:33 ` Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 02/11] bpf: use last 8-bits for the nr_args in trampoline Menglong Dong
2026-01-14 1:22 ` Andrii Nakryiko
2026-01-14 2:19 ` Menglong Dong [this message]
2026-01-14 9:52 ` David Laight
2026-01-10 14:11 ` [PATCH bpf-next v9 03/11] bpf: change prototype of bpf_session_{cookie,is_return} Menglong Dong
2026-01-14 1:22 ` Andrii Nakryiko
2026-01-14 2:19 ` Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 04/11] bpf: support fsession for bpf_session_is_return Menglong Dong
2026-01-14 1:22 ` Andrii Nakryiko
2026-01-14 2:25 ` Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 05/11] bpf: support fsession for bpf_session_cookie Menglong Dong
2026-01-10 14:42 ` bot+bpf-ci
2026-01-11 1:54 ` Menglong Dong
2026-01-14 1:22 ` Andrii Nakryiko
2026-01-14 2:33 ` Alexei Starovoitov
2026-01-14 2:38 ` Menglong Dong
2026-01-14 2:48 ` Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 06/11] bpf,x86: introduce emit_store_stack_imm64() for trampoline Menglong Dong
2026-01-14 1:22 ` Andrii Nakryiko
2026-01-14 2:31 ` Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 07/11] bpf,x86: add fsession support for x86_64 Menglong Dong
2026-01-14 1:25 ` Andrii Nakryiko
2026-01-14 3:27 ` Menglong Dong
2026-01-14 3:35 ` Menglong Dong
2026-01-14 19:05 ` Andrii Nakryiko
2026-01-15 2:12 ` Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 08/11] libbpf: add fsession support Menglong Dong
2026-01-14 1:24 ` Andrii Nakryiko
2026-01-14 3:27 ` Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 09/11] selftests/bpf: add testcases for fsession Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 10/11] selftests/bpf: add testcases for fsession cookie Menglong Dong
2026-01-10 14:11 ` [PATCH bpf-next v9 11/11] selftests/bpf: test fsession mixed with fentry and fexit Menglong Dong
2026-01-14 2:28 ` [PATCH bpf-next v9 00/11] bpf: fsession support Alexei Starovoitov
2026-01-14 2:52 ` Menglong Dong
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=2336927.iZASKD2KPV@7940hx \
--to=menglong.dong@linux.dev \
--cc=andrii.nakryiko@gmail.com \
--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=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=hpa@zytor.com \
--cc=jiang.biao@linux.dev \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=menglong8.dong@gmail.com \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=sdf@fomichev.me \
--cc=song@kernel.org \
--cc=tglx@linutronix.de \
--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 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.