[vfio-users] VIFO in Intel Graphics Not working

Chris kaspro at web.de
Tue May 8 19:21:29 UTC 2018


Hi together,
I have the following issue: 

I'm unable to forward guest graphics adapter configured in libvirtd to the host graphics adapter via vfio.

Hardware: Skylake Celeron CPU G3900 on Fujitsu D3471-B11 Mainboard, integrated Intel® HD Graphics 510.
OS: Fedora 28, latest updates, libvirt 4.1.0, qemu 2.11.1-2.fc28


How reproducible / Steps to Reproduce:

1. Block i915 and other drivers from loading, force vfio drivers to load:
# cat /etc/modules-load.d/vfio.conf
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:1902
options vfio-pci disable_vga=1

# cat /etc/modprobe.d/blacklist.conf
blacklist i915

# dracut -f /boot/initramfs-4.16.5-300.fc28.x86_64.img 4.16.5-300.fc28.x86_64
# reboot
# dmesg | grep -e DMAR -e IOMMU
Kernel command line: BOOT_IMAGE=/vmlinuz-4.16.5-300.fc28.x86_64 root=/dev/mapper/fedora-root00 ro rd.lvm.lv=fedora/root00 rd.lvm.lv=fedora/swap rhgb quiet LANG=en_US.UTF-8 intel_iommu=on rd.driver.pre=vfio-pci bochs_drm.fbdev=off video=efifb:off,vesa:off,vesafb:off vga=normal iommu=no-igfx

[ 0.000000] ACPI: DMAR 0x00000000A6679ED8 0000C8 (v01 INTEL SKL 00000001 INTL 00000001)
[ 0.000000] DMAR: IOMMU enabled 
[ 0.001000] DMAR: Host address width 39
[ 0.001000] DMAR: DRHD base: 0x000000fed90000 flags: 0x0 
[ 0.001000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 7e3ff0505e
[ 0.001000] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[ 0.001000] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[ 0.001000] DMAR: RMRR base: 0x000000a6404000 end: 0x000000a6423fff
[ 0.001000] DMAR: RMRR base: 0x000000adb9e000 end: 0x000000adde7fff
[ 0.001000] DMAR: RMRR base: 0x000000af000000 end: 0x000000cf7fffff
[ 0.001000] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1
[ 0.001000] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[ 0.001000] DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
[ 0.001000] DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting.
[ 0.002000] DMAR-IR: Enabled IRQ remapping in xapic mode
[ 0.357713] DMAR: No ATSR found [ 0.357755] DMAR: dmar0: Using Queued invalidation
[ 0.357757] DMAR: dmar1: Using Queued invalidation
[ 0.357872] DMAR: Setting RMRR:
[ 0.357901] DMAR: Setting identity map for device 0000:00:02.0 [0xaf000000 - 0xcf7fffff]
[ 0.357927] DMAR: Setting identity map for device 0000:00:14.0 [0xadb9e000 - 0xadde7fff]
[ 0.357936] DMAR: Setting identity map for device 0000:00:14.0 [0xa6404000 - 0xa6423fff]
[ 0.357938] DMAR: Prepare 0-16MiB unity mapping for LPC
[ 0.357955] DMAR: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[ 0.357963] DMAR: Intel(R) Virtualization Technology for Directed I/O
...
...
[ 1.113517] VFIO - User Level meta-driver version: 0.3
[ 1.140028] vfio-pci 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 1.152032] vfio_pci: add [8086:1902[ffff:ffff]] class 0x000000/00000000
... 

2.: Host boots with graphics adapter stalled after grub, as it should. Configuring a guest with a legacy BIOS:
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
...
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</hostdev>
...
</devices>
<qemu:commandline>
<qemu:arg value='-nographic'/>
<qemu:arg value='-nodefaults'/> 
</qemu:commandline> 
...

starts up with practically no errors, but no signal output.
Logs:
...
vfio-pci 0000:00:02.0: enabling device (0400 -> 0403) ...
vfio_ecap_init: 0000:00:02.0 hiding ecap 0x1b at 0x100 
...

3.: Configuring a guest with UEFI BIOS, 440FX Chipset gives (and thousands of these... not just some): 
[ 3419.435439] DMAR: DRHD: handling fault status reg 2 
[ 3419.435446] DMAR: [DMA Write] Request device [00:02.0] fault addr 0 [fault reason 02] Present bit in context entry is clear 
[ 3419.436683] DMAR: DRHD: handling fault status reg 3 
[ 3419.436691] DMAR: [DMA Read] Request device [00:02.0] fault addr afa40000 [fault reason 06] PTE Read access is not set 
[ 3419.438069] DMAR: DRHD: handling fault status reg 3 
[ 3419.438076] DMAR: [DMA Read] Request device [00:02.0] fault addr afa40000 [fault reason 06] PTE Read access is not set 
[ 3419.439473] DMAR: DRHD: handling fault status reg 3 
[ 3419.439480] DMAR: [DMA Read] Request device [00:02.0] fault addr afa6e000 [fault reason 06] PTE Read access is not set 
[ 3419.440872] DMAR: DRHD: handling fault status reg 3 
[ 3419.440879] DMAR: [DMA Read] Request device [00:02.0] fault addr afaa6000 [fault reason 06] PTE Read access is not set

...and a washed out/scrambled output on the digital output (like the actual startup of the guest, but unreadable and with lines all over the screen. 

Actual results:
No correct signal on digital output, scrambled or blank.

Expected results: 
Digital output to show guest graphics. 

Additional info: 
Also tried with iommu= "pt" and "on".


Thanks in Advance for any help,
Regards Chris
-- 
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20180508/ee1111ea/attachment.htm>


More information about the vfio-users mailing list