One kernel configuration
According to the book on the configuration of the kernel, the BIOS also started the IOMMU, but no matter how to get all appear "qemu-system-x86_64 no IOMMU found. Unable to assign device "error.
This is because the latest kernel, it is recommended to abolish the kvm_assign mechanism, only support Vfio, if you still use the old KVM assign, then you need to manually modify the. config file "kvm_device_assignment=y" in order to use the KVM Assgin. Note that for VIM to be manually modified, make Menuconfig has no inside
Look at the code, ASSIGNED-DEV.C is the implementation of Kvm_assgin, only select config_kvm_device_assignment to compile it
Arch/x86/kvm/makefile:
kvm-$ (config_kvm_device_assignment) + = ASSIGNED-DEV.O IOMMU.O
Here is an article on how to use the kvm-pci-assign mechanism
Http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM
Reference links
Http://www.spinics.net/lists/kvm/msg120779.html
http://nanxiao.me/en/why-does-qemu-complain-no-iommu-found/
Second, qemu issues
Using the same kvm-assgin, there are also problems with the latest QEMU.
"Qemu-system-x86_64:pci_get_msi_message:unknown Interrupt Type"
This is the same vfio problem.
If you want to use Kvm-pci-assgin, then use 2.6.0 's previous qemu.
Reference links
Http://qemu.11.n7.nabble.com/PATCH-v9-00-25-IOMMU-Enable-interrupt-remapping-for-Intel-IOMMU-td412217.html
There's another place to download a lot of useful scripts for KVM
Https://github.com/smilejay/kvm-book.git