IOMMU not enabled?
October 11, 2010 06:45PM
I am developing a driver and am trying to enable IOMMU on an x86_64 AMD Opteron platform and RHEL 4.6 (kernel 2.6.9-67.0.10.ELlargesmp) with memory >4GB. The IOMMU setting is enabled in the BIOS. There is no size setting so I pass "iommu=memaper=4" kernel boot option to set the size to 512M. In the kernel messages, I see:

kernel: Checking aperture...
kernel: Your BIOS doesn't leave a aperture memory hole
kernel: Please enable the IOMMU option in the BIOS setup
kernel: This costs you 512 MB of RAM
kernel: Mapping aperture over 524288 KB of RAM @ 60000000

but later in dmesg, I see:

kernel: PCI-DMA: Using software bounce buffering for IO (SWIOTLcool smiley

If IOMMU is really enabled, why would software bounce buffering be used?

We have another RHEL4.6 x86_64 Opteron host with memory >4GB which has an IOMMU size setting in the BIOS. Its dmesg shows:

kernel: PCI-DMA: Disabling AGP.
kernel: PCI-DMA: aperture base @ 80000000 size 524288 KB
kernel: PCI-DMA: Reserving 512MB of IOMMU area in the AGP aperture

There is no mention of SWIOTLB. Does it mean that this host has AGP and my first one does not? My driver DMA is failing on the first host, but not the second. Could this be the reason? Thanks!

Your Email:


Spam prevention:
Please, solve the mathematical question and enter the answer in the input field below. This is for blocking bots that try to post this form automatically.
Question: how much is 20 plus 19?