From: Menglong Dong <menglong8.dong@gmail.com>
To: ast@kernel.org, eddyz87@gmail.com
Cc: daniel@iogearbox.net, john.fastabend@gmail.com,
andrii@kernel.org, martin.lau@linux.dev, song@kernel.org,
yonghong.song@linux.dev, kpsingh@kernel.org, sdf@fomichev.me,
haoluo@google.com, jolsa@kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH bpf-next v4 0/2] bpf, x86: inline bpf_get_current_task() for x86_64
Date: Mon, 12 Jan 2026 18:45:27 +0800 [thread overview]
Message-ID: <20260112104529.224645-1-dongml2@chinatelecom.cn> (raw)
Inline bpf_get_current_task() and bpf_get_current_task_btf() for x86_64
to obtain better performance, and add the testcase for it.
I'd prefer to the approach in V2. The code is still architecture
specific, and now we implement it in the verifier.c, which is a little
weird for me.
What's more, it need 3 instructions with BPF_MOV64_PERCPU_REG():
mov rax, ¤t_task
addq rax, gs:[this_cpu_off]
movq rax, rax[0]
which is 1 instruction in V2:
movq rax, gs:[current_task]
Maybe we can implement a BPF_LDX_MEM_PERCPU() instead:
#define BPF_LDX_MEM_PERCPU(dst, size, variable)
and use it with:
BPF_LDX_MEM_PERCPU(BPF_REG_0, BPF_DW, current_task)
which will generate the instruction:
movq rax, gs:[current_task]
Changes since v3:
* handle the !CONFIG_SMP case
* ignore the !CONFIG_SMP case in the testcase, as we enable CONFIG_SMP
for x86_64 in the selftests
Changes since v2:
* implement it in the verifier with BPF_MOV64_PERCPU_REG() instead of in
x86_64 JIT (Alexei).
Changes since v1:
* add the testcase
* remove the usage of const_current_task
Menglong Dong (2):
bpf, x86: inline bpf_get_current_task() for x86_64
selftests/bpf: test the jited inline of bpf_get_current_task
kernel/bpf/verifier.c | 29 +++++++++++++++
.../selftests/bpf/prog_tests/verifier.c | 2 ++
.../selftests/bpf/progs/verifier_jit_inline.c | 35 +++++++++++++++++++
3 files changed, 66 insertions(+)
create mode 100644 tools/testing/selftests/bpf/progs/verifier_jit_inline.c
--
2.52.0
next reply other threads:[~2026-01-12 10:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-12 10:45 Menglong Dong [this message]
2026-01-12 10:45 ` [PATCH bpf-next v4 1/2] " Menglong Dong
2026-01-13 17:50 ` Alexei Starovoitov
2026-01-14 1:19 ` Menglong Dong
2026-01-14 1:24 ` Alexei Starovoitov
2026-01-14 1:33 ` Menglong Dong
2026-01-12 10:45 ` [PATCH bpf-next v4 2/2] selftests/bpf: test the jited inline of bpf_get_current_task 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=20260112104529.224645-1-dongml2@chinatelecom.cn \
--to=menglong8.dong@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--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=sdf@fomichev.me \
--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 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®