public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH bpf-next v4 0/2] bpf, x86: inline bpf_get_current_task() for x86_64
@ 2026-01-12 10:45 Menglong Dong
  2026-01-12 10:45 ` [PATCH bpf-next v4 1/2] " 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
  0 siblings, 2 replies; 7+ messages in thread
From: Menglong Dong @ 2026-01-12 10:45 UTC (permalink / raw)
  To: ast, eddyz87
  Cc: daniel, john.fastabend, andrii, martin.lau, song, yonghong.song,
	kpsingh, sdf, haoluo, jolsa, bpf, linux-kernel

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, &current_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


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-01-14  1:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-12 10:45 [PATCH bpf-next v4 0/2] bpf, x86: inline bpf_get_current_task() for x86_64 Menglong Dong
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox