All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Hwang <leon.hwang@linux.dev>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: Leon Hwang <leon.hwang@linux.dev>,
	bot+bpf-ci@kernel.org, bpf <bpf@vger.kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Yonghong Song <yonghong.song@linux.dev>,
	Song Liu <song@kernel.org>, Eduard <eddyz87@gmail.com>,
	Quentin Monnet <qmo@kernel.org>, Daniel Xu <dxu@dxuuu.xyz>,
	kernel-patches-bot@fb.com,
	Martin KaFai Lau <martin.lau@kernel.org>,
	Chris Mason <clm@meta.com>,
	Ihor Solodrai <ihor.solodrai@linux.dev>
Subject: Re: [PATCH bpf-next v4 2/8] bpf: Introduce global percpu data
Date: Tue, 21 Apr 2026 22:13:14 +0800	[thread overview]
Message-ID: <20260421141326.38597-1-leon.hwang@linux.dev> (raw)
In-Reply-To: <CAADnVQKEkMjmARsWMvs6SP76nEdCzBYSffSFSNE-Do=MaXMv3A@mail.gmail.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1981 bytes --]

On Mon, 20 Apr 2026 18:59:39 -0700, Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote:
> On Mon, Apr 20, 2026 at 6:43 PM Leon Hwang <leon.hwang@linux.dev> wrote:
>>
>> On Mon, 20 Apr 2026 07:58:06 -0700, "Alexei Starovoitov" <alexei.starovoitov@gmail.com> wrote:
>>> On Sun Apr 19, 2026 at 10:24 PM PDT, Leon Hwang wrote:
>>>>
>>>> int xdp_prog(struct xdp_md * ctx):
>>>> ; cnt++;
>>>> 0: (18) r6 = map[id:28][0]+0
>>>> 2: (bf) r6 = &(void __percpu *)(r6)
>>>
>>> well. that insn was inserted by the verifier and it shows up in xlated.
>>> That was expected.
>>> The point about 'bogus xlated' was about offset translation.
>>> map_direct_value_meta() should recover proper insns[i + 1].imm = off;
>>> In your example it's zero, so not an interesting test.
>>>
>>
>> The original insns[i + 1] wasn't broken. See the key change of this
>> patch.
>
> You're missing the point insns[i + 1].imm = off is how
> off returned from map_direct_value_meta() is used in updating _this_
> ldimm64 insn.

After looking into bpf_insn_prepare_dump(), agreed with
"not an interesting test".

Then, updated the selftest with non-zero offset. And updated
disasm_helpers.c::disasm_insn() to dump such ldimm64 insn as map info by
the way of bpftool/xlated_dumper.c::print_imm().

+static volatile const char fmt2[] SEC(".percpu.fmt") = "data %d\n";
+
+SEC("?kprobe")
+__success
+__xlated("r{{[0-9]+}} = map[id:{{[0-9]+}}][0]+9")
+__xlated("r{{[0-9]+}} = &(void __percpu *)(r{{[0-9]+}})")
+__xlated("r{{[0-9]+}} = *(u8 *)(r{{[0-9]+}} +4)")
+int verifier_percpu_read(void *ctx)
+{
+	char c = fmt2[4];
+
+	return c == ' ';
+}

It would verify the following xlated insns.

XLATED:
=============
0: r1 = map[id:7][0]+9
2: r1 = &(void __percpu *)(r1)
3: r1 = *(u8 *)(r1 +4)
4: w0 = 1
5: if w1 == 0x20 goto pc+1
6: w0 = 0
7: exit

The selftest looks better now.

Thanks,
Leon

  reply	other threads:[~2026-04-21 14:24 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-14 13:24 [PATCH bpf-next v4 0/8] bpf: Introduce global percpu data Leon Hwang
2026-04-14 13:24 ` [PATCH bpf-next v4 1/8] bpf: Drop duplicate blank lines in verifier Leon Hwang
2026-04-14 13:24 ` [PATCH bpf-next v4 2/8] bpf: Introduce global percpu data Leon Hwang
2026-04-14 14:10   ` bot+bpf-ci
2026-04-14 14:19     ` Leon Hwang
2026-04-15  2:19       ` Alexei Starovoitov
2026-04-17  1:30         ` Leon Hwang
2026-04-17 15:48           ` Leon Hwang
2026-04-17 17:03             ` Alexei Starovoitov
2026-04-20  5:24               ` Leon Hwang
2026-04-20 14:58                 ` Alexei Starovoitov
2026-04-21  1:42                   ` Leon Hwang
2026-04-21  1:59                     ` Alexei Starovoitov
2026-04-21 14:13                       ` Leon Hwang [this message]
2026-04-21 14:35                         ` Alexei Starovoitov
2026-04-22  5:22                           ` Leon Hwang
2026-04-14 13:24 ` [PATCH bpf-next v4 3/8] libbpf: Probe percpu data feature Leon Hwang
2026-04-14 13:24 ` [PATCH bpf-next v4 4/8] libbpf: Add support for global percpu data Leon Hwang
2026-04-14 13:24 ` [PATCH bpf-next v4 5/8] bpf: Update per-CPU maps using BPF_F_ALL_CPUS flag Leon Hwang
2026-04-14 21:02   ` sashiko-bot
2026-04-17  1:54     ` Leon Hwang
2026-04-15  2:21   ` Alexei Starovoitov
2026-04-17  1:33     ` Leon Hwang
2026-04-17 16:07       ` Leon Hwang
2026-04-14 13:24 ` [PATCH bpf-next v4 6/8] bpftool: Generate skeleton for global percpu data Leon Hwang
2026-04-14 21:26   ` sashiko-bot
2026-04-17  2:01     ` Leon Hwang
2026-04-14 13:24 ` [PATCH bpf-next v4 7/8] selftests/bpf: Add tests to verify " Leon Hwang
2026-04-14 21:45   ` sashiko-bot
2026-04-17  2:06     ` Leon Hwang
2026-04-14 13:24 ` [PATCH bpf-next v4 8/8] selftests/bpf: Add a test to verify bpf_iter for " Leon Hwang
2026-04-14 22:08   ` sashiko-bot
2026-04-17  2:17     ` Leon Hwang

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=20260421141326.38597-1-leon.hwang@linux.dev \
    --to=leon.hwang@linux.dev \
    --cc=alexei.starovoitov@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bot+bpf-ci@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=clm@meta.com \
    --cc=daniel@iogearbox.net \
    --cc=dxu@dxuuu.xyz \
    --cc=eddyz87@gmail.com \
    --cc=ihor.solodrai@linux.dev \
    --cc=kernel-patches-bot@fb.com \
    --cc=martin.lau@kernel.org \
    --cc=qmo@kernel.org \
    --cc=song@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.