VIRTIO-NET: VHOST DATA PATH ACCELERATION TORWARDS NFV CLOUD. CUNMING LIANG, Intel

Similar documents
VIRTIO: VHOST DATA PATH ACCELERATION TORWARDS NFV CLOUD. CUNMING LIANG, Intel

VDPA: VHOST-MDEV AS NEW VHOST PROTOCOL TRANSPORT

Vhost dataplane in Qemu. Jason Wang Red Hat

VGPU ON KVM VFIO BASED MEDIATED DEVICE FRAMEWORK Neo Jia & Kirti Wankhede, 08/25/2016

Vhost and VIOMMU. Jason Wang (Wei Xu Peter Xu

FPGA Acceleration and Virtualization Technology in DPDK ROSEN XU TIANFEI ZHANG

Live Migration with Mdev Device

SR-IOV support in Xen. Yaozu (Eddie) Dong Yunhong Jiang Kun (Kevin) Tian

KVM as The NFV Hypervisor

Improve VNF safety with Vhost-User/DPDK IOMMU support

Virtio/vhost status update

A Userspace Packet Switch for Virtual Machines

INSTALLATION RUNBOOK FOR Netronome Agilio OvS. MOS Version: 8.0 OpenStack Version:

New Approach to OVS Datapath Performance. Founder of CloudNetEngine Jun Xiao

I/O virtualization. Jiang, Yunhong Yang, Xiaowei Software and Service Group 2009 虚拟化技术全国高校师资研讨班

Hardware-Assisted Mediated Pass-Through with VFIO. Kevin Tian Principal Engineer, Intel

What is KVM? KVM patch. Modern hypervisors must do many things that are already done by OSs Scheduler, Memory management, I/O stacks

Achieve Low Latency NFV with Openstack*

Accelerating VM networking through XDP. Jason Wang Red Hat

Next Gen Virtual Switch. CloudNetEngine Founder & CTO Jun Xiao

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

MDev-NVMe: A NVMe Storage Virtualization Solution with Mediated Pass-Through

Using SR-IOV offloads with Open-vSwitch and similar applications

Intel Graphics Virtualization on KVM. Aug KVM Forum 2011 Rev. 3

Dataplane Networking journey in Containers

viommu/arm: full emulation and virtio-iommu approaches Eric Auger KVM Forum 2017

HKG net_mdev: Fast-path userspace I/O. Ilias Apalodimas Mykyta Iziumtsev François-Frédéric Ozog

Runtime VM Protection By Intel Multi-Key Total Memory Encryption (MKTME)

KVM on POWER Status update & IO Architecture

ARM-KVM: Weather Report Korea Linux Forum

Open vswitch - architecture

Virtio-blk Performance Improvement

viommu/arm: full emulation and virtio-iommu approaches Eric Auger KVM Forum 2017

Accelerating NVMe I/Os in Virtual Machine via SPDK vhost* Solution Ziye Yang, Changpeng Liu Senior software Engineer Intel

Corporate Update. OpenVswitch hardware offload over DPDK. DPDK summit 2017

Knut Omang Ifi/Oracle 20 Oct, Introduction to virtualization (Virtual machines) Aspects of network virtualization:

Red Hat Enterprise Virtualization Hypervisor Roadmap. Bhavna Sarathy Senior Technology Product Manager, Red Hat

Agenda. About us Why para-virtualize RDMA Project overview Open issues Future plans

DPDK Summit China 2017

Virtualisation: The KVM Way. Amit Shah

Zhang Tianfei. Rosen Xu

CLOUD ARCHITECTURE & PERFORMANCE WORKLOADS. Field Activities

Platform Device Assignment to KVM-on-ARM Virtual Machines via VFIO

Generic Buffer Sharing Mechanism for Mediated Devices

vswitch Acceleration with Hardware Offloading CHEN ZHIHUI JUNE 2018

VALE: a switched ethernet for virtual machines

Introduction to Virtio Crypto Device.

Changpeng Liu, Cloud Software Engineer. Piotr Pelpliński, Cloud Software Engineer

A Brief Guide to Virtual Switching Franck Baudin (Red Hat) Billy O Mahony (Intel)

Host Dataplane Acceleration: SmartNIC Deployment Models

Changpeng Liu. Cloud Storage Software Engineer. Intel Data Center Group

vnetwork Future Direction Howie Xu, VMware R&D November 4, 2008

Improving security and flexibility within Windows DPDK networking stacks RANJIT MENON INTEL OMAR CARDONA MICROSOFT

Shared Virtual Memory Virtualization. Liu, Yi L Raj, Ashok Pan, Jacob

Data Path acceleration techniques in a NFV world

Changpeng Liu. Senior Storage Software Engineer. Intel Data Center Group

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

HKG : OpenAMP Introduction. Wendy Liang

Virtio 1 - why do it? And - are we there yet? Michael S. Tsirkin Red Hat

MWC 2015 End to End NFV Architecture demo_

SmartNIC Programming Models

Real-Time KVM for the Masses Unrestricted Siemens AG All rights reserved

TITANIUM CLOUD VIRTUALIZATION PLATFORM

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

Quo Vadis Virtio? Michael S. Tsirkin Red Hat

Understanding The Performance of DPDK as a Computer Architect

Linux Virtualization Update

KVM PV DEVICES.

KVM PV DEVICES.

I/O Scalability in Xen

QorIQ Intelligent Network Interface Card (inic) Solution SDK v1.0 Update


DPDK Summit 2016 OpenContrail vrouter / DPDK Architecture. Raja Sivaramakrishnan, Distinguished Engineer Aniket Daptari, Sr.

SmartNIC Programming Models


Virtual switching technologies and Linux bridge

Evolution of the netmap architecture

The.pdf version of this slide deck will have missing info, due to use of animations. The original.pptx deck is available here:

Agilio OVS Software Architecture

Chapter 5 C. Virtual machines

Support for Smart NICs. Ian Pratt

Demonstrating Data Plane Performance Improvements using Enhanced Platform Awareness

VGA Assignment Using VFIO. Alex Williamson October 21 st, 2013

Dynamic Device Management THOMAS MONJALON - MELLANOX JEFF GUO - INTEL QI ZHANG INTEL SEPTEMBER 2018, DUBLIN

Let s Hot plug: By uevent mechanism in DPDK. Jeff guo Intel DPDK Summit User space - Dublin- 2017

Nova Scheduler: Optimizing, Configuring and Deploying NFV VNF's on OpenStack

Network Services Benchmarking: Accelerating the Virtualization of the Network

Virtualization. Starting Point: A Physical Machine. What is a Virtual Machine? Virtualization Properties. Types of Virtualization

Virtualization. ! Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized

DPDK on Microsoft Azure

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t he Energy Efficient Solutions logo, mobilegt, PowerQUICC,

Applying Polling Techniques to QEMU

Accelerating Telco NFV Deployments with DPDK and SmartNICs

Agilio CX 2x40GbE with OVS-TC

Programmable NICs. Lecture 14, Computer Networks (198:552)

COSC6376 Cloud Computing Lecture 15: IO Virtualization

Lecture 5. KVM for ARM. Christoffer Dall and Jason Nieh. 5 November, Operating Systems Practical. OSP Lecture 5, KVM for ARM 1/42

Virtualized SISCI. Extending Virtual Machines With a Shared Memory API Utilizing PCIe Networking. Halvor Kielland-Gyrud Master s Thesis Spring 2017

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

Performance Considerations of Network Functions Virtualization using Containers

Transcription:

VIRTIO-NET: VHOST DATA PATH ACCELERATION TORWARDS NFV CLOUD CUNMING LIANG, Intel

Agenda Towards NFV Cloud Background & Motivation vhost Data Path Acceleration Intro Design Impl Summary & Future Work

Towards NFV Cloud VIRTIO is a well recognized by Cloud DPDK promotes its Perf. into NFV Level New accelerators comes, what s the SW impact on I/O virtualization? Native I/O Perf. by SR-IOV device PT Faster simple forwarding by cache Remains historical gaps of cloudlization Stock VM and SW vswitch fallback Cross-platform Live-migration vdpa: Balanced Perf. and Cloudlization Device Pass-thru Like Performance Hypervisor native I/O Live-migration Friendly Stock vswitch/vms Support GOAL VNF0 VNF1 VNF2 VNF0 VNF1 VNF2 VNF0 VNF1 VNF2 VIRTIO IHV Specific VIRTIO OVS(-DPDK) OVS(-DPDK) Port Representor OVS(-DPDK) NIC NIC w/ Embedded Switch IHV Specific No SW impact on host I/O interface NIC w/ Embedded Switch IHV Specific Presentation focus on SW impact for the goal Cloud vswitch as NFVi Accelerated vswitch as NFVi Accelerated Cloud vswitch as NFVi

vdpa Intro

What is vdpa As a VMM native device, PV hasn t shared any benefits of I/O VT PV device was born with cloud-lization characters, But it s lack of performance towards NFV cloud. vhost Data Path Acceleration is a methodology for a PV device to do direct packet I/O over its associated accelerator. Decompose DP/CP of PV device CP remains to be emulated, but 1:1 associated with accelerator DP pass-thru backed by accelerator DP capable accelerator has ability to ENQ/DEQ VRING and recognize VRING format according to VIRTIO Spec. (show case of VIRTIO) VMM Performance Direct I/O I/O Bus VT CPU Utilization SW framework Cloud-lization PV Aware ~Cloud Qualified N/A(SW Relay) N/A Variable Emulated device w/ backend Impl. - LM friendly - SW fallback - SW vswitch native Dev Pass-thru Unaware ~NFV Qualified IOMMU/SMMU SR-IOV, SIOV Zero kvm-pci, vfio-{pci mdev} - Tricky LM - N/A - N/A

Why not device pass-thru for VIRTIO In Fact VIRTIO is a growing SW Spec. Unlikely forcing HW to follow uniform device definition Disadvantage Inherits all device pass-thru properties All or nothing offload, SW fallback in the guest (bonding) Framework limitation to support live-migration in general use Becomes VIRTIO Spec. version specific e.g. 0.95 PIO, 1.0 MMIO, etc. Lose the benefit of decomposed frontend/backend device framework Diverse backend adaption

vdpa Design

VIRTIO Anatomy QEMU GUEST PCI CSR Trapped MEMORY IOMMU RX/TX VIRTIO-NET DRIVER VIRTIO DEV MMU MMU ENQ/DEQ VHOST PROTO DEVICE STATE EMMULATION FUNC PHYSICAL MEMORY KICK HOST NOTIFY Device-specific register trapped (PIO/MMIO) Emulation backed by backend adapter via VHOST PROTO Packet I/O via Shared memory Interrupt via IRQFD Doorbell via IOEVENTFD Diverse VHOST backend adaption vhost-* IOEVE NTFD IRQFD KVM

Data Path Pass-thru ENQ/DEQ MEMORY IOMMU INTR MMIO ACC DEV RX/TX VIRTIO-NET DRIVER MMU MMIO CFG VIRTIO DEV GUEST MMU KICK vhost-* VHOST PROTO DEVICE STATE EMMULATION FUNC IOEVE NTFD IRQFD QEMU PHYSICAL MEMORY KVM HOST NOTIFY Decomposed VRING Data Path on ACC DMA Enq/Deq VRING via IOMMU Interrupt Notification VFIO INTR eventfd associate with IRQFD IRQFD as token for irq_bypass Prod/Cons Leverage existing posted-interrupt support Doorbell Kick SW Relayed IOEVENTFD to trigger doorbell (PIO) Add guest physical memory slot for doorbell direct mapping (MMIO) ACC needs a device framework Leverage user space driver by vhost-user vhost-net won t directly associate with driver ACC = Accelerator(VRING Capable)

Control Path Emulation VIRTIO PIO/MMIO trap to QEMU Emulation Call VHOST Req. VHOST Req. go thru transport channel via different backend tap/vhost Syscall Kernel vhost User space backend Feature message extension QEMU VHOST vhost-user Message vhost-user LIB Kernel space backend Add a new transport channel for VFIO (mediated) device vhost-vfio Syscall vfio device Define transport layout for data path relevant request vhost backend type Transport Layer

Cross vhost Backend Live-migration Live-migration Friendly Consistent vhost transport message sequence interact with QEMU live-migration Cross vhost backend LM netdev for virtio-net-pci tap w/ vhost=on/off vhost-user vhost-vfio (+)

vdpa Implementation

Construct vdpa via VFIO #1 QEMU for User Space Driver #2 QEMU for Kernel Driver DPDK Process VM vhost-user adapter New protocol message extension -- F_VFIO SLAVE Request to handover vfio group fd and notify meta data vhost-user adapter to map doorbell Dependence Leverage user space device framework (DPDK) vhost-user library Device Driver vfio-pci VFIO UAPI Host Kernel virtio-net-pci device emulation vhost-user adaptor VIRTIO DRV VIRTIO DEV vhost-vfio adaptor vfio-mdev/mdev-core Mediated Dev mdev_bus vfio_device_ops vhost FP Req over mdev Device Driver iommu QEMU vhost-vfio adapter New netdev as vhost backend Reuse QEMU VFIO interface VFIO device as vhost request transport layer Leverage vfio/mdev framework Dependence mdev_bus IOMMU support Single mdev per VF instance in Kernel User Space Driver Kernel Driver PV(VIRTIO) Domain

QEMU Changes for User Space Driver -- #1 vhost-user extension New Protocol Feature -- VHOST_USER_PROTOCOL_F_VFIO Slave Request Meta Data Update: VFIO Group FD, Notify Info Actions: Enable/Disable ACC VFIO Group FD Associate VFIO group fd with kvm_device_fd Update GSI routing Notify Info Represent for doorbell info (in page boundary) Add guest physical memory slot

QEMU Changes for Kernel Driver -- #2 vhost-vfio New netdev for virtio-net-pci -chardev vfio,id=vfio0,sysfsdev=/sys/bus/mdev/devices/$uuid \ -netdev vhost-vfio,id=net0,chardev=vfio0 -device virtio-net-pci,netdev=net0 VFIO device based vhost transport layer vhost request over vfio_device_ops(read, write) data path relevant request: feature, vring, doorbell, log Construct context for data path accelerator Leverage QEMU KVM/VFIO interface Memory region mapping for DMA Add guest physical memory slot for doorbell Interrupt/IRQFD via VFIO device ioctl CMD Don t expect other host applications to use the device so far

Relevant Dependence -- #2 vhost-vfio Kernel Leverage VFIO mediated device framework Add IOMMU support for mdev-bus VRING capable device driver to register as mdev Singleton mode only, 1:1 BDF(Bus, Device, Function) with mdev

Summary Hypervisor Native I/O virtio-net-pci Stock vswitch/vms Support Transparent to frontend Device Pass-thru Like Performance Data path pass-thru Live-migration Friendly Cross vhost backend live-migration The method is not VIRTIO only Rethinking I/O VT, break through the boundary

Future Work Collect feedback Send out RFC patches to DPDK, Qemu and Kernel Upstream current Impl. together w/ other relevant patches Continue to enable AVF/IHV device interface

Acknowledgment Tiwei Bie Jianfeng Tan Dan Daly Zhihong Wang Xiao Wang Heqing Zhu Kevin Tian Rashmin N Patal Edwin Verplanke Parthasarathy, Sarangam

Thanks!

Q&A Contacts: cunming.liang@intel.com