[Openstack] Issue with assignment of Intel’s QAT Card to VM (PCI-passthrough) using openstack-mitaka release on Cent OS 7.2 host
Chinmaya Dwibedy
ckdwibedy at gmail.com
Tue Jun 7 12:23:04 UTC 2016
Hi Giridhar,
Thank you for your email.
There is a check in Nova ( get_device_type in
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py)
that determines if a given PCI device is:
1) A normal PCI device,
2) An SR-IOV physical function (PF); or
3) An SR-IOV virtual function (VF).
If it's a normal PCI device or a virtual function it's considered for
passthrough, if it's a PF it's not (considered to be owned by the
host/hypervisor).What I understand, currently it is not possible to pass
through a physical function to an OpenStack instance. Thus when I launch a
VM using a flavor configured for passthrough, the instance goes into the
error state.
Furthermore I have configured the “device_type”: “type-PCI” as stated below
in nova.conf.
pci_alias = {"name": "QuickAssist", "product_id": "0435", "vendor_id":
"8086", "device_type": "type-PCI"}
I fail to understand why it shows dev_type='type-PF' in nova compute log
and MariaDB output. It should show dev_type='type-PCI'. Can you please
correct me if my understanding is wrong?
2016-06-07 02:10:45.181 118672 INFO nova.compute.resource_tracker
[req-5f0325a6-2dd8-4a25-b518-9143cc0aac0c - - - - -] Auditing locally
available compute resources for node localhost
2016-06-07 02:10:45.618 118672 INFO nova.compute.resource_tracker
[req-5f0325a6-2dd8-4a25-b518-9143cc0aac0c - - - - -] Total usable vcpus:
36, total allocated vcpus: 8
2016-06-07 02:10:45.618 118672 INFO nova.compute.resource_tracker
[req-5f0325a6-2dd8-4a25-b518-9143cc0aac0c - - - - -] Final resource view:
name=localhost phys_ram=128657MB used_ram=16896MB phys_disk=49GB
used_disk=160GB total_vcpus=36 used_vcpus=8
pci_stats=[PciDevicePool(count=2,numa_node=1,product_id='0435',tags={dev_type='type-PF'},vendor_id='8086')]
[root at localhost ~(keystone_admin)]# lspci -vnd 8086:0435
83:00.0 0b40: 8086:0435
Subsystem: 8086:35c5
Physical Slot: 0-1
Flags: bus master, fast devsel, latency 0, IRQ 35
Memory at 387fffd00000 (64-bit, prefetchable) [size=512K]
Memory at c8200000 (64-bit, non-prefetchable) [size=256K]
Memory at c8240000 (64-bit, non-prefetchable) [size=256K]
Capabilities: [b0] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [60] MSI-X: Enable+ Count=33 Masked-
Capabilities: [6c] Power Management version 3
Capabilities: [74] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [138] Alternative Routing-ID Interpretation (ARI)
Capabilities: [140] Single Root I/O Virtualization (SR-IOV)
Kernel driver in use: dh895xcc
88:00.0 0b40: 8086:0435
Subsystem: 8086:35c5
Physical Slot: 0-2
Flags: bus master, fast devsel, latency 0, IRQ 39
Memory at 387fffe00000 (64-bit, prefetchable) [size=512K]
Memory at c8000000 (64-bit, non-prefetchable) [size=256K]
Memory at c8040000 (64-bit, non-prefetchable) [size=256K]
Capabilities: [b0] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [60] MSI-X: Enable+ Count=33 Masked-
Capabilities: [6c] Power Management version 3
Capabilities: [74] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [138] Alternative Routing-ID Interpretation (ARI)
Capabilities: [140] Single Root I/O Virtualization (SR-IOV)
Kernel driver in use: dh895xcc
[root at localhost ~(keystone_admin)]#
Also I find that, virtualization support is enabled and required kernel
modules are loaded.
[root at localhost ~(keystone_admin)]# egrep -wo 'vmx|lm|aes' /proc/cpuinfo
| sort | uniq\
> | sed -e 's/aes/Hardware encryption=Yes (&)/g' \
> -e 's/lm/64 bit cpu=Yes (&)/g' -e 's/vmx/Intel hardware
virtualization=Yes (&)/g'
Hardware encryption=Yes (aes)
64 bit cpu=Yes (lm)
*Intel hardware virtualization=Yes (vmx)*
[root at localhost ~(keystone_admin)]#
[root at localhost ~(keystone_admin)]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 36
On-line CPU(s) list: 0-35
Thread(s) per core: 1
Core(s) per socket: 18
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 63
Model name: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
Stepping: 2
CPU MHz: 1417.285
BogoMIPS: 4594.35
*Virtualization: VT-x*
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 46080K
NUMA node0 CPU(s): 0-17
NUMA node1 CPU(s): 18-35
[root at localhost ~(keystone_admin)]#
[root at localhost ~(keystone_admin)]# lsmod | grep kvm
kvm_intel 162153 0
kvm 525409 1 kvm_intel
Regards,
Chinmaya
On Tue, Jun 7, 2016 at 12:11 PM, Giridhar Jayavelu <gjayavelu at vmware.com>
wrote:
> The alias has device_type as "type-PCI"
> pci_alias = {"name": "QuickAssist", "product_id": "0435", "vendor_id":
> "8086", "device_type": "type-PCI"}
>
> But from the maria DB output, you can see that the devices are "type-PF".
> Please change the device_type in the alias if you intend to attach
> physical function to the instance.
>
>
>
> > On Jun 6, 2016, at 11:22 PM, Chinmaya Dwibedy <ckdwibedy at gmail.com>
> wrote:
> >
> > pci_alias = {"name": "QuickAssist", "product_id": "0435", "vendor_id":
> "8086", "device_type": "type-PCI"}
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20160607/82b3bfb1/attachment.html>
More information about the Openstack
mailing list