semantic: 0.192 device: 0.133 other: 0.104 KVM: 0.082 files: 0.073 PID: 0.068 performance: 0.055 permissions: 0.055 graphic: 0.054 debug: 0.050 socket: 0.039 vnc: 0.037 network: 0.035 boot: 0.022 KVM: 0.573 debug: 0.229 files: 0.036 device: 0.029 PID: 0.028 semantic: 0.025 other: 0.023 socket: 0.014 performance: 0.010 boot: 0.009 network: 0.007 graphic: 0.007 permissions: 0.006 vnc: 0.005 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.