[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