From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH v11 0/1] Introduce AF_XDP PMD Date: Thu, 4 Apr 2019 17:13:05 +0100 Message-ID: <6a63d9fa-0634-8184-252e-40e0ff5ce203@intel.com> References: <20190301080947.91086-1-xiaolong.ye@intel.com> <20190404085113.16732-1-xiaolong.ye@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Qi Zhang , Karlsson Magnus , Topel Bjorn , Maxime Coquelin , Bruce Richardson , Ananyev Konstantin , David Marchand , Andrew Rybchenko , Olivier Matz To: Xiaolong Ye , dev@dpdk.org, Stephen Hemminger , Luca Boccassi Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id BAD971B20D for ; Thu, 4 Apr 2019 18:13:11 +0200 (CEST) In-Reply-To: <20190404085113.16732-1-xiaolong.ye@intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 4/4/2019 9:51 AM, Xiaolong Ye wrote: > Overview > ======== > > This patchset adds a new PMD driver for AF_XDP which is a proposed > faster version of AF_PACKET interface in Linux, see below links [1] [2] for > details of AF_XDP introduction: > > AF_XDP roadmap > ============== > - AF_XDP is included in upstream kernel since 4.18, and AF_XDP support > in libbpf has been merged in v5.1-rc1. > - Now i40e and ixgbe drivers have supported zero copy mode. > > Change logs > =========== > v11: > > - fix the meson build issue > > v10: > > - refine the Makefile, remove RTE_KERNELDIR related CFLAGS > - add a new internal file af_xdp_deps.h to handle the dependency for > asm/barrier.h > - fix a typo observed by Stephen > - rename xsk.h to bpf/xsk.h as xsk.h is assumed to be installed in > /usr/local/include/bpf > - add libbpf build steps in af_xdp.rst > > > v9: > - adjust header files order according to Stephen's suggestion > > v8: > - address Ferruh's comments on V7 > - replace posix_memalign with rte_memzone_reserve_aligned to get better > performance > - keep the first patch only as Oliver suggested as zero copy part > implementation is still in suspense, we may provide the related patch > later. > > v7: > - mention mtu limitation in af_xdp.rst > - fix the vdev name in af_xdp.rst > > V6: > > - remove the newline in AF_XDP_LOG definition to avoid double new lines > issue. > - rename MEMPOOL_F_PAGE_ALIGN to MEMPOOL_CHUNK_F_PAGE_ALIGN. > > V5: > > - disable AF_XDP pmd by default due to it requires kernel more recent > than minimum kernel version supported by DPDK > - address other review comments of Maxime > > V4: > > - change vdev name to net_af_xdp > - adopt dynamic log type for all logging > - Fix other style issues raised by Stephen > > V3: > > - Fix all style issues pointed by Stephen, Mattias, David. > - Drop the testpmd change as we'll adopt Jerin's suggestion to add a new > mempool driver to handle the application use of AF_XDP's zero copy feature. > > V2: > - Fix a NULL pointer reference crash issue > - Fix txonly stop sending traffic in zc mode > - Refactor rte_mbuf.c to avoid ABI breakage. > - Fix multiple style issues pointed by Ferruh, David, Stephen, Luca. > > changes vs RFC sent by Qi last Aug: > > - Re-work base on AF_XDP's interface changes since the new libbpf has > provided higher-level APIs that hide many of the details of the AP_XDP > uapi. After the rework, it helps to reduce 300+ lines of code. > > - multi-queues is not supported due to current libbpf doesn't support > multi-sockets on a single umem. > > - No extra steps to load xdp program manually, since the current behavior of > libbpf would load a default xdp program when user calls xsk_socket__create. > userspace application only needs to handle the cleanup. > > How to try > ========== > > 1. take the kernel >= v5.1-rc1, build kernel and replace your host > kernel with it. > > make sure you turn on XDP sockets when compiling > > Networking support --> > Networking options --> > [ * ] XDP sockets > > 2. build & install libbpf in tools/lib/bpf > > cd tools/lib/bpf > make install_lib > make install_headers > > 3. ethtool -L enp59s0f0 combined 1 > > 4. extra step to build dpdk > > explicitly enable AF_XDP pmd by adding below line to > config/common_linux > > CONFIG_RTE_LIBRTE_PMD_AF_XDP=y > > 5. start testpmd > > ./build/app/testpmd -c 0xc -n 4 --vdev net_af_xdp,iface=enp59s0f0,queue=0 -- -i --rxq=1 --txq=1 > > in this case, default xdp program will be loaded and linked to queue 0 of enp59s0f0, > network traffics travel to queue 0 will be redirected to af_xdp socket. > > Xiaolong Ye (1): > net/af_xdp: introduce AF XDP PMD driver Reviewed-by: Ferruh Yigit