LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices


Reply
  Search this Thread
Old 01-06-2011, 09:47 PM   #46
torsionbar
LQ Newbie
 
Registered: Jan 2011
Posts: 3

Rep: Reputation: 1

the date on this thread is old, but it is still one of the top hits when googling for this error message.

I have an IOMMU bios option on my Tyan S2882 system board. The manual says this option is specifically for Linux, and allows the kernel to perform I/O mapping between 32 bit and 64 bit addresses. Also, this Tyan S2882 does not have AGP.

Some additional reading on AMD's implementation of IOMMU for Linux:

http://developer.amd.com/documentati...892006101.aspx

I turned on the IOMMU bios option, and this kernel error message went away.

Last edited by torsionbar; 01-06-2011 at 10:09 PM.
 
1 members found this post helpful.
Old 01-07-2011, 12:38 PM   #47
H_TeXMeX_H
LQ Guru
 
Registered: Oct 2005
Location: $RANDOM
Distribution: slackware64
Posts: 12,928
Blog Entries: 2

Rep: Reputation: 1288Reputation: 1288Reputation: 1288Reputation: 1288Reputation: 1288Reputation: 1288Reputation: 1288Reputation: 1288Reputation: 1288
Thanks for the answer, I'm glad that changing the BIOS options works ... like I said in the third post and was later criticized for it.
 
Old 07-12-2011, 06:35 AM   #48
JZL240I-U
Senior Member
 
Registered: Apr 2003
Location: Germany
Distribution: openSuSE 42.1_64+Tumbleweed-KDE, Mint 17.3+18.3
Posts: 4,126

Rep: Reputation: Disabled
Just to keep the subject up to date: On my Gigabyte GA-890GPA-UD3H (PCIe, no AGP) with kernel 2.6.29.2 (openSuSE) the error / warning still persists.

Google led me here, but there are newer posts in the net meanwhile. In short, the problem is not solved on the kernel side.
 
Old 07-13-2011, 07:41 AM   #49
JZL240I-U
Senior Member
 
Registered: Apr 2003
Location: Germany
Distribution: openSuSE 42.1_64+Tumbleweed-KDE, Mint 17.3+18.3
Posts: 4,126

Rep: Reputation: Disabled
Further digging in /var/log/boot.msg revealed this:
Code:
...
<6>[    0.000000] Checking aperture...
<6>[    0.000000] No AGP bridge found
<6>[    0.000000] Node 0: aperture @ a0000000 size 32 MB
<6>[    0.000000] Aperture pointing to e820 RAM. Ignoring.
<6>[    0.000000] Your BIOS doesn't leave a aperture memory hole
<6>[    0.000000] Please enable the IOMMU option in the BIOS setup
<6>[    0.000000] This costs you 64 MB of RAM
<6>[    0.000000] Mapping aperture over 65536 KB of RAM @ a0000000
<6>[    0.000000] PM: Registered nosave memory: 00000000a0000000 - 00000000a4000000
...
<6>[    0.731050] PCI-DMA: Disabling AGP.
<6>[    0.731166] PCI-DMA: aperture base @ a0000000 size 65536 KB
<6>[    0.731168] PCI-DMA: using GART IOMMU.
<6>[    0.731170] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture
...
If this is what I think it is, all is well...

P.S.: kernel boot parameter "iommu=noapg" switched off the integrated Radeon HD 4290, "iommu=soft" halted the integrated Radeon HD 4290, "iommu=memaper=2" doubled the reserved window size without other changes...
 
Old 12-06-2011, 09:35 PM   #50
dbjh
LQ Newbie
 
Registered: Aug 2006
Distribution: Fedora 16
Posts: 3

Rep: Reputation: 1
I get the impression people are too focussed on getting rid of a warning message while not fully understanding the implications. I know *I* was too focussed on getting rid of that warning message :-) I am using a system (ASUS M5A87) with an AMD Phenom II X4 955, AMD Radeon HD 6570 (PCIe) and 4GB of memory. I am currently using Fedora 16, but the effect of iommu=noaperture is the same on Fedora 15.

While using iommu=noaperture ("ask the IOMMU not to touch the aperture for AGP") makes the following section of the kernel messages go from:
Code:
Dec  7 01:55:49 Odin kernel: [    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
Dec  7 01:55:49 Odin kernel: [    0.000000] Checking aperture...
Dec  7 01:55:49 Odin kernel: [    0.000000] No AGP bridge found
Dec  7 01:55:49 Odin kernel: [    0.000000] Node 0: aperture @ 0 size 32 MB
Dec  7 01:55:49 Odin kernel: [    0.000000] Your BIOS doesn't leave a aperture memory hole
Dec  7 01:55:49 Odin kernel: [    0.000000] Please enable the IOMMU option in the BIOS setup
Dec  7 01:55:49 Odin kernel: [    0.000000] This costs you 64 MB of RAM
Dec  7 01:55:49 Odin kernel: [    0.000000] Mapping aperture over 65536 KB of RAM @ c4000000
Dec  7 01:55:49 Odin kernel: [    0.000000] PM: Registered nosave memory: 00000000c4000000 - 00000000c8000000
Dec  7 01:55:49 Odin kernel: [    0.000000] Memory: 3964892k/4980736k available (4873k kernel code, 787416k absent, 228428k reserved, 6776k data, 944k init)
to:
Code:
Dec  7 02:06:32 Odin kernel: [    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
Dec  7 02:06:32 Odin kernel: [    0.000000] Memory: 4030428k/4980736k available (4873k kernel code, 787416k absent, 162892k reserved, 6776k data, 944k init)
It also makes the following section go from:
Code:
Dec  7 01:55:49 Odin kernel: [    1.423749] Freeing initrd memory: 16048k freed
Dec  7 01:55:49 Odin kernel: [    1.428945] PCI-DMA: Disabling AGP.
Dec  7 01:55:49 Odin kernel: [    1.429066] PCI-DMA: aperture base @ c4000000 size 65536 KB
Dec  7 01:55:49 Odin kernel: [    1.429068] PCI-DMA: using GART IOMMU.
Dec  7 01:55:49 Odin kernel: [    1.429071] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture
to:
Code:
Dec  7 02:06:32 Odin kernel: [    1.413799] Freeing initrd memory: 16048k freed
Dec  7 02:06:32 Odin kernel: [    1.419009] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Dec  7 02:06:32 Odin kernel: [    1.419013] Placing 64MB software IO TLB between ffff8800cbf7e000 - ffff8800cff7e000
Dec  7 02:06:32 Odin kernel: [    1.419015] software IO TLB at phys 0xcbf7e000 - 0xcff7e000
In other words, where first on-chip hardware was used (GART IOMMU), after using the kernel option iommu=noaperture a software implementation will be used. I guess (but I'm not sure) this is not what I and with me, other people want. That is, compared to losing 64MB of memory. However, that appears to apply only to systems with an AMD 64-bits processor, because they contain an IOMMU. AFAIK systems with an Intel processor will always use a software implementation. My system will lose 64MB either way, because at address range 0xcbf7e000 - 0xcff7e000 there is memory according to the BIOS-provided physical RAM map.
Using the option iommu=noagp ("don't initialize the AGP driver and use full aperture") seems appropriate for a PCIe system, although I don't see any difference in the sections I referred to above (compared to not specifying the kernel argument iommu). So, this brings us back to "Please enable the IOMMU option in the BIOS setup". I don't know how to do that on my system...

To add to tredegar's explanation about where to specify kernel arguments: On Fedora 16 you would have to modify the file /boot/grub2/grub.cfg.

Last edited by dbjh; 12-10-2011 at 07:56 AM. Reason: Changed incorrect statement about Intel processors.
 
1 members found this post helpful.
Old 12-07-2011, 01:10 AM   #51
JZL240I-U
Senior Member
 
Registered: Apr 2003
Location: Germany
Distribution: openSuSE 42.1_64+Tumbleweed-KDE, Mint 17.3+18.3
Posts: 4,126

Rep: Reputation: Disabled
Quote:
Originally Posted by dbjh View Post
I get the impression people are too focussed on getting rid of a warning message while not fully understanding the implications. ...
Exactly. But as you can see from this thread alone, there are no fast and easy explanations either, not to mention your

Quote:
Originally Posted by dbjh View Post
So, this brings us back to "Please enable the IOMMU option in the BIOS setup". I don't know how to do that on my system...
Obviously nobody does. But I still hate "errors" with no chance of mitigating them.

Oh, and thanks for your post and explanations .
 
Old 12-07-2011, 06:35 AM   #52
dbjh
LQ Newbie
 
Registered: Aug 2006
Distribution: Fedora 16
Posts: 3

Rep: Reputation: 1
Quote:
Originally Posted by JZL240I-U View Post
Exactly. But as you can see from this thread alone, there are no fast and easy explanations either, not to mention your
Excuse me, but my what?
It depends on the level of understanding and knowledge of the reader whether it is easy of course. As far as I understand the problem it is basically a shortcoming in BIOS implementations that do not offer the option to map part of the memory outside the 32-bit address space (to create a "hole" in the address space that can be used to communicate with the video card without eclipsing memory). To reach optimal performance (perhaps to make things work at all) all video memory should be accessible within the 32-bit address space of the processor (probably while also using a bank switching technique). A BIOS written for 64-bit AMD processors *should* offer that option. An explanation for not implementing it might be that the cost of doing so is thought of as being higher than the lost sales due to the lack of that feature. The problem does not show itself if you have at least 64MB less than 4GB in a system. If you have exactly 4GB in your system you lose 1.6% of your usable memory. That percentage gets lower as you install more memory.

Quote:
Originally Posted by JZL240I-U View Post
Obviously nobody does. But I still hate "errors" with no chance of mitigating them.
I understand that :-) I meant it more like it is impossible to do that on my system. That people, including me even note and try to solve this problem is also because of the wording of the kernel log message. For example, I quoted this part of my /var/log/messages:
Code:
Dec  7 02:06:32 Odin kernel: [    1.419013] Placing 64MB software IO TLB between ffff8800cbf7e000 - ffff8800cff7e000
Dec  7 02:06:32 Odin kernel: [    1.419015] software IO TLB at phys 0xcbf7e000 - 0xcff7e000
I missed this before I read your post where you quoted part of your /var/log/boot.msg. Here 64MB is also being wasted without making it explicit to the casual reader. I guess we would have seen a thread on this site if a kernel message was added that said "This costs you 64 MB of RAM".
And yes, I also dislike warning or error messages without being able to do anything about it.

Quote:
Originally Posted by JZL240I-U View Post
Oh, and thanks for your post and explanations .
You are welcome. Thank you too for your posts :-) Thanks to you I realised there is a cost to using iommu=noaperture and that I cannot avoid losing 64MB on my system.
 
Old 12-07-2011, 06:47 AM   #53
JZL240I-U
Senior Member
 
Registered: Apr 2003
Location: Germany
Distribution: openSuSE 42.1_64+Tumbleweed-KDE, Mint 17.3+18.3
Posts: 4,126

Rep: Reputation: Disabled
Post

Quote:
Originally Posted by dbjh View Post
Excuse me, but my what?...
Your next snippet of text I quoted immediately following my "..., not to mention your" -> So, this brings us back to "Please enable the IOMMU option in the BIOS setup". I don't know how to do that on my system....

Sorry, I found this self-explaining when I wrote it, I had no intention to be obscure.

Quote:
Originally Posted by dbjh View Post
It depends on the level of understanding and knowledge of the reader whether it is easy of course...?
Woe unto me .

Quote:
Originally Posted by dbjh View Post
[more detailed explanations here]
...
...I cannot avoid losing 64MB on my system.
My first Atari MegaST computer had 1 (one!) MB, 360 kB more than the then biggest PC-memory available, and so it seemed huge at that time. I still have a bone-feeling of waste, when I read about the casual loss of 64 MB even though my system now has 4 GB ... must be getting old .

Last edited by JZL240I-U; 12-07-2011 at 06:49 AM.
 
Old 11-19-2012, 06:27 AM   #54
Maxei
Member
 
Registered: Mar 2005
Posts: 84

Rep: Reputation: 15
Lenovo G465 and crapy BIOS and IOMMU memory taxes

I found this thread, because I noticed for the first time that warning about "BIOS does not leave an aperture memory hole...this costs you 64 MB of RAM". Well, it is November 2012 and I am surprised that since 2008 this thread exists, yet, the kernel has not been touched at all, it seems. I courrently run 3.2.0-23-lowlatency #31-Ubuntu SMP PREEMPT Wed Apr 11 02:24:03 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux. I blame, yessir, the BIOS of my laptop for being so crapy simple, that does not allow me to do "advanced" settings. But again, something is got to be done to the kernel, isn't it? like, an update or something. I also dislike to loose memory resources for nothing, even if I got 4GB installed. Taxes?
 
Old 02-15-2018, 05:34 AM   #55
gevis
LQ Newbie
 
Registered: Feb 2018
Distribution: Gentoo
Posts: 2

Rep: Reputation: Disabled
Quote:
Originally Posted by SuperSparky View Post
Out of all of the "change your kernel" responses, I never once found the "what to change" being given.
Hi, all!

I am from the future and from the Gentoo world.

The following annoying message
[0.000000] AGP: Checking aperture...
[0.000000] AGP: No AGP bridge found
[0.000000] AGP: Node 0: aperture [bus addr 0xb4000000-0xb5ffffff] (32MB)
[0.000000] Aperture pointing to e820 RAM. Ignoring.
[0.000000] AGP: Your BIOS doesn't leave an aperture memory hole
[0.000000] AGP: Please enable the IOMMU option in the BIOS setup
[0.000000] AGP: This costs you 64MB of RAM
[0.000000] AGP: Mapping aperture over RAM [mem 0xb4000000-0xb7ffffff] (65536KB)
disappeared from my dmesg after I switched off all AGP- and IOMMU-related options from my kernel config and recompiled the kernel.

After doing so, my kernel became more lightweight (on about 82K) and I still can play video in a full-screen mode.

If you do not have (or use) AGP and cannot switch on IOMMU in your BIOS, most probable that you do not need AGP- and IOMMU-related options in your kernel. So, why to keep them at all?

Quote:
Originally Posted by H_TeXMeX_H View Post
I think Emerson also posted a reasonable solution, simply disable AGP in the kernel.
Simply disabling AGP in the kernel was not enough to get rid of the message above, at least in my case.

Quote:
Originally Posted by dbjh View Post
While using iommu=noaperture ("ask the IOMMU not to touch the aperture for AGP") makes the following section of the kernel messages go from:
Dec 7 01:55:49 Odin kernel: [0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
Dec 7 01:55:49 Odin kernel: [0.000000] Checking aperture...
Dec 7 01:55:49 Odin kernel: [0.000000] No AGP bridge found
Dec 7 01:55:49 Odin kernel: [0.000000] Node 0: aperture @ 0 size 32 MB
Dec 7 01:55:49 Odin kernel: [0.000000] Your BIOS doesn't leave a aperture memory hole
Dec 7 01:55:49 Odin kernel: [0.000000] Please enable the IOMMU option in the BIOS setup
Dec 7 01:55:49 Odin kernel: [0.000000] This costs you 64 MB of RAM
Dec 7 01:55:49 Odin kernel: [0.000000] Mapping aperture over 65536 KB of RAM @ c4000000
Dec 7 01:55:49 Odin kernel: [0.000000] PM: Registered nosave memory: 00000000c4000000 - 00000000c8000000
Dec 7 01:55:49 Odin kernel: [0.000000] Memory: 3964892k/4980736k available (4873k kernel code, 787416k absent, 228428k reserved, 6776k data, 944k init)

to:
Dec 7 02:06:32 Odin kernel: [0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
Dec 7 02:06:32 Odin kernel: [0.000000] Memory: 4030428k/4980736k available (4873k kernel code, 787416k absent, 162892k reserved, 6776k data, 944k init)

It also makes the following section go from:
Dec 7 01:55:49 Odin kernel: [1.423749] Freeing initrd memory: 16048k freed
Dec 7 01:55:49 Odin kernel: [1.428945] PCI-DMA: Disabling AGP.
Dec 7 01:55:49 Odin kernel: [1.429066] PCI-DMA: aperture base @ c4000000 size 65536 KB
Dec 7 01:55:49 Odin kernel: [1.429068] PCI-DMA: using GART IOMMU.
Dec 7 01:55:49 Odin kernel: [1.429071] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture

to:
Dec 7 02:06:32 Odin kernel: [1.413799] Freeing initrd memory: 16048k freed
Dec 7 02:06:32 Odin kernel: [1.419009] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Dec 7 02:06:32 Odin kernel: [1.419013] Placing 64MB software IO TLB between ffff8800cbf7e000 - ffff8800cff7e000
Dec 7 02:06:32 Odin kernel: [1.419015] software IO TLB at phys 0xcbf7e000 - 0xcff7e000
Well. No warning message any more.

Quote:
Originally Posted by dbjh View Post
In other words, where first on-chip hardware was used (GART_IOMMU), after using the kernel option iommu=noaperture a software implementation will be used. I guess (but I'm not sure) this is not what I and with me, other people want. That is, compared to losing 64MB of memory.
But now these 64MB are not lost. They are used.

Quote:
Originally Posted by dbjh View Post
However, that appears to apply only to systems with an AMD 64-bits processor, because they contain an IOMMU.
I am very much doubt that my AMD Athlon 64 X2 5000+ “contains an IOMMU”. At least, there is not a single word about it here.

Quote:
Originally Posted by dbjh View Post
My system will lose 64MB either way, because at address range 0xcbf7e000 - 0xcff7e000 there is memory according to the BIOS-provided physical RAM map.
Using the option iommu=noagp ("don't initialize the AGP driver and use full aperture") seems appropriate for a PCIe system, although I don't see any difference in the sections I referred to above (compared to not specifying the kernel argument iommu). So, this brings us back to "Please enable the IOMMU option in the BIOS setup".
After disabling all AGP- and IOMMU-related options in my kernel, I still get
[0.635881] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[0.635917] software IO TLB [mem 0xbbee0000-0xbfee0000] (64MB) mapped at [ffff8eaefbee0000-ffff8eaeffedffff]
at my dmesg but no message saying that I am loosig 64MB of RAM and no “Please enable the IOMMU option in the BIOS setup.”

Still wonder if I should disable SWIOTLB in my kernel as well.

P.S. I have Gigabyte GA-MA69GM-S2H mother board with only integrated in the north bridge AMD 690G [ATI Radeon X1250] graphic card.

P.P.S. You can still benefit from enabling IOMMU in kernel, if you are going to ran it inside some virtual machine that simulates IOMMU.

Last edited by gevis; 02-15-2018 at 07:24 AM.
 
Old 02-15-2018, 01:35 PM   #56
tredegar
LQ 5k Club
 
Registered: May 2003
Location: London, UK
Distribution: Debian "Testing"
Posts: 6,096

Rep: Reputation: 408Reputation: 408Reputation: 408Reputation: 408Reputation: 408
Hello gevis,

I last contributed to this thread about 10y ago.

I don't spend much time here now, but was auto-notified that you had posted to a thread that I had contributed to in the past.

But I see that this is your first post, so I'd just like to say

Welcome to LQ!

Best wishes.
 
Old 02-15-2018, 03:22 PM   #57
gevis
LQ Newbie
 
Registered: Feb 2018
Distribution: Gentoo
Posts: 2

Rep: Reputation: Disabled
Quote:
Originally Posted by tredegar View Post
I see that this is your first post, so I'd just like to say

Welcome to LQ!
Thank you.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Are PHP session variables held in memory when you leave a PHP site? Locura Programming 11 11-16-2008 08:37 PM
request_mem_region kernel function and 15-16M memory hole trifola Linux - Kernel 0 01-04-2008 02:16 AM
Asus K8N-DL no memory hole --> no boot! Basileus Romaion Linux - Hardware 2 07-04-2007 11:49 AM
FC5, the memory black hole seimour Fedora 3 04-17-2006 04:30 PM
Memory hole/leak in RH9? mrogers Linux - Newbie 2 09-23-2003 08:07 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 11:02 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration