Improve NFV workload performance with multiq support

Registered by Dmitry Teselkin

Today's high-end server have more processors, guests running on them tend have
an increasing number of vcpus. The scale of the protocol stack in guest in
restricted because of the single queue virtio-net:

* The network performance does not scale as the number of vcpus increasing:
  Guest can not transmit or retrieve packets in parallel as virtio-net have
  only one TX and RX, virtio-net drivers must be synchronized before sending
  and receiving packets. Even through there's software technology to spread
  the loads into different processor such as RFS, such kind of method is only
  for transmission and is really expensive in guest as they depends on IPI
  which may brings extra overhead in virtualized environment.

* Multiqueue nic were more common used and is well supported by linux kernel,
  but current virtual nic can not utilize the multi queue support: the tap and
  virtio-net backend must serialize the co-current transmission/receiving
  request comes from different cpus.

Support for multiqueue in vhost-user was added not a long time ago, so we need
the following packages together:

* qemu 2.5
* libvirt 1.3.1
* openvswitch 2.5
* dpdk 2.2

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Dmitry Teselkin
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.