| Bug ID | 1642 |
|---|---|
| Summary | Devices bound to igb_uio with VT-d enabled do not work on Linux kernel 3.15-3.17 |
| Product | DPDK |
| Version | unspecified |
| Hardware | All |
| OS | All |
| Status | UNCONFIRMED |
| Severity | normal |
| Priority | Normal |
| Component | vhost/virtio |
| Assignee | dev@dpdk.org |
| Reporter | nandinipersad361@gmail.com |
| Target Milestone | --- |
When VT-d is enabled (iommu=pt intel_iommu=on), devices are 1:1 mapped. In the Linux kernel unbinding devices from drivers removes that mapping which result in IOMMU errors. Introduced in Linux kernel 3.15 commit, solved in Linux kernel 3.18 commit. Implication: Devices will not be allowed to access memory, resulting in following kernel errors: dmar: DRHD: handling fault status reg 2 dmar: DMAR:[DMA Read] Request device [02:00.0] fault addr a0c58000 DMAR:[fault reason 02] Present bit in context entry is clear Resolution/Workaround: Use earlier or later kernel versions, or avoid driver binding on boot by blacklisting the driver modules. I.e., in the case of ixgbe, we can pass the kernel command line option: modprobe.blacklist=ixgbe. This way we do not need to unbind the device to bind it to igb_uio. Affected Environment/Platform: Linux systems with kernel versions 3.15 to 3.17. Driver/Module: igb_uio module.