Towards a single virtualized data path for VPP Zhihong Wang – Intel FD.io Mini Summit – Seattle – 2016
Outline Background Features, performance Integration
Background Why virtio ring? Standard spec. High performance Virtual Appliance Host Kernel vSwitch or vRouter Virtual Appliance Virtual Appliance Why virtio ring? Standard spec. High performance Bypass kernel Share memory based Smart notification Cache friendly Continuously evolving Secure
A single Vhost 1 + 1 + … = 1 2 Vhost in VPP DPDK VPP OVS Contrail BESS Lagopus 2 Vhost in VPP Historically, VPP has a stock Vhost-user Unified PMD for Vhost in DPDK Desire: A single Vhost Development/optimization convergence Lower maintenance effort Better usability 1 + 1 + … = 1
DPDK Vhost evolution Feature support Reconnect, live migration, offloading, multiqueue… Performance optimization: Design + Implementation Reaching the maximum throughput for 0.95/1.0 Cache access: Batching, avoid RFO bubbles… Virtio 1.1 New ring layout Rings, descs, … Virtio core R/W Vhost core R/W “Simple can be harder than complex.” ― Steve Jobs
Performance VPP xconnect between NIC and a Vhost port On a Haswell server DPDK Vhost is faster 12% 35% 30% 28% 23% 8% 12% 21% 15% 5% Based on upcoming DPDK Vhost patches
Feature support Continuous feature development in both communities
DPDK Vhost re-integration in progress DPDK evolution in upcoming releases Vhost enqueue performance enhancement Delay copy at TX side A single Vhost for VPP on the way – VPP 17.01 Better integration with Vhost PMD Code clean up Now we’re bringing it all to VPP!
Summary The Power and Beauty of Open Source! DPDK Vhost is evolving continuously Richer function support, better performance Bring DPDK Vhost into VPP A single Vhost, let’s do it together! http://dpdk.org/browse/next/dpdk-next-virtio/ Maintainer: yuanhan.liu@linux.intel.com