kernel: enable CONFIG_BPF_JIT by default
authorTony Ambardar <itugrok@yahoo.com>
Tue, 18 Dec 2018 05:29:33 +0000 (21:29 -0800)
committerKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Mon, 11 Feb 2019 20:18:48 +0000 (20:18 +0000)
Enable the built-in BPF JIT compiler for all 4.9, 4.14 and 4.19 kernels,
which should speed up cBPF and eBPF-based packet filtering (tc, iptables)
and packet sniffing (libpcap, tcpdump, fwknopd, etc).

This has minimal kernel size impact, increasing the size of uImage-lzma
(normally ~2 MB on mips_24kc or mips64el_mips64) by 5 KB for the MIPS32
arch cBPF JIT and by 9 KB for the MIPS64 arch eBPF JIT, on kernel 4.14.

With JIT enabled (cBPF only), the standard BPF test module (test_bpf.ko)
running on a DIR-835 (mips_24kc) used 33 CPU seconds, but 68 without JIT.

This change aligns with the notion of OpenWRT as the network go-to swiss
army knife for packet handling, especially on CPU-constrained platforms.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
target/linux/generic/config-4.14
target/linux/generic/config-4.19
target/linux/generic/config-4.9

index 81214a694241aab3e57f7b781807f2de4b842c48..e90d8bf9307037eba20beed2b56bd46f563d5016 100644 (file)
@@ -594,7 +594,7 @@ CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
 # CONFIG_BOOT_PRINTK_DELAY is not set
 CONFIG_BOOT_RAW=y
 CONFIG_BPF=y
-# CONFIG_BPF_JIT is not set
+CONFIG_BPF_JIT=y
 # CONFIG_BPF_JIT_ALWAYS_ON is not set
 # CONFIG_BPF_STREAM_PARSER is not set
 CONFIG_BPF_SYSCALL=y
index a3470e955cb8011bf835e5e9a2648d39ef0c18f1..b77a6fe1130164d669d91b486ee53c6c1af89194 100644 (file)
@@ -614,7 +614,7 @@ CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
 CONFIG_BOOT_RAW=y
 CONFIG_BPF=y
 # CONFIG_BPFILTER is not set
-# CONFIG_BPF_JIT is not set
+CONFIG_BPF_JIT=y
 # CONFIG_BPF_JIT_ALWAYS_ON is not set
 # CONFIG_BPF_STREAM_PARSER is not set
 CONFIG_BPF_SYSCALL=y
index 9300e06afd79d93d6f7422f3330be4464bc83283..8de01a5306084b3bfc373b6200c383b1aba7a4af 100644 (file)
@@ -566,7 +566,7 @@ CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
 # CONFIG_BOOT_PRINTK_DELAY is not set
 CONFIG_BOOT_RAW=y
 CONFIG_BPF=y
-# CONFIG_BPF_JIT is not set
+CONFIG_BPF_JIT=y
 CONFIG_BPF_SYSCALL=y
 # CONFIG_BPQETHER is not set
 CONFIG_BQL=y