[vfio-users] QEMU / KVM VFIO ("no signal" message)

Leonardo Caldas leonardo.caldas at xleox.org
Tue Nov 3 18:20:26 UTC 2015


Hi everyone,

This is my very first message to this list. I've been trying to run
QEMU/KVM with VFIO withuot success... In fact, everything I got so far was
a "no signal" message in my monitor.

I'm copying a message I sent twoo weeks ago to another forum, and I hope
someone may lead the right way.

This is my hardware:

Motherboard: Gigabyte GA-B75M-D3H
CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
Primary VGA: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor
Graphics Controller (i915)
Secondary (passed through) VGA: GTX 680
Monitor: BenQ XL2420T

I'm using Arch Linux.

My kernel: 4.2.5-1-ARCH
QEMU version: QEMU emulator version 2.4.0.1, Copyright (c) 2003-2008
Fabrice Bellard

cat /proc/cmdline
vmlinuz-linux dart=0 darkwake=0 kext-dev-mode=1 nvda_drv=1
root=UUID=163f32ba-fc90-456a-b9ef-853b98cdd39d
resume=UUID=a819ecdf-ed99-464d-bd8e-329da2183854 rw add_efi_memmap
intel_iommu=on initrd=/initramfs-linux.img

IOMMU Groups
find /sys/kernel/iommu_groups/ -type l
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
/sys/kernel/iommu_groups/4/devices/0000:00:16.0
/sys/kernel/iommu_groups/5/devices/0000:00:1a.0
/sys/kernel/iommu_groups/6/devices/0000:00:1b.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.0
/sys/kernel/iommu_groups/8/devices/0000:00:1c.4
/sys/kernel/iommu_groups/9/devices/0000:00:1d.0
/sys/kernel/iommu_groups/10/devices/0000:00:1e.0
/sys/kernel/iommu_groups/11/devices/0000:00:1f.0
/sys/kernel/iommu_groups/11/devices/0000:00:1f.2
/sys/kernel/iommu_groups/11/devices/0000:00:1f.3
/sys/kernel/iommu_groups/12/devices/0000:03:00.0


dmesg|grep -e DMAR -e IOMMU
[    0.000000] ACPI: DMAR 0x00000000C5D42850 0000B8 (v01 INTEL  SNB
  00000001 INTL 00000001)
[    0.000000] DMAR: IOMMU enabled
[    0.024287] DMAR: Host address width 36
[    0.024289] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.024296] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap
c0000020e60262 ecap f0101a
[    0.024297] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.024300] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap
c9008020660262 ecap f0105a
[    0.024301] DMAR: RMRR base: 0x000000c5bc3000 end: 0x000000c5bcffff
[    0.024302] DMAR: RMRR base: 0x000000c7800000 end: 0x000000cf9fffff
[    0.024304] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.024304] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.024305] DMAR-IR: Queued invalidation will be enabled to support
x2apic and Intr-remapping.
[    0.024533] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.284348] DMAR: No ATSR found
[    0.284417] DMAR: dmar0: Using Queued invalidation
[    0.284771] DMAR: dmar1: Using Queued invalidation
[    0.284777] DMAR: Setting RMRR:
[    0.284786] DMAR: Setting identity map for device 0000:00:02.0
[0xc7800000 - 0xcf9fffff]
[    0.285324] DMAR: Setting identity map for device 0000:00:14.0
[0xc5bc3000 - 0xc5bcffff]
[    0.285339] DMAR: Setting identity map for device 0000:00:1a.0
[0xc5bc3000 - 0xc5bcffff]
[    0.285352] DMAR: Setting identity map for device 0000:00:1d.0
[0xc5bc3000 - 0xc5bcffff]
[    0.285360] DMAR: Prepare 0-16MiB unity mapping for LPC
[    0.285365] DMAR: Setting identity map for device 0000:00:1f.0 [0x0
- 0xffffff]
[    0.285686] DMAR: Intel(R) Virtualization Technology for Directed I/O
[    0.345658] [drm] DMAR active, disabling use of stolen memory
[    4.436520] vboxpci: IOMMU found

My /etc/mkinitcpio.conf

MODULES="i915 vfio vfio_iommu_type1 vfio_pci vfio_virqfd"

lsmod | grep vfio
vfio_pci               32768  0
vfio_virqfd            16384  1 vfio_pci
vfio_iommu_type1       20480  0
vfio                   24576  2 vfio_iommu_type1,vfio_pci

Here goes the most significant part of a lspci command

00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v2/3rd Gen
Core processor DRAM Controller [8086:0150] (rev 09)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104
[GeForce GTX 680] [10de:1180] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio
Controller [10de:0e0a] (rev a1)

01:00.0 0300: 10de:1180 (rev a1)
        Subsystem: 1458:353c
        Kernel driver in use: vfio-pci
        Kernel modules: nouveau
01:00.1 0403: 10de:0e0a (rev a1)
        Subsystem: 1458:353c
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel


cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:1180,10de:0e0a


Before running KVM:
dmesg | grep -i vfio
[    0.571102] VFIO - User Level meta-driver version: 0.3
[    0.583832] vfio_pci: add [10de:1180[ffff:ffff]] class 0x000000/00000000
[    0.597174] vfio_pci: add [10de:0e0a[ffff:ffff]] class 0x000000/00000000

After running KVM:

dmesg | grep vfio
[    0.583832] vfio_pci: add [10de:1180[ffff:ffff]] class 0x000000/00000000
[    0.597174] vfio_pci: add [10de:0e0a[ffff:ffff]] class 0x000000/00000000
[ 3182.192258] vfio-pci 0000:01:00.0: enabling device (0000 -> 0003)
[ 3182.192386] vfio_ecap_init: 0000:01:00.0 hiding ecap 0x19 at 0x900


dmesg | grep vgaarb
[    0.186604] vgaarb: setting as boot device: PCI:0000:00:02.0
[    0.186605] vgaarb: device added:
PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.186608] vgaarb: device added:
PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[    0.186609] vgaarb: loaded
[    0.186610] vgaarb: bridge control possible 0000:01:00.0
[    0.186610] vgaarb: no bridge control possible 0000:00:02.0
[    0.345717] vgaarb: device changed decodes:
PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[    0.572405] vgaarb: device changed decodes:
PCI:0000:01:00.0,olddecodes=io+mem,decodes=io+mem:owns=none
[   13.193732] vgaarb: device changed decodes:
PCI:0000:01:00.0,olddecodes=io+mem,decodes=io+mem:owns=none
[   13.206373] vgaarb: device changed decodes:
PCI:0000:01:00.0,olddecodes=io+mem,decodes=io+mem:owns=none
[ 2319.146020] vgaarb: device changed decodes:
PCI:0000:01:00.0,olddecodes=io+mem,decodes=io+mem:owns=none
[ 2319.159069] vgaarb: device changed decodes:
PCI:0000:01:00.0,olddecodes=io+mem,decodes=io+mem:owns=none

I've already blacklisted the "nouveau" driver, and I've also tried the
following:

modprobe -r kvm_intel
modprobe kvm_intel emulate_invalid_guest_state=0

I've also tried this parameter on the bootloader: i915.enable_hd_vgaarb=1

As I told, once I run kvm (command line provided below, althouh I've
tried another variations of this) all I get is a small black screen. I
have only one monitor with multiple inputs. What I'm trying to do is
switch from one input (DVI from the integrated Intel card) to the
other one (GTX 680 passed through using HDMI). The thing is there's no
signal on the HDMI input...


sudo qemu-system-x86_64 \
  -enable-kvm \
  -m 8192 \
  -vga none \
  -cpu host,kvm=off \
  -smp 4,sockets=1,cores=4,threads=8 \
  -device vfio-pci,host=01:00.0,multifunction=on \
  -device vfio-pci,host=01:00.1 \
  -drive if=pflash,format=raw,readonly,file=/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd
\
  -drive if=pflash,format=raw,file=/tmp/my_vars.fd

I sincerely don't know what else I could try in order to make my setup
work... Any indication would be pretty much appreciated.

I hope I've provided enough information.



-- 
Atenciosamente,

Leonardo Caldas
leonardo.caldas at xleox.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20151103/663f85ea/attachment.htm>


More information about the vfio-users mailing list