the kernel bypass with rdma
play

the kernel bypass with RDMA! Using the RDMA infrastructure for - PowerPoint PPT Presentation

Userspace networking: beyond the kernel bypass with RDMA! Using the RDMA infrastructure for performance while retaining kernel integration Benot Ganne, bganne@cisco.com 30/01/2020 1 Why a native network driver? Why userspace networking?


  1. Userspace networking: beyond the kernel bypass with RDMA! Using the RDMA infrastructure for performance while retaining kernel integration Benoît Ganne, bganne@cisco.com 30/01/2020 1

  2. Why a native network driver? • Why userspace networking? VPP IPv4 forwarding PDR, 1core, 2M routes • Performance (avoid kernel overhead) 18 • Update network functions seamlessly (no reboot required, containerization) 16 +23% • Why your own network driver? 14 • Performance (metadata translation tax, feature 12 tax) Mpps 10 • Ease-of-use (no reliance on hugepages, etc.) 8 • Why you should think twice? 6 • No integration with kernel (interface fully owned by userspace) 4 • You care about rx/tx packets but device 2 initialization & setup is 95% of the work • Hardware is hard (more on that later) 0 Native DPDK Source: https://docs.fd.io/csit/master/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-xxv710.html 30/01/2020 2

  3. RDMA • « Remote Direct Memory Access » • Designed for message passing and HW RNIC data transfer • Has evolved to use Ethernet transport (iWARP, RoCE) Kernel RDMA uAPI • Key properties DMA • Hardware offload • Kernel bypass libibverb • Zero Copy data transfer • High network bandwidth User VPP ➔ Great for kernel networking! 30/01/2020 3

  4. Extending RDMA for Ethernet Incoming packets are steered to Linux netdev or userspace application based on flows • Not designed for efficient Ethernet communication – but! HW RNIC • Ethernet-capable HW (initially for transport) • High performance (200Gbps today) DMA • Kernel bypass with well established API RDMA and native Linux kernel support Kernel RDMA uAPI Netstack DMA • Why not extend it to support userspace networking? • Introduce new IBV_QPT_RAW_PACKET libibverb queue pair type User • Support for bifurcation with flow steering • Keep your Linux netdev VPP • Support MACVLAN, IPVLAN model… 30/01/2020 4

  5. Using RDMA for Ethernet How to send 20 Mpps with 1 CPU 1. Get a handle to the device you want to use 2. Initialize queues • Queue Pair (QP) = Submission Queue (SQ) + Completion Queue (CQ) • Protection Domain (PD) = where the NIC is allowed to read/write data (packets) 3. Send packets • Put Work Queue Elements (WQE – kind of IOV) in SQ • Notify new packets to send • Poll CQ for completion Full example at https://github.com/bganne/rdma-pktgen 30/01/2020 5

  6. Going deeper with Direct Verbs • RDMA user API is ibverb • Simple enough, mostly standard, open-source • Not full performance (metadata translation tax, feature tax) • Direct Verbs • ibverb extension to access DMA ring-buffers directly • Hardware-dependent! • Setup done through ibverb, then get DMA rings addresses 30/01/2020 6

  7. VPP native RDMA driver • ibverb version • Available since 19.04 • ~ 20 Mpps L2-xconnect per core • Direct Verb • Development underway • Hardware is hard : while trying to debug my driver I almost bricked my NIC • Next • Add support for hardware offloads (checksum offload, TSO) 30/01/2020 7

  8. A call to action • We love this model • No need to write code boilerplate to initialize the NIC: we can focus on what matters (rx/tx packets) • Seamless integration with Linux kernel • Great performance • But is has limitations • Need RDMA-capable NIC: must support Hardware security model, etc. • Only supported on Mellanox for now • Could other technologies enable this approach? • Disclaimer: a bit outside of my domain knowledge here… • vfio-mdev? • AF_XDP? 30/01/2020 8

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend