Hyper-V PCI Passthrough

Registered by Simona Iuliana Toader

Discrete Device Assignment is a new feature in Windows Server 2016, offering
users the possibility of taking some of the PCI Express devices in their
systems and pass them through directly to a guest VM.

The nova Hyper-V Driver currently doesn't support this feature, and this
blueprint addresses this issue. This is a parity feature.

In order to use PCI passthrough in nova, the environment would have to be configured [2].
The Hyper-V host will also have to support this feature. This can be checked by running
this powershell script. [3]

The nova Hyper-V driver will have to report its available PCI devices to the resource tracker
(included in the get_available_resource method's return as "pci_passthrough_devices"), and
assign them when creating an instance.

[1] Discrete Device Assignment:
    https://blogs.technet.microsoft.com/virtualization/2015/11/19/discrete-device-assignment-description-and-background/

[2] https://wiki.openstack.org/wiki/Pci_passthrough#How_to_prepare_the_environment

[3] https://github.com/Microsoft/Virtualization-Documentation/blob/master/hyperv-tools/DiscreteDeviceAssignment/SurveyDDA.ps1

Blueprint information

Status:
Complete
Approver:
Matt Riedemann
Priority:
Low
Drafter:
Simona Iuliana Toader
Direction:
Approved
Assignee:
Simona Iuliana Toader
Definition:
Approved
Series goal:
Accepted for ocata
Implementation:
Implemented
Milestone target:
milestone icon ocata-3
Started by
Matt Riedemann
Completed by
Matt Riedemann

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/hyper-v-pci-passthrough,n,z

Addressed by: https://review.openstack.org/387654
    [WIP] Hyper-V PCI Passthrough

I've put this on the nova meeting agenda for 20161020 to be discussed as a specless blueprint. I'd also suggest bringing this up in the weekly SRIOV/PCI meeting that Moshe Levi runs:

http://eavesdrop.openstack.org/#SR-IOV/PCI_Passthrough_Meeting

-- mriedem 20161017

Per discussion in the 20161020 nova meeting I'm approving this as a specless blueprint. There are open questions about how this is going to be tested with CI. Please talk to lbeliveau, wznoinsk and moshele about how they do the PCI testing in the Intel and Mellanox CIs - I believe for Intel they have a custom tempest plugin for the PCI tests:

https://github.com/intel-hw-ci/Intel-Openstack-Hardware-CI/tree/master/pci_testcases

I also expect documentation of this feature here:

http://docs.openstack.org/admin-guide/compute-pci-passthrough.html

-- mriedem 20161020

Addressed by: https://review.openstack.org/420614
    WIP: Hyper-V PCI Passthrough

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.