Unable to create vm with GPU/Crypto passthrough devices
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
StarlingX |
Fix Released
|
High
|
zhipeng liu |
Bug Description
Brief Description
-----------------
Launching vm with GPU or Crypto PF failed due to invalid class_id field for pci alias in nova conf file
Severity
--------
Major
Steps to Reproduce
------------------
Ensure computes have GPU or Crypto QAT pci devices, these devices can be found via system host-device-list $hostname
1. Check system helm-charts-show nova openstack to ensure pci alias for supported gpu and crypto devices are added
2. Check /etc/nova/nova.conf from nova-compute pods
3. Create flavor with crypto or gpu alias via pci_passthrough
4. Attempt to launch a vm with above flavor
Expected Behavior
------------------
1. class_id should not be included passthrough_
2. Based on upstream document, I'd expect nova.conf to contain something like this:
[pci]
alias = {"vendor_
...
passthrough_
https:/
4. VM is launched successfully
Actual Behavior
----------------
1. pci passthrough alias/whitelist were already added with a class_id field:
| | nova:
...
| | pci:
| | alias:
| | type: multistring
| | values:
| | - '{"vendor_id": "8086", "product_id": "0435", "name": "qat-dh895xcc-pf"}'
| | - '{"vendor_id": "8086", "product_id": "0443", "name": "qat-dh895xcc-vf"}'
| | - '{"vendor_id": "8086", "product_id": "37c8", "name": "qat-c62x-pf"}'
| | - '{"vendor_id": "8086", "product_id": "37c9", "name": "qat-c62x-vf"}'
| | - '{"class_id": "030000", "name": "gpu"}'
...
| | overrides:
| | nova_compute:
| | hosts:
| | - conf:
| | nova:
...
| | pci:
| | passthrough_
| | type: multistring
| | values:
| | - '{"class_id": "0b4000", "address": "0000:08:00.0"}'
| | - '{"class_id": "030000", "address": "0000:0c:00.0"}'
| | vnc:
| | vncserver_listen: 0.0.0.0
| | vncserver_
| | name: compute-1
2. /etc/nova/nova.conf in a nova-compute container:
[pci]
alias = {"vendor_id": "8086", "product_
alias = {"vendor_id": "8086", "product_
alias = {"vendor_id": "8086", "product_
passthrough_
passthrough_
4. I tried to launch the vm from horizon, which returns following error message on horizon:
Invalid PCI alias definition: Additional properties are not allowed (u'class_id' was unexpected) (HTTP 400) (Request-ID: req-47595675-
Reproducibility
---------------
Reproducible
System Configurations
-------
Any system with Crypto or GPU passthrough devices
Lab-name: wcp15-22
Branch/Pull Time/Commit
-------
stx master as of "20190410T013000Z"
Last Pass
---------
non-containerized load
Timestamp/Logs
--------------
VM launch attempt was around Mon Apr 15 14:51:36 UTC 2019
Error message:
Invalid PCI alias definition: Additional properties are not allowed (u'class_id' was unexpected) (HTTP 400) (Request-ID: req-47595675-
Test Activity
-------------
Regression Testing
Changed in starlingx: | |
assignee: | Cindy Xie (xxie1) → zhipeng liu (zhipengs) |
Changed in starlingx: | |
status: | Triaged → In Progress |
Changed in starlingx: | |
status: | Confirmed → Fix Released |
Marking as release gating; functionality broken as part of the move to containerized openstack.