My system will refuse to boot when I have enabled the hardware IOMMU and a disc is inserted in the CD drive. The kernel will just loop error messages starting with AMD-Vi: Event logged [IO_PAGE_FAULT device=...]

The only solution, it seems, is to not use the optical drive at all or boot with the kernel parameter iommu=soft.

Unfortunately, I have not been able to find out, what this parameter exactly does. There is a documentation on kernel.org, which includes all IOMMU options, but it doesn't really explain the changes in functionality: AMD64 specific boot options

The way I understand it, iommu=soft bypasses the hardware IOMMU or disables it and uses a software implementation. Is that correct? Should I disable the hardware IOMMU in the BIOS or keep it enabled? Are there any other options in this case, possibly?

  • iommu=soft : Use software bounce buffering (SWIOTLB) (default for Intel machines). This can be used to prevent the usage of an available hardware IOMMU.Source
    – Wiffzack
    Commented Jan 22, 2017 at 15:14
  • Hi Wiffzack, I read this in the linked documentation, but I still do not fully understand it. Is this mode fully implemented on the software-side? Is the hardware IOMMU bypassed completely by it or does it still fulfil some purpose in its functionality? Should I disable or enable it in BIOS while using this mode? I wasn't able to find answers to these (in my opinion rather essential) questions, yet. Commented Jan 22, 2017 at 18:27
  • (Warning Low information content!)SWIOTLB or iommu=soft seems to be fully software-implemented(except some Problems with Nvidia). SWIOTLB is wasteful in CPU operations and memory, but is the only way some adapters can access all memory on systems without an IOMMU. It should not be necessary to disable anything in the bios i suppose. [Source ](pdfs.semanticscholar.org/60f1/…)
    – Wiffzack
    Commented Jan 22, 2017 at 19:14

1 Answer 1


Here I find a clearer, but simple explanation: IOMMU SWIOTLB

As told in the article:

SWIOTLB bypasses the IOMMU and allows for a much more configurable memory management interface. Without going into the deep complexity of how this works, page tables are cached in the Lookaside Buffer reducing the need to constantly access physical RAM to map memory. This technology is also referred to as a bounce buffer as the physical address of the memory map is held in this virtual space of and I/O is bounced between the physical I/O and the Physical memory by this virtual lookaside buffer.

This allows the memory mapping to be carried out quickly and have a physical memory space available for use much faster than if it had to be created physically in RAM and presented to the system as usable.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .