mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 14:13:16 +00:00
f2e1e156c0
This adds support for eBPF JIT for 32 bit targets and significantly improves correctness. Signed-off-by: Felix Fietkau <nbd@nbd.name>
62 lines
2.0 KiB
Diff
62 lines
2.0 KiB
Diff
From: Johan Almbladh <johan.almbladh@anyfinetworks.com>
|
|
Date: Tue, 5 Oct 2021 18:54:07 +0200
|
|
Subject: [PATCH] mips: bpf: Enable eBPF JITs
|
|
|
|
This patch enables the new eBPF JITs for 32-bit and 64-bit MIPS. It also
|
|
disables the old cBPF JIT to so cBPF programs are converted to use the
|
|
new JIT.
|
|
|
|
Workarounds for R4000 CPU errata are not implemented by the JIT, so the
|
|
JIT is disabled if any of those workarounds are configured.
|
|
|
|
Signed-off-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
|
|
---
|
|
|
|
--- a/MAINTAINERS
|
|
+++ b/MAINTAINERS
|
|
@@ -3294,6 +3294,7 @@ S: Supported
|
|
F: arch/arm64/net/
|
|
|
|
BPF JIT for MIPS (32-BIT AND 64-BIT)
|
|
+M: Johan Almbladh <johan.almbladh@anyfinetworks.com>
|
|
M: Paul Burton <paulburton@kernel.org>
|
|
L: netdev@vger.kernel.org
|
|
L: bpf@vger.kernel.org
|
|
--- a/arch/mips/Kconfig
|
|
+++ b/arch/mips/Kconfig
|
|
@@ -49,7 +49,6 @@ config MIPS
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
|
|
select HAVE_ASM_MODVERSIONS
|
|
- select HAVE_CBPF_JIT if !64BIT && !CPU_MICROMIPS
|
|
select HAVE_CONTEXT_TRACKING
|
|
select HAVE_TIF_NOHZ
|
|
select HAVE_C_RECORDMCOUNT
|
|
@@ -57,7 +56,10 @@ config MIPS
|
|
select HAVE_DEBUG_STACKOVERFLOW
|
|
select HAVE_DMA_CONTIGUOUS
|
|
select HAVE_DYNAMIC_FTRACE
|
|
- select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2
|
|
+ select HAVE_EBPF_JIT if !CPU_MICROMIPS && \
|
|
+ !CPU_DADDI_WORKAROUNDS && \
|
|
+ !CPU_R4000_WORKAROUNDS && \
|
|
+ !CPU_R4400_WORKAROUNDS
|
|
select HAVE_EXIT_THREAD
|
|
select HAVE_FAST_GUP
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
--- a/arch/mips/net/Makefile
|
|
+++ b/arch/mips/net/Makefile
|
|
@@ -2,9 +2,10 @@
|
|
# MIPS networking code
|
|
|
|
obj-$(CONFIG_MIPS_CBPF_JIT) += bpf_jit.o bpf_jit_asm.o
|
|
+obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp.o
|
|
|
|
ifeq ($(CONFIG_32BIT),y)
|
|
- obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp.o bpf_jit_comp32.o
|
|
+ obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp32.o
|
|
else
|
|
- obj-$(CONFIG_MIPS_EBPF_JIT) += ebpf_jit.o
|
|
+ obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp64.o
|
|
endif
|