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@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@localhost ~(keystone_admin)]# Also I find that, virtualization support is enabled and required kernel modules are loaded. [root@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@localhost ~(keystone_admin)]# [root@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@localhost ~(keystone_admin)]# [root@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 <[email protected]> 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 <[email protected]> > wrote: > > > > pci_alias = {"name": "QuickAssist", "product_id": "0435", "vendor_id": > "8086", "device_type": "type-PCI"} > >
_______________________________________________ Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack Post to : [email protected] Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
