[vfio-users] Initialization problem with pass-through video card
Sheldon Palmer
slf_palmer at hotmail.com
Fri May 6 18:07:23 UTC 2016
Ok so even though I have gone through Alex’s “step by step” (http://vfio.blogspot.com/)
several times over, I think I am still missing something because each time I get
the same result. That is: my pass-through video card doesn’t get initialized when
I actually add it and boot the VM. There is just a quick flicker then a black
screen. In fact, I don’t even think the OS boots because I can’t connect to it via
VNC nor TeamViewer. The VM boots okay if I remove the video card.
Specs:
Processor: Intel Core i7-3770 Quad Core
Host: Intel onboard video card with i915 driver / Gentoo
Pass-through: ASUS GeForce GTX 980Ti STRIX / Windows 8.1 Pro
qemu-2.5.1 / libvirt-1.3.1 / virt-manager-1.3.2 / kernel: linux-4.1.15
Now I think I am a bit confused as it relates to what is actually needed
these days for a set-up with the i915 driver being used on the host side. If I understand
correctly, the patch is no longer needed if OVMF is being used correct?
In addition, I noticed that I’m getting some DMA Write messages but I thought
adding “vfio_iommu_type1.allow_unsafe_interrupts=1“ to modprobe.d would address
it. Anyways, what am I overlooking here guys? Thanks is advance.
Additional Info:# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.1.15-gentoo-r1 root=UUID=b8357358-a71d-4250-83e5-5505e8ad5eba ro linux intel_iommu=on
IOMMU group 1
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port [8086:0151] (rev 09)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM200 [GeForce GTX 980 Ti] [10de:17c8] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fb0] (rev a1)
# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:0151,10de:17c8,10de:0fb0
options vfio-pci disable_vga=1
# cat /etc/modprobe.d/kvm.conf
# if vfio-pci was built as a module ( default on arch & ubuntu )
options vfio_iommu_type1 allow_unsafe_interrupts=1
# Some applications like Passmark Performance Test and SiSoftware Sandra crash the VM without this:
options kvm ignore_msrs=1
# dmesg | grep -i vfio
[ 3.895580] VFIO - User Level meta-driver version: 0.3
[ 3.920197] vfio_pci: add [8086:0151[ffff:ffff]] class 0x000000/00000000
[ 3.930899] vfio_pci: add [10de:17c8[ffff:ffff]] class 0x000000/00000000
[ 3.941936] vfio_pci: add [10de:0fb0[ffff:ffff]] class 0x000000/00000000
[ 422.613903] vfio_ecap_init: 0000:01:00.0 hiding ecap 0x1e at 0x258
[ 422.613919] vfio_ecap_init: 0000:01:00.0 hiding ecap 0x19 at 0x900
[ 1953.837834] vfio_ecap_init: 0000:01:00.0 hiding ecap 0x1e at 0x258
[ 1953.837843] vfio_ecap_init: 0000:01:00.0 hiding ecap 0x19 at 0x900
# dmesg -T | grep -e DMAR -e IOMMU -e hardware
[Thu May 5 21:40:04 2016] ACPI: DMAR 0x00000000C8972760 0000B8 (v01 INTEL SNB 00000001 INTL 00000001)
[Thu May 5 21:40:04 2016] Intel-IOMMU: enabled
[Thu May 5 21:40:04 2016] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020e60262 ecap f0101a
[Thu May 5 21:40:04 2016] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap c9008020660262 ecap f0105a
[Thu May 5 21:40:04 2016] DMAR: No ATSR found
[Thu May 5 21:40:04 2016] IOMMU: dmar0 using Queued invalidation
[Thu May 5 21:40:04 2016] IOMMU: dmar1 using Queued invalidation
[Thu May 5 21:40:04 2016] IOMMU: Setting RMRR:
[Thu May 5 21:40:04 2016] IOMMU: Setting identity map for device 0000:00:02.0 [0xcb000000 - 0xcf1fffff]
[Thu May 5 21:40:04 2016] IOMMU: Setting identity map for device 0000:00:14.0 [0xc88e5000 - 0xc88f6fff]
[Thu May 5 21:40:04 2016] IOMMU: Setting identity map for device 0000:00:1a.0 [0xc88e5000 - 0xc88f6fff]
[Thu May 5 21:40:04 2016] IOMMU: Setting identity map for device 0000:00:1d.0 [0xc88e5000 - 0xc88f6fff]
[Thu May 5 21:40:04 2016] IOMMU: Prepare 0-16MiB unity mapping for LPC
[Thu May 5 21:40:04 2016] IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[Thu May 5 21:40:04 2016] [drm] DMAR active, disabling use of stolen memory
[Thu May 5 21:40:05 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:37 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:37 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:37 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:37 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:38 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:38 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:38 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:38 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:38 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:38 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:40 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:40 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
[Thu May 5 21:40:41 2016] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 29ff005000
DMAR:[fault reason 05] PTE Write access is not set
MY XML:
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>win8.1-pro</name>
<uuid>39f1e987-667c-43ff-8641-e10f017d370c</uuid>
<memory unit='KiB'>6291456</memory>
<currentMemory unit='KiB'>6291456</currentMemory>
<vcpu placement='static'>4</vcpu>
<cputune>
<vcpupin vcpu='0' cpuset='2'/>
<vcpupin vcpu='1' cpuset='3'/>
<vcpupin vcpu='2' cpuset='6'/>
<vcpupin vcpu='3' cpuset='7'/>
</cputune>
<os>
<type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/win8.1-pro_VARS.fd</nvram>
<bootmenu enable='yes'/>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state='off'/>
<vapic state='off'/>
<spinlocks state='off'/>
</hyperv>
<kvm>
<hidden state='on'/>
</kvm>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'>
<topology sockets='1' cores='2' threads='2'/>
</cpu>
<clock offset='localtime'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/mnt/new_root/home/sheldon/VMs/win8.1-pro'/>
<target dev='vda' bus='virtio'/>
<boot order='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
<controller type='usb' index='0' model='ich9-ehci1'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x7'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci1'>
<master startport='0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci2'>
<master startport='2'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci3'>
<master startport='4'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'/>
<interface type='direct'>
<mac address='52:54:00:7e:e3:8a'/>
<source dev='enp3s0' mode='bridge'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</hostdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</memballoon>
</devices>
<qemu:commandline>
<qemu:arg value='-drive'/>
<qemu:arg value='if=pflash,format=raw,readonly,file=/usr/share/edk2.git/ovmf-x64/OVMF-pure-efi.fd'/>
</qemu:commandline>
</domain>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160506/234e47fe/attachment.htm>
More information about the vfio-users
mailing list