libvirt: virtio-net multiqueue (partial)

Registered by Vladik Romanovsky

Add supoort to enable the virtio-net multiqueue feature for guest
    instances.

    With virtio-net multiqueue enabled network performance can be scaled
    accross number of vCPUs, by transfering the packets through multiple virtqueue
    pairs at a time.

    Libvirt driver will set the number of queues equal to the number of guest VCPUs

    To control this feature, the following should be set in the flavour extra specs:

    hw:vif_multiqueue_enabled=true|disabled

    This setting can be overriden by the image metadata property if the feature
    is enabled in the extra specs:

    hw_vif_mutliqueue_enabled=true|false

Blueprint information

Status:
Complete
Approver:
John Garbutt
Priority:
Low
Drafter:
Vladik Romanovsky
Direction:
Approved
Assignee:
Vladik Romanovsky
Definition:
Approved
Series goal:
Accepted for liberty
Implementation:
Implemented
Milestone target:
milestone icon 12.0.0
Started by
John Garbutt
Completed by
John Garbutt

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/libvirt-start-lxc-from-block-devices,n,z

Addressed by: https://review.openstack.org/128825
    libvirt: virtio-net multiqueue

Gerrit topic: https://review.openstack.org/#q,topic:bp/libvirt-virtio-net-multiqueue,n,z

Addressed by: https://review.openstack.org/128826
    libvirt: configuration for interface driver options

Addressed by: https://review.openstack.org/128827
    libvirt: vif tests should use a flavor object

Addressed by: https://review.openstack.org/128828
    tests: update _get_instance_xml to accept custom flavor object

Addressed by: https://review.openstack.org/128829
    libvirt: enable virtio-net multiqueue

Addressed by: https://review.openstack.org/182108
    libvirt: update NetworkRequest object to support queues

Addressed by: https://review.openstack.org/182109
    tests: _stub_allocate_for_instance to accept port ids list

Addressed by: https://review.openstack.org/182110
    libvirt: update VIF metadata with queues in the neutron api

Do you have all the code up for review? I am afraid its not totally clear to me from the current state. --johnthetubaguy 15th July 2015
Please note this blueprint will delayed until the M release if it is not in the NeedsCodeReview state (with all the code up for review) before July 16th, and merged by July 30th. We expect to re-open master for the M release in September. For more information, please see: https://wiki.openstack.org/wiki/Nova/Liberty_Release_Schedule#Non-priority_Blueprint_Feature_Freeze and http://lists.openstack.org/pipermail/openstack-dev/2015-June/065819.html
--johnthetubaguy 15th July 2015

Addressed by: https://review.openstack.org/202168
    objects: add hw_vif_multiqueue_enabled image property

I am going to mark this as partial, and having all the code up for review. Seems like there is enough up for review for this to be useful now. --johnthetubaguy 16th July 2015

Addressed by: https://review.openstack.org/204190
    tests: change assertEqual args to expected, observed for VIF

Last patch is just a test refactor, marking this blueprint as complete. --johnthetubaguy 10th August 2015

(?)

Work Items