Top Banner
Ciara Loftus Intel Corporation DPDK vHost User Improvements
83

Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

May 23, 2018

Download

Documents

lamduong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Ciara LoftusIntel Corporation

DPDK vHost User Improvements

Page 2: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Agenda

• DPDK vHost User Introduction/Refresh

• Time Line of DPDK vHost User in OVS

• Recent Improvements

• NUMA Awareness

• Client Mode & Reconnect

• Future Improvements

• vHost User PMD

• Zero Copy

Page 3: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

DPDK vHost User Refresh

What is DPDK vHost User?

Page 4: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

DPDK vHost User Refresh

What is DPDK?

Page 5: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

What is DPDK?

• Data Plane Development Kit

Page 6: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

What is DPDK?

• Data Plane Development Kit

• Userspace drivers & libraries for accelerated network I/O

Page 7: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

What is DPDK?

• Data Plane Development Kit

• Userspace drivers & libraries for accelerated network I/O

• Integrated into OVS in v2.2

ioeventfd

irqfd

Page 8: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

What is DPDK?

• Data Plane Development Kit

• Userspace drivers & libraries for accelerated network I/O

• Integrated into OVS in v2.2

ioeventfd

irqfdKernel Space

OVSDatapath

Eth x

User Space

Page 9: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

What is DPDK?

• Data Plane Development Kit

• Userspace drivers & libraries for accelerated network I/O

• Integrated into OVS in v2.2

ioeventfd

irqfdKernel Space

OVS DPDK Datapath

DPDK x

ioeventfd

irqfdKernel Space

OVSDatapath

Eth x

User Space User Space

Page 10: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

DPDK vHost User Refresh

Accelerated guest access method offered by DPDK

capable of outperforming traditional methods by >8x*

ioeventfd

irqfd

QEMU

Operating System

Virtio DriverRX

TX

Kernel Space

OVS Datapath

DPDK vhost user

DPDK x

socket

virtio-net vhost-net vhost-user

User SpaceOVS (DPDK)

PHY PHY

QEMU

VIRT VIRT

VIRT VIRT

Single core, unidirectional loopback test with 64B packets

* Platform Configuration and Test Result in Backup

Page 11: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

2.2

vHost Cuse

2.4

vHost User

2.4

Multi-queue

2.5

NUMA Awareness

2.6

Cuse removal

2.6

Client Mode &

Reconnect

2.6

vHost PMD

TBD

Zero Copy

TBD TBD

= Functional Improvement

= Performance Improvement

OVS Release Version

Other

Page 12: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

2.2

= Functional Improvement

= Performance Improvement

Other

Page 13: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

2.4

= Functional Improvement

= Performance Improvement

Other

Page 14: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

2.4

= Functional Improvement

= Performance Improvement

Other

Page 15: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

2.5

= Functional Improvement

= Performance Improvement

Other

Page 16: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

2.6

= Functional Improvement

= Performance Improvement

Other

Page 17: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

2.6

= Functional Improvement

= Performance Improvement

Other

Page 18: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

2.6

= Functional Improvement

= Performance Improvement

Other

Page 19: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode & Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

TBD

= Functional Improvement

= Performance Improvement

Other

Page 20: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode & Reconnect

vHost PMD

Zero Copy

TBDOVS

Release Version

NUMA Awareness

= Functional Improvement

= Performance Improvement

Other

Page 21: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Timeline of vHost User in OVS

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode & Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

TBD

= Functional Improvement

= Performance Improvement

Other

Page 22: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Kernel vHost

vHost Cuse

vHost User

Multi-queue

NUMA Awareness

2.6

Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

Other

Page 23: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

QEMU, DPDK & OVS vHost memory need to be co-located

for optimal performance.

Page 24: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

QEMU, DPDK & OVS vHost memory need to be co-located

for optimal performance.

Page 25: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

QEMU, DPDK & OVS vHost memory need to be co-located

for optimal performance.

Page 26: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

QEMU, DPDK & OVS vHost memory need to be co-located

for optimal performance.

Page 27: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Previous limitation:

All DPDK vHost memory must come from the same NUMA node.

Page 28: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Previous limitation:

All DPDK vHost memory must come from the same NUMA node.

Page 29: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Previous limitation:

All DPDK vHost memory must come from the same NUMA node.

Page 30: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Previous limitation:

All DPDK vHost memory must come from the same NUMA node.

Page 31: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Solution:

DPDK vHost memory relocated to correct NUMA node on VM boot.

Page 32: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Previous limitation:

All PMDs servicing vHost ports must come from the same NUMA node.

Page 33: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Solution:

mbufs and servicing PMD in OVS are moved to correct NUMA during DPDK callback.

Page 34: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Solution:

mbufs and servicing PMD in OVS are moved to correct NUMA during DPDK callback.

Page 35: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Can achieve >50% improvement in second socket VM2VM performance*

vs

Without NUMA Awareness With NUMA Awareness

* Platform Configuration and Test Result in Backup

Page 36: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

NUMA Awareness

Can achieve >50% improvement in second socket VM2VM performance*

vs

Without NUMA Awareness With NUMA Awareness

* Platform Configuration and Test Result in Backuphttps://software.intel.com/en-us/articles/vhost-user-numa-awareness-in-open-vswitch-with-dpdk

Page 37: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Kernel vHost

vHost Cuse

vHost User

Multi-queue

NUMA Awareness

Cuse removal

Client Mode &

Reconnect

vHost PMD

Zero Copy

OVS Release Version

2.6

Other

Page 38: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Previous Limitation:

VMs cannot easily regain

connectivity if OVS DPDK crashes

or is reset

QEMU (client mode)

OVS DPDK (server mode)

vhost0

eth0Guest

Host

Default Mode (Server)

Page 39: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Previous Limitation:

VMs cannot easily regain

connectivity if OVS DPDK crashes

or is reset

OVS by default acts as the socket

server

QEMU (client mode)

OVS DPDK (server mode)

vhost0

eth0Guest

Host

Default Mode (Server)

= creates/manages/destroys sockets

Page 40: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Previous Limitation:

VMs cannot easily regain

connectivity if OVS DPDK crashes

or is reset

OVS by default acts as the socket

server

QEMU (client mode)

OVS DPDK (server mode)

vhost0

eth0Guest

Host

Default Mode (Server)

= creates/manages/destroys sockets

Page 41: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Previous Limitation:

VMs cannot easily regain

connectivity if OVS DPDK crashes

or is reset

OVS by default acts as the socket

server

QEMU (client mode)

OVS DPDK (server mode)

vhost0

eth0Guest

Host

Default Mode (Server)

= creates/manages/destroys sockets

Page 42: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Previous Limitation:

VMs cannot easily regain

connectivity if OVS DPDK crashes

or is reset

OVS by default acts as the socket

server

QEMU (client mode)

OVS DPDK (server mode)

vhost0

eth0Guest

Host

Default Mode (Server)

= creates/manages/destroys sockets

Page 43: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Previous Limitation:

VMs cannot easily regain

connectivity if OVS DPDK crashes

or is reset

OVS by default acts as the socket

server

QEMU (client mode)

OVS DPDK (server mode)

vhost0

eth0Guest

Host

Default Mode (Server)

= creates/manages/destroys sockets

Page 44: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Previous Limitation:

VMs cannot easily regain

connectivity if OVS DPDK crashes

or is reset

OVS by default acts as the socket

server

QEMU (client mode)

OVS DPDK (server mode)

vhost0

eth0Guest

Host

Default Mode (Server)

= creates/manages/destroys sockets

Page 45: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Solution:

QEMU creates the socket and acts

as the server instead

QEMU (server mode)

OVS DPDK (client mode)

vhost0

eth0Guest

Host

New Mode (Client)

= creates/manages/destroys sockets

Page 46: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Solution:

QEMU creates the socket and acts

as the server instead

QEMU (server mode)

OVS DPDK (client mode)

vhost0

eth0Guest

Host

New Mode (Client)

= creates/manages/destroys sockets

Page 47: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Solution:

QEMU creates the socket and acts

as the server instead

VMs can reconnect to OVS

QEMU (server mode)

OVS DPDK (client mode)

vhost0

eth0Guest

Host

New Mode (Client)

= creates/manages/destroys sockets

Page 48: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Client Mode & Reconnect

Solution:

QEMU creates the socket and acts

as the server instead

VMs can reconnect to OVS

QEMU (server mode)

OVS DPDK (client mode)

vhost0

eth0Guest

Host

New Mode (Client)

= creates/manages/destroys sockets

https://software.intel.com/en-us/articles/vhost-user-client-mode-in-open-vswitch-with-dpdk

Page 49: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

Kernel vHost

vHost Cuse

vHost User

Multi-queue

NUMA Awareness

Cuse removal

Client Mode & Reconnect

vHost PMD

Zero Copy

OVS Release Version

TBD

Other

Page 50: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

Page 51: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

libraries

librte_mbuf

librte_malloc

librte_mempool

.

.

.

librte_vhost

Page 52: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

libraries

librte_mbuf

librte_malloc

librte_mempool

.

.

.

librte_vhost

drivers

ixgbe

i40e

mlx

.

.

.

Page 53: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

libraries

librte_mbuf

librte_malloc

librte_mempool

.

.

.

librte_vhost

drivers

ixgbe

i40e

mlx

.

.

.

Core

Libraries

Page 54: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

libraries

librte_mbuf

librte_malloc

librte_mempool

.

.

.

librte_vhost

drivers

ixgbe

i40e

mlx

.

.

.

Core

Libraries librte_ether

DPDK API

Page 55: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

libraries

librte_mbuf

librte_malloc

librte_mempool

.

.

.

librte_vhost

drivers

ixgbe

i40e

mlx

.

.

.

Core

Libraries librte_ether

DPDK API

Page 56: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

libraries

librte_mbuf

librte_malloc

librte_mempool

.

.

.

librte_vhost

drivers

ixgbe

i40e

mlx

.

.

.

vhost

Core

Libraries librte_ether

DPDK API

Page 57: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

vHost PMD

libraries

librte_mbuf

librte_malloc

librte_mempool

.

.

.

librte_vhost

drivers

ixgbe

i40e

mlx

.

.

.

vhost

Core

Libraries librte_ether

DPDK API

• Simplified code path

• Little difference in usability/performance

• Easier future vHostfeature integration in OVS

Page 58: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Kernel vHost

vHost Cuse

vHost User

Multi-queue

NUMA Awareness

Cuse removal

Client Mode & Reconnect

vHost PMD

Zero Copy

OVS Release Version

TBD

Other

Page 59: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

DPDK 16.11 performance

improvement

Page 60: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

DPDK 16.11 performance

improvement

Both dequeue (rx) and

enqueue (tx) paths usually

incur a copy.

Page 61: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Dequeue path involves

copying a packet from the

VM to the host

Page 62: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Dequeue path involves

copying a packet from the

VM to the host

Page 63: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Dequeue path involves

copying a packet from the

VM to the host

Page 64: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Dequeue path involves

copying a packet from the

VM to the host

Page 65: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Enqueue path involves

coping a packet from the

host to the VM

Page 66: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Enqueue path involves

coping a packet from the

host to the VM

Page 67: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Enqueue path involves

coping a packet from the

host to the VM

Page 68: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Enqueue path involves

coping a packet from the

host to the VM

Page 69: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Zero copy is possible for

dequeue if the mbuf

references the virtio

descriptor buffer directly.

Page 70: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Zero copy is possible for

dequeue if the mbuf

references the virtio

descriptor buffer directly.

Page 71: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Not suitable for small

packet sizes (~ < 512B)

Page 72: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Zero Copy

Can achieve >15% increase

in throughput for 1518B

packets for this use case*

(vHost OVS-DPDK vHost)

* Platform Configuration and Test Result in Backup

Page 73: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Other Future Improvements

Kernel vHost

vHost Cuse

vHost User

Multi-queue Cuse removal

Client Mode & Reconnect

vHost PMD

Zero Copy

OVS Release Version

NUMA Awareness

TBD

= Functional Improvement

= Performance Improvement

Other

Page 74: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Other Future Improvements

• Virtio User (16.11)

• New “PMD”

• Method of using vHost User in containers

Page 75: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Other Future Improvements

• Virtio User (16.11)

• New “PMD”

• Method of using vHost User in containers

• Mergeable buffers path improvement (16.11)

Page 76: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Other Future Improvements

• Virtio User (16.11)

• New “PMD”

• Method of using vHost User in containers

• Mergeable buffers path improvement (16.11)

• vHost PCI (POC)

• VM2VM path performance enhancement

• vHost vEth pair

Page 77: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Conclusion

• Since it’s introduction to OVS in 2015, many incremental

improvements to DPDK vHost User have been added.

• Many more improvements to look forward to.

Page 78: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Questions?

Page 79: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

BACKUP

Page 80: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

General Disclaimer:

© Copyright 2016 Intel Corporation. All rights reserved. Intel, the Intel logo, Intel Inside, the Intel Inside logo, Intel. Experience What’s Inside are trademarks of Intel. Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others.

Technology Disclaimer:

Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at [intel.com].

Performance Disclaimers (include only the relevant ones):

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.

Results have been estimated or simulated using internal Intel analysis or architecture simulation or modeling, and provided to you for informational purposes. Any differences in your system hardware, software or configuration may affect your actual performance.

Legal Disclaimer

Page 81: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Item Description

Server PlatformIntel® Server Board S2600WTT (Formerly Wildcat Pass)

2 x 1GbE integrated LAN portsTwo processors per platform

Chipset Intel® C610/X99 series chipset (Formerly Wellsburg)

Processor

Intel® Xeon® Processor E5-2695 v3 (Formerly Haswell)

Speed and power: 2.30 GHz, 120 WCache: 35 MB per processorCores: 14 cores, 28 hyper-threaded cores per processor for 56 total hyper-threaded cores

QPI: 9.6 GT/s Memory types: DDR4-1600/1866/2133, Reference: http://ark.intel.com/products/81057/Intel-Xeon-Processor-E5-2695-v3-35M-

Cache-2_30-GHz

Memory Micron 16 GB 1Rx4 PC4-2133MHz, 16 GB per channel, 8 Channels

NICs2 x Intel® Ethernet CAN X710 Adapter (Total: 4 x 10GbE ports)

(Formerly Fortville)

BIOSVersion: SE5C610.86B.01.01.0008.021120151325

Date: 02/11/2015

OS Fedora 22

SoftwareDPDK - v2.2.0, OVS – v2.5.0 pre-release (commit 522aca), QEMU – 2.3.0, Linux kernel –

4.0.6-300.fc22.x86_64

Platform Configuration & Test Results

Guest Access Method

Packets perSecond

virtio-net 51131

vhost-net 406515

vhost-user 3366374

Page 82: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Item Description

Server PlatformIntel® Server Board S2600WTT (Formerly Wildcat Pass)

2 x 1GbE integrated LAN portsTwo processors per platform

Chipset Intel® C610/X99 series chipset (Formerly Wellsburg)

Processor

Intel® Xeon® Processor E5-2695 v3 (Formerly Haswell)

Speed and power: 2.30 GHz, 120 WCache: 35 MB per processorCores: 14 cores, 28 hyper-threaded cores per processor for 56 total hyper-threaded cores

QPI: 9.6 GT/s Memory types: DDR4-1600/1866/2133, Reference: http://ark.intel.com/products/81057/Intel-Xeon-Processor-E5-2695-v3-35M-

Cache-2_30-GHz

Memory Micron 16 GB 1Rx4 PC4-2133MHz, 16 GB per channel, 8 Channels

NICs2 x Intel® Ethernet CAN X710 Adapter (Total: 4 x 10GbE ports)

(Formerly Fortville)

BIOSVersion: SE5C610.86B.01.01.0008.021120151325

Date: 02/11/2015

OS Fedora 22

SoftwareDPDK – v16.07, OVS – v2.6.0 (commit 136e425df951), QEMU – 2.7.0, Linux kernel – 4.2.8-

200.fc22.x86_64

Platform Configuration & Test Results

Packets perSecond

WithoutNUMA

Awareness

2545945

With NUMA Awareness

3831019

Page 83: Ciara Loftus - Open vSwitchopenvswitch.org/support/ovscon2016/8/1025-loftus.pdfAgenda •DPDK vHost User Introduction/Refresh •Time Line of DPDK vHost User in OVS •Recent Improvements

Item Description

Server PlatformIntel® Server Board S2600WTT (Formerly Wildcat Pass)

2 x 1GbE integrated LAN portsTwo processors per platform

Chipset Intel® C610/X99 series chipset (Formerly Wellsburg)

Processor

Intel® Xeon® Processor E5-2695 v3 (Formerly Haswell)

Speed and power: 2.30 GHz, 120 WCache: 35 MB per processorCores: 14 cores, 28 hyper-threaded cores per processor for 56 total hyper-threaded cores

QPI: 9.6 GT/s Memory types: DDR4-1600/1866/2133, Reference: http://ark.intel.com/products/81057/Intel-Xeon-Processor-E5-2695-v3-35M-

Cache-2_30-GHz

Memory Micron 16 GB 1Rx4 PC4-2133MHz, 16 GB per channel, 8 Channels

NICs2 x Intel® Ethernet CAN X710 Adapter (Total: 4 x 10GbE ports)

(Formerly Fortville)

BIOSVersion: SE5C610.86B.01.01.0008.021120151325

Date: 02/11/2015

OS Fedora 22

SoftwareDPDK – v16.11-rc2, OVS – v2.6.0 (commit 136e425df951, patched to enable feature), QEMU –

2.7.0, Linux kernel – 4.2.8-200.fc22.x86_64

Platform Configuration & Test Results

Packets perSecond

Without zero copy

2094554

With zero copy

2415784