bpf/arm: add build infrastructure
Add build infrastructure and documentation update for arm64 JIT support. Signed-off-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
This commit is contained in:
parent
fc8b96fbc0
commit
6861c01001
@ -251,6 +251,7 @@ M: Gavin Hu <gavin.hu@arm.com>
|
||||
F: lib/librte_eal/common/include/arch/arm/*_64.h
|
||||
F: lib/librte_net/net_crc_neon.h
|
||||
F: lib/librte_acl/acl_run_neon.*
|
||||
F: lib/librte_bpf/bpf_jit_arm64.c
|
||||
F: lib/librte_lpm/rte_lpm_neon.h
|
||||
F: lib/librte_hash/rte*_arm64.h
|
||||
F: lib/librte_efd/rte*_arm64.h
|
||||
|
@ -30,7 +30,7 @@ The library API provides the following basic operations:
|
||||
Not currently supported eBPF features
|
||||
-------------------------------------
|
||||
|
||||
- JIT for non X86_64 platforms
|
||||
- JIT support only available for X86_64 and arm64 platforms
|
||||
- cBPF
|
||||
- tail-pointer call
|
||||
- eBPF MAP
|
||||
|
@ -110,6 +110,11 @@ New Features
|
||||
Added stateful decompression support in the Intel QuickAssist Technology PMD.
|
||||
Please note that stateful compression is not supported.
|
||||
|
||||
* **Added eBPF JIT support for arm64.**
|
||||
|
||||
Added eBPF JIT support for arm64 architecture to improve the eBPF program
|
||||
performance.
|
||||
|
||||
|
||||
Removed Items
|
||||
-------------
|
||||
|
@ -31,6 +31,8 @@ SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_load_elf.c
|
||||
endif
|
||||
ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_jit_x86.c
|
||||
else ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_jit_arm64.c
|
||||
endif
|
||||
|
||||
# install header files
|
||||
|
@ -41,8 +41,10 @@ bpf_jit(struct rte_bpf *bpf)
|
||||
{
|
||||
int32_t rc;
|
||||
|
||||
#ifdef RTE_ARCH_X86_64
|
||||
#if defined(RTE_ARCH_X86_64)
|
||||
rc = bpf_jit_x86(bpf);
|
||||
#elif defined(RTE_ARCH_ARM64)
|
||||
rc = bpf_jit_arm64(bpf);
|
||||
#else
|
||||
rc = -ENOTSUP;
|
||||
#endif
|
||||
|
@ -25,9 +25,8 @@ extern int bpf_validate(struct rte_bpf *bpf);
|
||||
|
||||
extern int bpf_jit(struct rte_bpf *bpf);
|
||||
|
||||
#ifdef RTE_ARCH_X86_64
|
||||
extern int bpf_jit_x86(struct rte_bpf *);
|
||||
#endif
|
||||
extern int bpf_jit_arm64(struct rte_bpf *);
|
||||
|
||||
extern int rte_bpf_logtype;
|
||||
|
||||
|
19
lib/librte_bpf/bpf_jit_arm64.c
Normal file
19
lib/librte_bpf/bpf_jit_arm64.c
Normal file
@ -0,0 +1,19 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(C) 2019 Marvell International Ltd.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#include <rte_common.h>
|
||||
|
||||
#include "bpf_impl.h"
|
||||
/*
|
||||
* Produce a native ISA version of the given BPF code.
|
||||
*/
|
||||
int
|
||||
bpf_jit_arm64(struct rte_bpf *bpf)
|
||||
{
|
||||
RTE_SET_USED(bpf);
|
||||
|
||||
return -ENOTSUP;
|
||||
}
|
@ -10,6 +10,8 @@ sources = files('bpf.c',
|
||||
|
||||
if arch_subdir == 'x86' and dpdk_conf.get('RTE_ARCH_64')
|
||||
sources += files('bpf_jit_x86.c')
|
||||
elif dpdk_conf.has('RTE_ARCH_ARM64')
|
||||
sources += files('bpf_jit_arm64.c')
|
||||
endif
|
||||
|
||||
install_headers = files('bpf_def.h',
|
||||
|
Loading…
Reference in New Issue
Block a user