Enabling TSO in OvS-DPDK

Slides:



Advertisements
Similar presentations
3rd Generation Intel ® Core vPro Processor The Business Case [Presenter:] [Title:] [Date:]
Advertisements

Transforming Business with Advanced Analytics: Introducing the New Intel® Xeon® Processor E7 v2 Family Seetha Rama Krishna Director, APAC HPC Solutions.
Intel ® Xeon ® Processor E v2 Product Family Ivy Bridge Improvements *Other names and brands may be claimed as the property of others. FeatureXeon.
Software and Services Group Optimization Notice Advancing HPC == advancing the business of software Rich Altmaier Director of Engineering Sept 1, 2011.
Software & Services Group Developer Products Division Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property.
HEVC Commentary and a call for local temporal distortion metrics Mark Buxton - Intel Corporation.
Version 1.0 digitaloffice.intel.com Intel ® vPro ™ Technology Intel ® Active Management Technology Setup and Configuration Toshiba Laptop –Tecra A9 Small.
Getting Reproducible Results with Intel® MKL 11.0
Intel® Solid-State Drive Data Center TCO Calculator The data in this presentation is based on your analysis and business assumptions when using the Intel®
Mobile Competitive SKU Matrix Q4’07 Edition. Copyright © 2007, Intel Corporation * Other names and brands may be claimed as the property of others 2 Usage.
Version 1.0 digitaloffice.intel.com Intel ® vPro ™ Technology Intel ® Active Management Technology Setup and Configuration Lenovo T61 Laptop Small Business.
1 Intel® Many Integrated Core (Intel® MIC) Architecture MARC Program Status and Essentials to Programming the Intel ® Xeon ® Phi ™ Coprocessor (based on.
1 March 2010 A Study of Hardware Assisted IP over InfiniBand and its Impact on Enterprise Data Center Performance Ryan E. Grant 1, Pavan Balaji 2, Ahmad.
Copyright © 2013 Intel Corporation. All rights reserved. Digital Signage for Growing Businesses November 2013.
Partner Logo Overcoming Buyer Objections Q
Guide to Linux Installation and Administration, 2e1 Chapter 2 Planning Your System.
Legal Notices and Important Information Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each.
Enterprise Platforms & Services Division (EPSD) JBOD Update October, 2012 Intel Confidential Copyright © 2012, Intel Corporation. All rights reserved.
Version 1.0 digitaloffice.intel.com Intel ® vPro ™ Technology Intel ® Active Management Technology Setup and Configuration Dell Optiplex 755 tower Small.
The Drive to Improved Performance/watt and Increasing Compute Density Steve Pawlowski Intel Senior Fellow GM, Architecture and Planning CTO, Digital Enterprise.
Version 1.0 digitaloffice.intel.com Intel ® vPro ™ Technology Intel ® Active Management Technology Setup and Configuration Lenovo M57p Desktop Small Business.
Technical Overview of Microsoft’s NetDMA Architecture Rade Trimceski Program Manager Windows Networking & Devices Microsoft Corporation.
Hands-On Microsoft Windows Server 2008 Chapter 7 Configuring and Managing Data Storage.
IBM Systems Group © 2004 IBM Corporationv 3.04 This presentation is intended for the education of IBM and Business Partner sales personnel. It should not.
Considerations for Benchmarking Virtual Networks Samuel Kommu, Jacob Rapp, Ben Basler,
Bluetooth-LE OpenJDK 8 & wearable sensors Edison Vinay K. Awasthi October 12, 2015.
© 2016 Unisys Corporation. All rights reserved. This video is provided “AS IS,” with all faults for informational purposes only and without warranty of.
Only Use FD.io VPP to Achieve high performance service function chaining Yi Intel.
Shaopeng, Ho Architect of Chinac Group
Unix Server Consolidation
TLDK Transport Layer Development Kit
New Approach to OVS Datapath Performance
TLDK overview Konstantin Ananyev 05/08/2016.
Wireless Communication and Networks
6WIND MWC IPsec Demo Scalable Virtual IPsec Aggregation with DPDK for Road Warriors and Branch Offices Changed original subtitle. Original subtitle:
Windows 8 Hardware Certification Program and KIT Overview
Grow Your Business with Intel
Windows Server* 2016 & Intel® Technologies
We teach ATM Networks to Think
Installation and database instance essentials
IBM System z9 109 Availability Eye Opener
TLS Receive Side Crypto Offload to NIC
NSH_SFC Performance Report FD.io NSH_SFC and CSIT Team
Intel® vPro™ Technology
Many-core Software Development Platforms
Networking overview Sujata
Packet Pacing Essentials
OpenFabrics Interfaces Working Group Co-Chair Intel November 2016
Chapter 20 Network Layer: Internet Protocol
Virtio Keith Wiles July 11, 2016.
12/26/2018 5:07 AM Leap forward with fast, agile & trusted solutions from Intel & Microsoft* Eman Yarlagadda (for Christine McMonigal) Hybrid Cloud – Product.
Ideas for adding FPGA Accelerators to DPDK
System Center Application Management
Virtio/Vhost Status Quo and Near-term Plan
IP - The Internet Protocol
BIC 10503: COMPUTER ARCHITECTURE
Network Services Benchmarking - NSB
Encrypting OVN tunnels with IPsec
By Vipin Varghese Application Engineer (NCSD)
Net 323 D: Networks Protocols
Deflate your Data with DPDK
A Scalable Approach to Virtual Switching
Service Template Creation from the Ground Up
Service Template Creation from the Ground Up
Private Data OBJECTS Smart Contracts For Data Access AND MORE
ITIS 6167/8167: Network and Information Security
Microsoft Virtual Academy
ECE 671 – Lecture 8 Network Adapters.
Presentation transcript:

Enabling TSO in OvS-DPDK December 5th-6th, 2018 | San Jose, CA Enabling TSO in OvS-DPDK Tiago Lam Intel

Agenda What is TSO? Why TSO in Userspace DPDK? Enable TSO in Userspace DPDK Performance results Considerations Status and future work

TSO (TCP Segmentation Offload) TSO is the segmentation of large chunks of data, relative to the MTU, into smaller segments, performed by the network NIC; DATA S Segmentation Checksum S C ETH IP TCP DATA ETH IP TCP DATA ETH IP TCP DATA C C C

Why TSO in Userspace DPDK? NIC NIC OvS-DPDK OvS-DPDK VM1 VM2 VM1 VM2 Host 1 Host 2 Intra-host Inter-host

Non TSO overview VM1 VM2 Host 2 Host 1 OvS-DPDK NIC Intra-host DATA Application Layer VM OS Userspace IP TCP DATA IP TCP DATA IP TCP DATA TCP/IP Layers Link Layer ETH IP TCP DATA ETH IP TCP DATA ETH IP TCP DATA VM OS Kernel eth0 OvS-DPDK vhuc0 ETH IP TCP DATA ETH IP TCP DATA ETH IP TCP DATA vhuc1 dpdk0 Intra-host Host OS Userspace VM2 Inter-host NIC Host 2 Host 1

The cost of non TSO Higher CPU loads; Lower overall throughput: More noticeable in Intra-host. DATA S ETH IP TCP DATA ETH IP TCP DATA ETH IP TCP DATA C C C ETH IP TCP DATA ETH IP TCP DATA ETH IP TCP DATA S Segmentation Checksum C

TSO in Userspace DPDK

Single-segment mbufs Used in master OvS-DPDK (<=2.10); Mbufs allocated with the maximum packet size (e.g. 9KiB); No flexibility to hold different sized packets. ETH IP TCP DATA Mbuf struct ETH IP TCP DATA Mbuf struct

A case for multi-segment mbufs Mbufs allocated with a default size (2k); Chained together if needed to hold bigger packets; ETH IP TCP DATA Mbuf struct Mbuf struct DATA Mbuf struct DATA

A case for multi-segment mbufs Mbufs allocated with a default size (2k); Chained together if needed to hold bigger packets; Data is no longer held contiguously in memory: ETH IP TCP DATA Mbuf struct Mbuf struct DATA Mbuf struct DATA struct ip_header *ip; … if (OVS_UNLIKELY(!dp_packet_ip_checksum_valid(packet))) { if (csum(ip, IP_IHL(ip->ip_ihl_ver) * 4)) { VLOG_WARN_RL(&err_rl, "ip packet has invalid checksum"); return NULL; }

A case for multi-segment mbufs NIC OvS-DPDK ETH IP TCP DATA Mbuf struct vhuc1 vhuc0 VM1 VM2

TSO integration Set mbuf’s layer l2_len, l3_len and l4_len fields; ETH IP TCP DATA Mbuf struct l2_len=0x0e l3_len=0x14 l4_len=0x14 mbuf

TSO integration Set mbuf’s layer l2_len, l3_len and l4_len fields; Mark packet for offload with flags: PKT_TX_IPV4 | PKT_TX_IP_CKSUM; PKT_TX_TCP_SEG | PKT_TX_TCP_CKSUM. ETH IP TCP DATA Mbuf struct l2_len=0x0e l3_len=0x14 l4_len=0x14 mbuf ol_flags=PKT_TX_IPV4 | PKT_TX_IP_CKSUM | PKT_TX_TCP_CKSUM | PKT_TX_TCP_SEG;

TSO integration Set mbuf’s layer l2_len, l3_len and l4_len fields; Mark packet for offload with flags: PKT_TX_IPV4 | PKT_TX_IP_CKSUM; PKT_TX_TCP_SEG | PKT_TX_TCP_CKSUM. Set the TSO segment size; ETH IP TCP DATA Mbuf struct l2_len=0x0e l3_len=0x14 l4_len=0x14 mbuf ol_flags=PKT_TX_IPV4 | PKT_TX_IP_CKSUM | PKT_TX_TCP_CKSUM | PKT_TX_TCP_SEG; tso_segsz=$mtu - l3_len - l4_len

TSO integration Set mbuf’s layer l2_len, l3_len and l4_len fields; Mark packet for offload with flags: PKT_TX_IPV4 | PKT_TX_IP_CKSUM; PKT_TX_TCP_SEG | PKT_TX_TCP_CKSUM. Set the TSO segment size; Prepare packet for tx offload: rte_eth_tx_prepare(); ipv4_hdr->hdr_checksum=0; tcp_hdr->cksum=rte_ipv4_phdr_cksum(ipv4_hdr, mbuf->ol_flags); ETH IP TCP DATA Mbuf struct l2_len=0x0e l3_len=0x14 l4_len=0x14 mbuf ol_flags=PKT_TX_IPV4 | PKT_TX_IP_CKSUM | PKT_TX_TCP_CKSUM | PKT_TX_TCP_SEG; tso_segsz=$mtu - l3_len - l4_len * Note: In older versions of DPDK checksum calculations differ between NICs / replaced by rte_eth_tx_prepare();

Intra-host with TSO Lower CPU loads; Higher overall throughput. S C 2 NIC C Lower CPU loads; Higher overall throughput. 2 OvS-DPDK 1 VM1 3 VM2 S Segmentation Checksum C VM1 / OvS-DPDK / VM2 NIC 1 2 3 ETH IP TCP DATA ETH IP TCP DATA S ETH IP TCP DATA ETH IP TCP DATA ETH IP TCP DATA C C C

Performance results

Considerations No vectorized optimizations: DPDK v17.11 vs v18.11: Found to affect 64B packets only. DPDK v17.11 vs v18.11: Better support to query devices on offload capabilities. Contiguous vs non-contiguous memory; No GSO fall-back;

Status and future work Two patches submitted upstream: Add support for multi-segment mbufs [1]; Add support for TSO (RFC) [2]. Focus on getting multi-segment mbufs upstreamed; GSO support.

Thanks!

References [1] https://mail.openvswitch.org/pipermail/ovs-dev/2018-October/352889.html [2] https://mail.openvswitch.org/pipermail/ovs-dev/2018-August/350832.html

Notices & Disclaimers Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. Check with your system manufacturer or retailer or learn more at intel.com. No computer system can be absolutely secure. Tests document performance of components on a particular test, in specific systems. Differences in hardware, software, or configuration will affect actual performance. Consult other sources of information to evaluate performance as you consider your purchase. For more complete information about performance and benchmark results, visit http://www.intel.com/benchmarks . Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more complete information visit http://www.intel.com/benchmarks . Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Cost reduction scenarios described are intended as examples of how a given Intel-based product, in the specified circumstances and configurations, may affect future costs and provide cost savings. Circumstances will vary. Intel does not guarantee any costs or cost reduction. Intel does not control or audit third-party benchmark data or the web sites referenced in this document. You should visit the referenced web site and confirm whether referenced data are accurate. © 2018 Intel Corporation. Intel, the Intel logo, and Intel Xeon are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as property of others.

Backup

Test setup Host: VMs: Fedora 27 - 4.15.14-300.fc27.x86_64 OS: Ubuntu 16.04.2 LTS - 4.10.0-28-generic NIC1: Intel X710 10-Gigabit Ethernet Controller NIC2: Intel 82599ES 10-Gigabit Ethernet Controller VMs: Fedora 27 - 4.15.14-300.fc27.x86_64 QEMU: version 2.5.0 Iperf: version 2.0.11 OvS: v2.10 DPKD: v17.11.3