KVM: 0.945 semantic: 0.944 device: 0.931 graphic: 0.928 performance: 0.907 other: 0.887 debug: 0.879 PID: 0.874 files: 0.871 permissions: 0.869 network: 0.858 socket: 0.815 vnc: 0.787 boot: 0.691 vfio passtrhough fails at 'No available IOMMU models' on Intel BDW-EP platform Environment: ------------ Host OS (ia32/ia32e/IA64): ia32e Guest OS (ia32/ia32e/IA64): ia32e Guest OS Type (Linux/Windows): linux kvm.git Commit: da3f7ca3 qemu.git Commit: 38a762fe Host Kernel Version: 4.4.0-rc2 Hardware: BDW EP (Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz, Grantley-EP) Bug description: -------------------------- when create guest with vt-d assignment using vfio-pci driver, the guest can not be created. Warning 'No available IOMMU models' Reproduce steps: ---------------- 1. bind device to vfio-pci driver 2. qemu-system-x86_64 -enable-kvm -m 512 -smp 2 -device vfio-pci,host=81:00.0 -net none -drive file=rhel7u2.qcow2,if=none,id=virtio-disk0 -device virtio-blk-pci,drive=virtio-disk0 Current result: ---------------- qemu-system-x86_64: -device vfio-pci,host=81:00.0: vfio: No available IOMMU models qemu-system-x86_64: -device vfio-pci,host=81:00.0: vfio: failed to setup container for group 41 qemu-system-x86_64: -device vfio-pci,host=81:00.0: vfio: failed to get group 41 qemu-system-x86_64: -device vfio-pci,host=81:00.0: Device initialization failed Expected result: ---------------- guest can be created Basic root-causing log: ----------------------  You've somehow managed to not load the vfio_iommu_type1 module. The vfio module will request it when loading, if the module is not available when loading, such as from an initramfs that does not include the full set of vfio modules, it will need to be loaded later manually. You're right. After I manually load vfio_iommu_type1, the error is gone.