Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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 (SWIOTLB)
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 is failing DMA on the first host, but not the second. Could this be the reason? Thanks!
First does the chipset support IOMMU some of the processors do but the chipsets they are built on don't. Seconf I had a similar issue setting up XEN recently I had to explicitly tell the kernel to turn on IOMMU despite it being active in the BIOS. I think it is something like IOMMU=1 As far as having access to the RAM if you are using virtualization extensions like IOMMU then it is is not workign and you are developing in a virtualized environment you could likely encoutner hardware communication issues especially with something like Direct Memory Access.
I would interpret the documentation that way for that chipset, meaning no AGP, no IOMMU. if you try IOMMU=Verbose and check DMESG looking for IOMMU what do you see?
Being NON-Technical am wondering why given so many searches and posts on this, why not, or where, exists a list of chipsets and processors which DO/NOT support IOMMU so we can ensure intended/possessed combinations do/not support.
Steve Apiki's article of "8/9/2006" explained a bit, are processors/chipsets/motherboards newer than fixed for this ?
Because IOMMU is a feature like 64-bit it is implemented first on newer high end chips, even now not all chips don't support x64. It's a feature when you are looking to buy equipment you see if the feature is available on what you want to buy.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.