linux/arch
Nicolas Schichan 4560cdff03 ARM: net: support BPF_ALU | BPF_MOD instructions in the BPF JIT.
For ARMv7 with UDIV instruction support, generate an UDIV instruction
followed by an MLS instruction.

For other ARM variants, generate code calling a C wrapper similar to
the jit_udiv() function used for BPF_ALU | BPF_DIV instructions.

Some performance numbers reported by the test_bpf module (the duration
per filter run is reported in nanoseconds, between "jitted:<x>" and
"PASS":

ARMv7 QEMU nojit:	test_bpf: #3 DIV_MOD_KX jited:0 2196 PASS
ARMv7 QEMU jit:		test_bpf: #3 DIV_MOD_KX jited:1 104 PASS
ARMv5 QEMU nojit:	test_bpf: #3 DIV_MOD_KX jited:0 2176 PASS
ARMv5 QEMU jit:		test_bpf: #3 DIV_MOD_KX jited:1 1104 PASS
ARMv5 kirkwood nojit:	test_bpf: #3 DIV_MOD_KX jited:0 1103 PASS
ARMv5 kirkwood jit:	test_bpf: #3 DIV_MOD_KX jited:1 311 PASS

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-10-05 07:02:42 -07:00
..
alpha PCI updates for v4.3: 2015-09-25 11:16:53 -07:00
arc genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
arm ARM: net: support BPF_ALU | BPF_MOD instructions in the BPF JIT. 2015-10-05 07:02:42 -07:00
arm64 ebpf: migrate bpf_prog's flags to bitfield 2015-10-03 05:02:39 -07:00
avr32 genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
blackfin genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
c6x genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
cris CRISv10: delete unused lib/dmacopy.c 2015-09-05 00:56:51 +02:00
frv PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch code" 2015-09-15 13:18:04 -05:00
h8300 dma-mapping: consolidate dma_set_mask 2015-09-10 13:29:01 -07:00
hexagon Merge branch 'akpm' (patches from Andrew) 2015-09-10 18:19:42 -07:00
ia64 PCI updates for v4.3: 2015-09-25 11:16:53 -07:00
m32r lib/decompressors: use real out buf size for gunzip with kernel 2015-09-10 13:29:01 -07:00
m68k m68k/mac: Export Peripheral System Controller (PSC) base address to modules 2015-09-29 21:11:13 -07:00
metag genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
microblaze PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch code" 2015-09-15 13:18:04 -05:00
mips ebpf: migrate bpf_prog's flags to bitfield 2015-10-03 05:02:39 -07:00
mn10300 PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch code" 2015-09-15 13:18:04 -05:00
nios2 nios2: add Max10 defconfig 2015-09-08 18:16:02 +08:00
openrisc dma-mapping: consolidate dma_set_mask 2015-09-10 13:29:01 -07:00
parisc parisc: Use platform_device_register_simple("rtc-generic") 2015-09-08 17:53:48 +02:00
powerpc ebpf: migrate bpf_prog's flags to bitfield 2015-10-03 05:02:39 -07:00
s390 ebpf: migrate bpf_prog's flags to bitfield 2015-10-03 05:02:39 -07:00
score
sh genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
sparc ebpf: migrate bpf_prog's flags to bitfield 2015-10-03 05:02:39 -07:00
tile Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2015-09-28 12:27:18 -04:00
um
unicore32 genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
x86 ebpf: migrate bpf_prog's flags to bitfield 2015-10-03 05:02:39 -07:00
xtensa PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch code" 2015-09-15 13:18:04 -05:00
.gitignore
Kconfig kexec: split kexec_load syscall from kexec core code 2015-09-10 13:29:01 -07:00