Commit 01bdc58e authored by Johan Almbladh's avatar Johan Almbladh Committed by Andrii Nakryiko
Browse files

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: default avatarJohan Almbladh <johan.almbladh@anyfinetworks.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211005165408.2305108-7-johan.almbladh@anyfinetworks.com
parent 72570224
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+4 −2
Original line number Diff line number Diff line
@@ -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
+3 −2
Original line number Diff line number Diff line
@@ -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