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
Guru
 
Registered: Oct 2005
Location: $RANDOM
Distribution: slackware64
Posts: 12,928
Blog Entries: 2

Rep: Reputation: 1269Reputation: 1269Reputation: 1269Reputation: 1269Reputation: 1269Reputation: 1269Reputation: 1269Reputation: 1269Reputation: 1269
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 13.1 / 12.3_64-KDE, Ubuntu 14.04, Fedora 20, Mint 17, Chakra
Posts: 3,642

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 13.1 / 12.3_64-KDE, Ubuntu 14.04, Fedora 20, Mint 17, Chakra
Posts: 3,642

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: 0
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.
 
Old 12-07-2011, 01:10 AM   #51
JZL240I-U
Senior Member
 
Registered: Apr 2003
Location: Germany
Distribution: openSuSE 13.1 / 12.3_64-KDE, Ubuntu 14.04, Fedora 20, Mint 17, Chakra
Posts: 3,642

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: 0
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 13.1 / 12.3_64-KDE, Ubuntu 14.04, Fedora 20, Mint 17, Chakra
Posts: 3,642

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?
 
  


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


All times are GMT -5. The time now is 04:17 AM.

Main Menu
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
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration