https://bugzilla.kernel.org/show_bug.cgi?id=107921

            Bug ID: 107921
           Summary: Regression with KVM virtual machine using VFIO for PCI
                    passthrough.
           Product: Virtualization
           Version: unspecified
    Kernel Version: 4.2
          Hardware: x86-64
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: high
          Priority: P1
         Component: kvm
          Assignee: virtualization_...@kernel-bugs.osdl.org
          Reporter: tajj...@gmail.com
        Regression: No

KVM-based virtual machine using host PCIe devices via VFIO hangs in kernels 4.2
and later. Works correctly (guest boots and is fully usable) in 4.1.x kernels.
The hang happens soon after the virtual machine is started: during the
TianoCore firmware boot splash, before the guest OS even starts booting.

I have a KVM virtual machine which uses three of my host PCIe devices via VFIO:
my graphics card, its audio component, and an XHCI USB controller.

The virtual machine works flawlessly with the 4.1.x kernel series. However,
when I upgraded to 4.2, the virtual machine started to hang during boot,
becoming unusable.

I tried removing various combinations of VFIO PCI devices from my virtual
machine configuration (only passing through the XHCI controller, only the
graphics card, etc), and the problem persisted, so I know it is not caused by
any one particular device I am trying to pass through.

The guest OS in the virtual machine is Windows 10, but that should not make any
difference with regards to this bug, as the hang happens earlier during the VM
startup (before Windows even starts booting).

I am using pure UEFI firmware (no CSM) on both the host and the guest, so there
is no VGA involved anywhere, and the graphics card is passed through as a
regular PCIe device.

I am using Gentoo Linux, and have tried this on kernels 4.1.13, 4.2.6, and
4.3.0 built from mainline sources. 4.1.13 is the only one of the above versions
which works correctly. I created this virtual machine back when I was using an
earlier 4.1.x revision, and it worked there, too. I initially noticed this
issue with 4.2.0 back when it was first released (which is why I stayed back
with 4.1.x), and I am sorry for not reporting it earlier.

Relevant hardware on my system:
- Intel i7 Extreme 5960X CPU
- ASRock X99M Extreme4 motherboard
- 32GB DDR4 2666MHz RAM
- NVIDIA GeForce GTX 980 graphics card (that I am passing through to the VM)
- AMD Radeon r7 250 (for graphics on the host)
- Generic USB3 (XHCI) PCIe expansion card (based on VIA hardware according to
`lspci`)

I have attached: 1) kernel configs for each kernel version above, 2) `lspci
-vv` output, 3) my libvirt virtual machine configuration, 4) `dmesg` output
from each kernel version, taken after attempting to start the virtual machine
straight after booting the system.

My kernel commandline (same on each kernel version tried):
"resume=/dev/nvme0n1 resume_offset=6681926 rw root=/dev/nvme0n1 rootfstype=f2fs
intel_iommu=on iommu=pt vfio-pci.ids=10de:13c0,10de:0fbb,1106:3483
vfio-pci.disable_vga=1 kvm.ignore_msrs=1 hugepages=6000"

I am booting my kernel with EFISTUB; no separate bootloader present.

My QEMU version is 2.4.1, and my libvirt version is 1.2.21.

This is my first kernel bug report, so please let me know if there is any
additional information I should provide to help diagnose/resolve the issue.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to