KVM/VFIO passthrough not working when TRIM_UNUSED_KSYMS is enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

It's a bit unclear what subsystem is to blame for this problem, so I'm sending this to both KVM, VFIO and Module support.

The problem is that trimming unused symbols in the kernel breaks VFIO passthrough on x86/amd64 at least. If the option TRIM_UNUSED_KSYMS is enabled you will see the following error when trying to start a VM in QEmu with any pcie device passed via VFIO:

qemu-system-x86_64: -device vfio-pci,host=04:00.0: Failed to add group 25 to KVM VFIO device: Invalid argument

The error will not stop the VM from launching, but it will break things in mysterious ways when e.g. installing graphics drivers. No external modules is involved in this, so I would guess that there is some dependency that the trimming is missing in some way.

With the introduction of UNUSED_KSYMS_WHITELIST in the latest kernels, and some talk about making trimming symbols the default in the future, it would be great if we could get this fixed or at least identify the problematic symbols so that they could be whitelisted if needed.

Steps to reproduce:

1 - Have a kernel where TRIM_UNUSED_KSYMS is enabled
2 - Start a VM in QEmu/KVM with a pcie device passed through via vfio-pci

This is a common issue that keeps popping up on user forums related to vfio passthrough, so it should be fairly simple to reproduce.

Let me know if you want more details or perhaps my kernel config or trimmed system map to test with.

Best regards,
Gunnar




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux