[0/8] eBPF arm64 JIT support
Message ID | 20190903105938.33231-1-jerinj@marvell.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BB62A1E895; Tue, 3 Sep 2019 12:59:24 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id AB0271D424 for <dev@dpdk.org>; Tue, 3 Sep 2019 12:59:23 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x83AtKmP026911; Tue, 3 Sep 2019 03:59:19 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=pfpt0818; bh=6NxKo1xJ1LDvDNjNuNrE2/ANo06Xw0YfPiqY8lSOUQw=; b=YUwPL6Vikc/LAz9WS3geyqG23GSN3nJHnOoYzSjXBon/CF6daL5Pd8DWJ6YTNm+8IGhh vq9VQWC1hKJ0Sv7D2sl/UGqi8fkV+4ZSsZjW2NzTpqOjNZo5afRmhFHKSkT54/fEhqhW hB3M0o/mtuYJhZMQyjneD/PnRzUNzAcau5vpjGv0MFHdXCiJspVB+Dz5KJSCqds6HTZB e6PH2euPDAbqYXXtoGkzgWy2SldArd4jpRWR2jPJm3g2Fs8RnfXO3p+e1pbZjHtWlcxp C7ReyHFDUJ1EUf3Zezaylq0byah013H/fgxVEyMgQOANP08Y/AczFRgUBMDGohKkIjHZ Zg== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0a-0016f401.pphosted.com with ESMTP id 2uqp8p9tk3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 03 Sep 2019 03:59:19 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 3 Sep 2019 03:59:16 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 3 Sep 2019 03:59:16 -0700 Received: from jerin-lab.marvell.com (jerin-lab.marvell.com [10.28.34.14]) by maili.marvell.com (Postfix) with ESMTP id 8B10D3F7041; Tue, 3 Sep 2019 03:59:14 -0700 (PDT) From: <jerinj@marvell.com> To: <dev@dpdk.org> CC: <konstantin.ananyev@intel.com>, <honnappa.nagarahalli@arm.com>, <thomas@monjalon.net>, <gavin.hu@arm.com>, Jerin Jacob <jerinj@marvell.com> Date: Tue, 3 Sep 2019 16:29:30 +0530 Message-ID: <20190903105938.33231-1-jerinj@marvell.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.70,1.0.8 definitions=2019-09-03_01:2019-09-03,2019-09-03 signatures=0 Subject: [dpdk-dev] [PATCH 0/8] eBPF arm64 JIT support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Message
Jerin Jacob
Sept. 3, 2019, 10:59 a.m. UTC
From: Jerin Jacob <jerinj@marvell.com>
Added eBPF arm64 JIT support to improve the eBPF program performance
on arm64.
dpdk.org/examples/bpf/t1.c application shows around 50% improvement
on OCTEON TX2 platform in JIT vs interpreter mode.
Verified the implementation using existing bpf_autotest application.
# echo "bpf_autotest" | sudo ./build/app/test -c 0x3
RTE>>bpf_autotest
run_test(test_store1) start
run_test(test_store2) start
run_test(test_load1) start
run_test(test_ldimm1) start
run_test(test_mul1) start
run_test(test_shift1) start
run_test(test_jump1) start
run_test(test_alu1) start
run_test(test_bele1) start
run_test(test_xadd1) start
run_test(test_div1) start
bpf_exec(0xffffa37c0000): division by 0 at pc: 0x68;
run_test(test_call1) start
run_test(test_call2) start
run_test(test_call3) start
Test OK
Jerin Jacob (8):
bpf/arm64: add build infrastructure
bpf/arm64: add prologue and epilogue
bpf/arm64: add basic arithmetic operations
bpf/arm64: add logical operations
bpf/arm64: add byte swap operations
bpf/arm64: add load and store operations
bpf/arm64: add atomic-exchange-and-add operation
bpf/arm64: add branch operation
MAINTAINERS | 1 +
doc/guides/prog_guide/bpf_lib.rst | 2 +-
doc/guides/rel_notes/release_19_11.rst | 5 +
lib/librte_bpf/Makefile | 2 +
lib/librte_bpf/bpf.c | 4 +-
lib/librte_bpf/bpf_impl.h | 3 +-
lib/librte_bpf/bpf_jit_arm64.c | 1451 ++++++++++++++++++++++++
lib/librte_bpf/meson.build | 2 +
8 files changed, 1466 insertions(+), 4 deletions(-)
create mode 100644 lib/librte_bpf/bpf_jit_arm64.c