<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Dear Openstack community,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am not able to configure PCI pass-through with GPUs successfully and was wondering if someone could give advice.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">physical machine: Dell C4140<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">DT-V and SR-IOV are enabled on BIOS<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># hosts names/role:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">openstack-deployment --> kolla deployment and openstack client<o:p></o:p></p>
<p class="MsoNormal">controller node --> TEST-openstack-controller<o:p></o:p></p>
<p class="MsoNormal">proto-gpu --> compute node with 4 GPUs installed<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">latest nvidia cude software has been installed on the node<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">iommu kernel module has been enabled on GRUB but I am not sure whether it is working<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Check Grub config<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">[root@proto-gpu ~]# vi /etc/default/grub<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">GRUB_TIMEOUT=5<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">GRUB_DEFAULT=saved<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">GRUB_DISABLE_SUBMENU=true<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">GRUB_TERMINAL_OUTPUT="console"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">GRUB_CMDLINE_LINUX="nouveau.modeset=0 rd.driver.blacklist=nouveau crashkernel=auto rhgb quiet intel_iommu=on"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">GRUB_DISABLE_RECOVERY="true"<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">### Check dmesg after system reboot<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">[root@proto-gpu ~]# dmesg | grep -e DMAR -e IOMMU<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.000000] ACPI: DMAR 000000006f6c3000 001D0 (v01 DELL   PE_SC3   00000001 DELL 00000001)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.000000] DMAR: IOMMU enabled<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232060] DMAR: Host address width 46<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232062] DMAR: DRHD base: 0x000000d37fc000 flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232068] DMAR: dmar0: reg_base_addr d37fc000 ver 1:0 cap 8d2078c106f0466 ecap f020df<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232069] DMAR: DRHD base: 0x000000e0ffc000 flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232074] DMAR: dmar1: reg_base_addr e0ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232075] DMAR: DRHD base: 0x000000ee7fc000 flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232080] DMAR: dmar2: reg_base_addr ee7fc000 ver 1:0 cap 8d2078c106f0466 ecap f020df<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232081] DMAR: DRHD base: 0x000000fbffc000 flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232085] DMAR: dmar3: reg_base_addr fbffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232086] DMAR: DRHD base: 0x000000aaffc000 flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232090] DMAR: dmar4: reg_base_addr aaffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232091] DMAR: DRHD base: 0x000000b87fc000 flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232096] DMAR: dmar5: reg_base_addr b87fc000 ver 1:0 cap 8d2078c106f0466 ecap f020df<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232097] DMAR: DRHD base: 0x000000c5ffc000 flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232101] DMAR: dmar6: reg_base_addr c5ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232102] DMAR: DRHD base: 0x0000009d7fc000 flags: 0x1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232106] DMAR: dmar7: reg_base_addr 9d7fc000 ver 1:0 cap 8d2078c106f0466 ecap f020df<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232107] DMAR: RMRR base: 0x0000006e2cd000 end: 0x0000006e7ccfff<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232108] DMAR: RMRR base: 0x0000006f362000 end: 0x0000006f364fff<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232109] DMAR: ATSR flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232110] DMAR: ATSR flags: 0x0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232112] DMAR-IR: IOAPIC id 12 under DRHD base  0xc5ffc000 IOMMU 6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232113] DMAR-IR: IOAPIC id 11 under DRHD base  0xb87fc000 IOMMU 5<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232114] DMAR-IR: IOAPIC id 10 under DRHD base  0xaaffc000 IOMMU 4<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232115] DMAR-IR: IOAPIC id 18 under DRHD base  0xfbffc000 IOMMU 3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232116] DMAR-IR: IOAPIC id 17 under DRHD base  0xee7fc000 IOMMU 2<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232117] DMAR-IR: IOAPIC id 16 under DRHD base  0xe0ffc000 IOMMU 1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232118] DMAR-IR: IOAPIC id 15 under DRHD base  0xd37fc000 IOMMU 0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232120] DMAR-IR: IOAPIC id 8 under DRHD base  0x9d7fc000 IOMMU 7<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232121] DMAR-IR: IOAPIC id 9 under DRHD base  0x9d7fc000 IOMMU 7<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232122] DMAR-IR: HPET id 0 under DRHD base 0x9d7fc000<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232123] DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.232124] DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    0.234147] DMAR-IR: Enabled IRQ remapping in xapic mode<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.094974] DMAR: dmar6: Using Queued invalidation<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.094983] DMAR: dmar4: Using Queued invalidation<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.094990] DMAR: dmar2: Using Queued invalidation<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.094995] DMAR: dmar1: Using Queued invalidation<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.095000] DMAR: dmar7: Using Queued invalidation<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.095043] DMAR: Setting RMRR:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.098832] DMAR: Setting identity map for device 0000:00:14.0 [0x6f362000 - 0x6f364fff]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.098838] DMAR: Setting identity map for device 0000:00:14.0 [0x6e2cd000 - 0x6e7ccfff]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.098846] DMAR: Prepare 0-16MiB unity mapping for LPC<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.102818] DMAR: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[    2.102831] DMAR: Intel(R) Virtualization Technology for Directed I/O<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">### List GPUs<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">[root@proto-gpu ~]# lspci -nn | egrep -i nvidia<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">1a:00.0 3D controller [0302]: NVIDIA Corporation GV100GL [Tesla V100 SXM2] [10de:1db1] (rev a1)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">1c:00.0 3D controller [0302]: NVIDIA Corporation GV100GL [Tesla V100 SXM2] [10de:1db1] (rev a1)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">1d:00.0 3D controller [0302]: NVIDIA Corporation GV100GL [Tesla V100 SXM2] [10de:1db1] (rev a1)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">1e:00.0 3D controller [0302]: NVIDIA Corporation GV100GL [Tesla V100 SXM2] [10de:1db1] (rev a1)<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">### Check pci configuration on nova-compute<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">[root@proto-gpu ~]# docker exec -it nova_compute cat /etc/nova/nova.conf<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">...<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[pci]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">passthrough_whitelist = { "vendor_id": "10de", "product_id": "1db1" }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">alias = { "vendor_id":"10de", "product_id":"1db1", "device_type":"type-PF", "name":"nv_v100" }<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">### Check pci configuration on nova-scheduler and nova-api<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">[root@TEST-openstack-controller ~]# docker exec -it nova_scheduler cat /etc/nova/nova.conf<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">...<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[filter_scheduler]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">enabled_filters = RetryFilter, AvailabilityZoneFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter, PciPassthroughFilter<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">available_filters = nova.scheduler.filters.all_filters<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">[root@TEST-openstack-controller ~]# docker exec -it nova_api cat /etc/nova/nova.conf<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">...<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">[pci]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">alias = { "vendor_id":"10de", "product_id":"1db1", "device_type":"type-PF", "name":"nv_v100" }<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">### Create a flavor<o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">[root@openstack-deployment ~]# openstack flavor create gpu.medium --ram 4096 --disk 40 --vcpus 2 --property "pci_passthrough:alias"="nv_v100:2"<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">### Nova scheduler logs<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">2018-11-01 22:07:20.832 32 INFO nova.filters [req-7c6bc2df-028a-4d5f-a025-1e9a677883a4 02132c31dafa4d1d939bd52e0420b975 abc29399b91d423088549d7446766573 - default default] Filtering removed all hosts for
 the request with instance ID '6fd33275-7e1f-4673-a905-1213d4eaa1b3'. Filter results: ['RetryFilter: (start: 2, end: 2)', 'AvailabilityZoneFilter: (start: 2, end: 2)', 'ComputeFilter: (start: 2, end: 2)', 'ComputeCapabilitiesFilter: (start: 2, end: 2)', 'ImagePropertiesFilter:
 (start: 2, end: 2)', 'ServerGroupAntiAffinityFilter: (start: 2, end: 2)', 'ServerGroupAffinityFilter: (start: 2, end: 2)', 'PciPassthroughFilter: (start: 2, end: 0)']<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">PciPassthroughFilter</span> is not returning any host and I am not sure why. What I am doing wrong?
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">please feel free to ask for more details as I have missed something important.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">thank you very much<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span style="color:#333333;background:white">Manuel</span></b><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div style="font-size:8pt; font-family: Arial">NOTICE</div>
<div style="font-size:8pt; font-family: Arial">Please consider the environment before printing this email. This message and any attachments are intended for the addressee named and may contain legally privileged/confidential/copyright information. If you are
 not the intended recipient, you should not read, use, disclose, copy or distribute this communication. If you have received this message in error please notify us at once by return email and then delete both messages. We accept no liability for the distribution
 of viruses or similar in electronic communications. This notice should not be removed.
</div>
</body>
</html>