From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qi Zhang Subject: [RFC 0/7] PMD driver for AF_XDP Date: Tue, 27 Feb 2018 17:35:47 +0800 Message-ID: <20180227093554.23951-1-qi.z.zhang@intel.com> Cc: magnus.karlsson@intel.com, bjorn.topel@intel.com, Qi Zhang To: dev@dpdk.org Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id A90EE4C88 for ; Tue, 27 Feb 2018 10:35:57 +0100 (CET) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The RFC patches add a new PMD driver for AF_XDP which is a proposed faster version of AF_PACKET interface in Linux, see below link for detail AF_XDP introduction: https://fosdem.org/2018/schedule/event/af_xdp/ https://lwn.net/Articles/745934/ This patchset is base on v18.02. It also require a linux kernel that have below AF_XDP RFC patches be applied. https://patchwork.ozlabs.org/patch/867961/ https://patchwork.ozlabs.org/patch/867960/ https://patchwork.ozlabs.org/patch/867938/ https://patchwork.ozlabs.org/patch/867939/ https://patchwork.ozlabs.org/patch/867940/ https://patchwork.ozlabs.org/patch/867941/ https://patchwork.ozlabs.org/patch/867942/ https://patchwork.ozlabs.org/patch/867943/ https://patchwork.ozlabs.org/patch/867944/ https://patchwork.ozlabs.org/patch/867945/ https://patchwork.ozlabs.org/patch/867946/ https://patchwork.ozlabs.org/patch/867947/ https://patchwork.ozlabs.org/patch/867948/ https://patchwork.ozlabs.org/patch/867949/ https://patchwork.ozlabs.org/patch/867950/ https://patchwork.ozlabs.org/patch/867951/ https://patchwork.ozlabs.org/patch/867952/ https://patchwork.ozlabs.org/patch/867953/ https://patchwork.ozlabs.org/patch/867954/ https://patchwork.ozlabs.org/patch/867955/ https://patchwork.ozlabs.org/patch/867956/ https://patchwork.ozlabs.org/patch/867957/ https://patchwork.ozlabs.org/patch/867958/ https://patchwork.ozlabs.org/patch/867959/ There is no clean upstream target yet since kernel patch is still in RFC stage, The purpose of the patchset is just for anyone that want to eveluate af_xdp with DPDK application and get feedback for further improvement. To try with the new PMD 1. compile and install the kernel with above patches applied. 2. configure $LINUX_HEADER_DIR (dir of "make headers_install") and $TOOLS_DIR (dir at /tools) at driver/net/af_xdp/Makefile before compile DPDK. 3. make sure libelf and libbpf is installed. BTW, performance test shows our PMD can reach 94%~98% of the orignal benchmark when share memory is enabled. Qi Zhang (7): net/af_xdp: new PMD driver lib/mbuf: enable parse flags when create mempool lib/mempool: allow page size aligned mempool net/af_xdp: use mbuf mempool for buffer management net/af_xdp: enable share mempool net/af_xdp: load BPF file app/testpmd: enable parameter for mempool flags app/test-pmd/parameters.c | 12 + app/test-pmd/testpmd.c | 15 +- app/test-pmd/testpmd.h | 1 + config/common_base | 5 + config/common_linuxapp | 1 + drivers/net/Makefile | 1 + drivers/net/af_xdp/Makefile | 60 ++ drivers/net/af_xdp/bpf_load.c | 798 +++++++++++++++++++++++ drivers/net/af_xdp/bpf_load.h | 65 ++ drivers/net/af_xdp/libbpf.h | 199 ++++++ drivers/net/af_xdp/meson.build | 7 + drivers/net/af_xdp/rte_eth_af_xdp.c | 878 ++++++++++++++++++++++++++ drivers/net/af_xdp/rte_pmd_af_xdp_version.map | 4 + drivers/net/af_xdp/xdpsock_queue.h | 62 ++ lib/librte_mbuf/rte_mbuf.c | 15 +- lib/librte_mbuf/rte_mbuf.h | 8 +- lib/librte_mempool/rte_mempool.c | 2 + lib/librte_mempool/rte_mempool.h | 1 + mk/rte.app.mk | 1 + 19 files changed, 2125 insertions(+), 10 deletions(-) create mode 100644 drivers/net/af_xdp/Makefile create mode 100644 drivers/net/af_xdp/bpf_load.c create mode 100644 drivers/net/af_xdp/bpf_load.h create mode 100644 drivers/net/af_xdp/libbpf.h create mode 100644 drivers/net/af_xdp/meson.build create mode 100644 drivers/net/af_xdp/rte_eth_af_xdp.c create mode 100644 drivers/net/af_xdp/rte_pmd_af_xdp_version.map create mode 100644 drivers/net/af_xdp/xdpsock_queue.h -- 2.13.6