mips, bpf: Enable eBPF JITs
authorJohan Almbladh <johan.almbladh@anyfinetworks.com>
Tue, 5 Oct 2021 16:54:07 +0000 (18:54 +0200)
committerAndrii Nakryiko <andrii@kernel.org>
Wed, 6 Oct 2021 19:28:30 +0000 (12:28 -0700)
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>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211005165408.2305108-7-johan.almbladh@anyfinetworks.com
MAINTAINERS
arch/mips/Kconfig
arch/mips/net/Makefile

index 76e0fdcdd87768813f5b8f00ae1e00dd973a3085..407cd423599578084157573e66427a02fa6b48ce 100644 (file)
@@ -3422,6 +3422,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
index 771ca53af06d2643a1515bbccfd20f72faf7ee29..38468f47aa5e991ce074aea1f8d396caa8b15220 100644 (file)
@@ -57,7 +57,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
@@ -65,7 +64,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
index e057ee4ba75e89facabf508a5605ea9c92c2d5e5..602bf242b13fdc59e30ca164d27c4f4f742cce69 100644 (file)
@@ -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