Re: [PATCH bpf-next v3 0/4] Add BPF JIT support for LoongArch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/1/22 4:27 AM, Tiezhu Yang wrote:
The basic support for LoongArch has been merged into the upstream Linux
kernel since 5.19-rc1 on June 5, 2022, this patch series adds BPF JIT
support for LoongArch.

Here is the LoongArch documention:
https://www.kernel.org/doc/html/latest/loongarch/index.html

With this patch series, the test cases in lib/test_bpf.ko have passed
on LoongArch.

   # echo 1 > /proc/sys/net/core/bpf_jit_enable
   # modprobe test_bpf
   # dmesg | grep Summary
   test_bpf: Summary: 1026 PASSED, 0 FAILED, [1014/1014 JIT'ed]
   test_bpf: test_tail_calls: Summary: 10 PASSED, 0 FAILED, [10/10 JIT'ed]
   test_bpf: test_skb_segment: Summary: 2 PASSED, 0 FAILED

It seems that this patch series can not be applied cleanly to bpf-next
which is not synced to v6.0-rc3.

For bpf-next tree this doesn't apply cleanly. Huacai, probably easier if you
take it in. Otherwise this needs rebase (and your Ack as arch maintainer), but
then there'll be merge conflict later anyway.

[...]
Applying: LoongArch: Move {signed,unsigned}_imm_check() to inst.h
Applying: LoongArch: Add some instruction opcodes and formats
error: patch failed: arch/loongarch/include/asm/inst.h:18
error: arch/loongarch/include/asm/inst.h: patch does not apply
Patch failed at 0002 LoongArch: Add some instruction opcodes and formats
[...]

Thanks,
Daniel

v3:
   -- Remove CONFIG_TEST_BPF in loongson3_defconfig

v2:
   -- Rebased series on v6.0-rc3
   -- Make build_epilogue() static
   -- Use alsl.d, bstrpick.d, [ld/st]ptr.[w/d] to save some instructions
   -- Replace move_imm32() and move_imm64() with move_imm() and optimize it
   -- Add code comments to explain the considerations of conditional jump
   https://lore.kernel.org/bpf/1661857809-10828-1-git-send-email-yangtiezhu@xxxxxxxxxxx/

v1:
   -- Rebased series on v6.0-rc1
   -- Move {signed,unsigned}_imm_check() to inst.h
   -- Define the imm field as "unsigned int" in the instruction format
   -- Use DEF_EMIT_*_FORMAT to define the same kind of instructions
   -- Use "stack_adjust += sizeof(long) * 8" in build_prologue()
   https://lore.kernel.org/bpf/1660996260-11337-1-git-send-email-yangtiezhu@xxxxxxxxxxx/

RFC:
   https://lore.kernel.org/bpf/1660013580-19053-1-git-send-email-yangtiezhu@xxxxxxxxxxx/

Tiezhu Yang (4):
   LoongArch: Move {signed,unsigned}_imm_check() to inst.h
   LoongArch: Add some instruction opcodes and formats
   LoongArch: Add BPF JIT support
   LoongArch: Enable BPF_JIT in default config

  arch/loongarch/Kbuild                      |    1 +
  arch/loongarch/Kconfig                     |    1 +
  arch/loongarch/configs/loongson3_defconfig |    1 +
  arch/loongarch/include/asm/inst.h          |  383 ++++++++-
  arch/loongarch/kernel/module.c             |   10 -
  arch/loongarch/net/Makefile                |    7 +
  arch/loongarch/net/bpf_jit.c               | 1160 ++++++++++++++++++++++++++++
  arch/loongarch/net/bpf_jit.h               |  282 +++++++
  8 files changed, 1830 insertions(+), 15 deletions(-)
  create mode 100644 arch/loongarch/net/Makefile
  create mode 100644 arch/loongarch/net/bpf_jit.c
  create mode 100644 arch/loongarch/net/bpf_jit.h





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux