Design of Vhost-pci - designing a new virtio device for inter-vm communication

Similar documents
KVM as The NFV Hypervisor

Intel Desktop Board DZ68DB

Jim Harris Principal Software Engineer Intel Data Center Group

DPDK Vhost/Virtio Performance Report Release 18.05

DPDK Vhost/Virtio Performance Report Release 18.11

Intel Desktop Board DH61SA

Intel Desktop Board DH61CR

Intel Desktop Board D945GCCR

Making Nested Virtualization Real by Using Hardware Virtualization Features

Intel Desktop Board D945GCLF2

Nested Virtualization Update From Intel. Xiantao Zhang, Eddie Dong Intel Corporation

Intel 945(GM/GME)/915(GM/GME)/ 855(GM/GME)/852(GM/GME) Chipsets VGA Port Always Enabled Hardware Workaround

VDPA: VHOST-MDEV AS NEW VHOST PROTOCOL TRANSPORT

Intel Desktop Board DP67DE

Innovating and Integrating for Communications and Storage

Intel Desktop Board DP55SB

Intel Desktop Board DH55TC

KVM for IA64. Anthony Xu

Intel Desktop Board D975XBX2

Intel Desktop Board D946GZAB

Intel Virtualization Technology Roadmap and VT-d Support in Xen

Intel Platform Administration Technology Quick Start Guide

Intel Desktop Board DG41CN

Intel G31/P31 Express Chipset

Evolving Small Cells. Udayan Mukherjee Senior Principal Engineer and Director (Wireless Infrastructure)

Intel 848P Chipset. Specification Update. Intel 82848P Memory Controller Hub (MCH) August 2003

Intel Setup and Configuration Service. (Lightweight)

Intel Desktop Board DG31PR

Live Migration of vgpu

Intel Atom Processor E3800 Product Family Development Kit Based on Intel Intelligent System Extended (ISX) Form Factor Reference Design

Intel Cache Acceleration Software for Windows* Workstation

LED Manager for Intel NUC

Intel Desktop Board DG41RQ

Intel Desktop Board D945GCLF

DPDK Summit China 2017

How to Create a.cibd File from Mentor Xpedition for HLDRC

How to Create a.cibd/.cce File from Mentor Xpedition for HLDRC

Intel Xeon Phi Coprocessor. Technical Resources. Intel Xeon Phi Coprocessor Workshop Pawsey Centre & CSIRO, Aug Intel Xeon Phi Coprocessor

Intel Unite Plugin Guide for VDO360 Clearwater

Upgrading Intel Server Board Set SE8500HW4 to Support Intel Xeon Processors 7000 Sequence

Intel Transparent Computing

Device Firmware Update (DFU) for Windows

Intel Server Board S2600CW2S

Enhancing pass through device support with IOMMU. Haitao Shan Yunhong Jiang Allen M Kay Eddie (Yaozu) Dong

Virtio/vhost status update

INTEL PERCEPTUAL COMPUTING SDK. How To Use the Privacy Notification Tool

DPDK Vhost/Virtio Performance Report Release 17.08

Intel Server Board S2600STB

Intel and the Future of Consumer Electronics. Shahrokh Shahidzadeh Sr. Principal Technologist

Intel Server Board S3000PT Spares/Parts List and Configuration Guide for Production Products

Intel Open Network Platform Release 2.0 Hardware and Software Specifications Application Note. SDN/NFV Solutions with Intel Open Network Platform

Software Evaluation Guide for ImTOO* YouTube* to ipod* Converter Downloading YouTube videos to your ipod

Intel Desktop Board D845PT Specification Update

Intel Core TM Processor i C Embedded Application Power Guideline Addendum

Clear CMOS after Hardware Configuration Changes

Intel Server Board S1200BTS

GraphBuilder: A Scalable Graph ETL Framework

Intel Server Board S2400SC

Intel Desktop Board DH61HO. MLP Report. Motherboard Logo Program (MLP) 09/20/2012

Drive Recovery Panel

Intel Desktop Board D915GUX Specification Update

Intel Desktop Board D915GEV Specification Update

Intel Atom Processor Based Platform Technologies. Intelligent Systems Group Intel Corporation

Intel Serial to Parallel PCI Bridge Evaluation Board

Intel Desktop Board DQ57TM

Software Evaluation Guide for CyberLink MediaEspresso *

Serial-to-Ethernet Converter for Stellaris Microcontrollers

Intel Desktop Board D102GGC2 Specification Update

Intel Desktop Board DQ35JO

Intel Desktop Board D945GSEJT

Intel Server Board S5520HC

Intel X48 Express Chipset Memory Controller Hub (MCH)

Extending Energy Efficiency. From Silicon To The Platform. And Beyond Raj Hazra. Director, Systems Technology Lab

Intel Desktop Board DQ35MP. MLP Report. Motherboard Logo Program (MLP) 5/7/2008

Installation Guide and Release Notes

Intel Graphics Virtualization Technology. Kevin Tian Graphics Virtualization Architect

How to abstract hardware acceleration device in cloud environment. Maciej Grochowski Intel DCG Ireland

Installation Guide and Release Notes

Intel Cache Acceleration Software - Workstation

Data Plane Development Kit

Intel Setup and Configuration Service Lite

Intel Unite. Intel Unite Firewall Help Guide

Building High-Performance NFV Solutions Using Containers

Intel USB 3.0 extensible Host Controller Driver

Expand Your HPC Market Reach and Grow Your Sales with Intel Cluster Ready

Intel Server Board S1200V3RPO Intel Server System R1208RPOSHORSPP

Intel Desktop Board DP45SG

Intel Server Board S1200V3RPO Intel Server System R1208RPOSHORSPP

Mobile Intel Pentium 4 Processor-M and Intel 852PM/GME/GMV Chipset Platform

Practical Xen Testing at Intel

Sample for OpenCL* and DirectX* Video Acceleration Surface Sharing

How to Configure Intel X520 Ethernet Server Adapter Based Virtual Functions on SuSE*Enterprise Linux Server* using Xen*

Open FCoE for ESX*-based Intel Ethernet Server X520 Family Adapters

Enabling DDR2 16-Bit Mode on Intel IXP43X Product Line of Network Processors

Interrupt Swizzling Solution for Intel 5000 Chipset Series based Platforms

Achieve Low Latency NFV with Openstack*

Intel Desktop Board D945PSN Specification Update

OpenCL* and Microsoft DirectX* Video Acceleration Surface Sharing

Intel Core TM i7-4702ec Processor for Communications Infrastructure

Data Center Energy Efficiency Using Intel Intelligent Power Node Manager and Intel Data Center Manager

Transcription:

Design of Vhost-pci - designing a new virtio device for inter-vm communication Wei Wang wei.w.wang@intel.com Contributors: Jun Nakajima, Mesut Ergin, James Tsai, Guangrong Xiao, Mallesh Koujalagi, Huawei Xie, Yuanhan Liu

Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. INTEL PRODUCTS ARE NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING, OR LIFE SUSTAINING APPLICATIONS. Intel may make changes to specifications and product descriptions at any time, without notice. All products, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice. Intel, processors, chipsets, and desktop boards may contain design defects or errors known as errata, which may cause the product to deviate from published specifications. Current characterized errata are available on request. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright 2016 Intel Corporation.

Agenda Part 1: Usage and Motivation Part 2: Design Details Part 3: Current Status Intel Confidential 3

Part 1: Usage and Motivation Intel Confidential 4

Traditional Network Appliance Design Transformation of Network Appliances Physical Network Links Inter-VM Communication Network Appliances to Virtual Network Functions(VNF): transformation relies on high performance inter-vm communication schemes 5

Virtual Network Function Forwarding Graph Work together to provide a service Data Flow 1 Logical Link Physical Link Data Flow 2 Ref: ETSI, Architectural Framework, 2013 http://www.etsi.org/deliver/etsi_gs/nfv/001_099/002/01.01.01_60/gs_nfv002v010101p.pdf 6

VNF Forwarding with Vhost-pci Data Flow 1 Data Flow 2 Logical Link 7

Existing Inter-VM Network Packet Transmission Long Code Path: packets are transmitted from one VM to another via an intermediary 1 Host Packets, streamed out of VMs, are bumper-to-bumper in the central vswitch 4 Intel Confidential 2 1 2 3 4 3 88

Vhost-pci for Inter-VM Network Packet Transmission 1 2 Advantages: Short Code Path: packets are transmitted from one VM directly to another VM Better scalability 4 Intel Confidential 3 99

Normalized throughput Micro-benchmarking Results VSPERF / Chain of 2 to 5 VM - RFC2544 via ext. packet generator DPDK gen - OVS DPDK on two cores (default) - VM setup: one pinned vcpu, 2GB RAM (hugepages) - pcpu: Intel(R) Xeon(R) E5-2698 v3 @ 2.30GHz 1.50 1.00 0.50 0.00 Intel Confidential 1.28 1.00 1.00 0.58 vhost-user 0.43 1.14 1.14 1.14 2VM 3VM 4VM 5VM vhost-pci 1010

Part 2: Design Details Intel Confidential 11

Vhost-pci Driver 2 Vhost-pci Vhost-pci Device Device 22 Frontend Device/Driver Vhost-pci Driver 1 Vhost-pci Vhost-pci Device Device 11 Vhost-pci Design Backend Device/Driver QEMU Socket Server/Client Socket Connection New Component No change needed to in-guest drivers for virtio devices Vhost-pci Protocol 12

Vhost-pci Server To use the vhost-pci based inter-vm communication mechanism, a VM s QEMU needs to create a vhost-pci server Creates a vhost-pci-server by adding the following QEMU booting commands: -chardev socket,id=vhost-pci-server-xyz,server,wait=off,connections=32,path=/opt/vhost-pci-server-xyz -vhost-pci-server socket,chardev=vhost-pci-server-xyz 13

Vhost-pci Client To use a vhost-pci device on another VM as a backend, the originating virtio device supplies a vhost-pci client which connects to the remote vhost-pci server Create a virtio device with a vhost-pci client using the following commands: -chardev socket,id=vp-client1,path=/opt/vhost-pci-server-xyz -device virtio-net-pci,mac=52:54:00:00:00:01,vhost-pci-client=vp-client1 The client communicates to the server using the vhost-pci protocol to set up the inter-vm communication channel 14

Vhost-PCI Protocol Controlq Msg Socket Msg Protocol Msg VHOST_PCI_GET_UUID Identifies a frontend VM VHOST_PCI_GET_MEMORY_INFO Used to map the entire frontend VM s memory VHOST_PCI_GET_DEVICE_INFO Frontend device info (device type, vring addr etc) VHOST_PCI_GET_FEATURE_BITS Feature bits of the frontend device to be negotiated with the vhost-pci device and driver 15

Vhost-pci Device Management Memory Info Msg Device Creation memory_size 0 ① Vhost-pci Device Instance BAR Vhost-pci ③ Register MemoryRegion to a BAR, Size =2N Mapped Size = N ④Hot-plug into the VM ② Map Un-mapped Size = N Reserved for memory hot-plug memory_size 1 memory_size 2 memory_size 16

Vhost-pci Driver Data Structure Representation struct vhost_pci_info: struct vhost_pci_dev[max_num]; struct vhost_pci_dev: u32 device_type; u64 device_id; void *dev; Pointer to the device specific structure e.g. dev = net_device 17

Vhost-pci-net Data Path Vring mirror Vring Mirroring vhost-pci-net shares vrings created by the originating virtio-net device TX ring from originating device becomes RX ring at mirrored device, and vice versa Copying packets in and out of originating device rings is the responsibility of vhostpci-net 18

Part 3: Current Status Intel Confidential 19

Current Status Initial PoC completed, summary of results presented Design RFC v2 has been sent out to KVM/QEMU mailing list (https:// lists.gnu.org/archive/html/qemu-devel/2016-06/msg05359.html) Patches implementing RFC v2 design are work in progress 20

End of Presentation Thank you! Intel Confidential 21