View previous topic :: View next topic |
Author |
Message |
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2202
|
Posted: Tue Sep 06, 2016 10:00 am Post subject: [SOLVED] x86 with exactly 1GB - do I need HIGHMEM support? |
|
|
The x86 kernel configuration help text says set "Processor type and features"->"High Memory Support" "off" for machines with not more than 1GB memory (* see below). My machine has an Intel Atom 32-bit processor, and exactly 1GB RAM installed. But when I boot it, dmesg says:
Code: | Warning only 895MB will be used.
Use a HIGHMEM enabled kernel. |
Which is right? I've Googled for info on CONFIG_NOHIGHMEM=y, and many variations, and read a lot of opinions, but no facts! I suspect what happens is the kernel reserves 128Mb (which is 1024-896, and I'm assuming some rounding in the dmesg output) unmapped memory to handle memory mapping and other fixed stuff, and is therefore using all the available RAM, but it's not clear.
(*) the actual text is:
Code: | If you are compiling a kernel which will never run on a machine with
more than 1 Gigabyte total physical RAM, answer "off" here (default
choice and suitable for most users). This will result in a "3GB/1GB"
split: 3GB are mapped so that each process sees a 3GB virtual memory
space and the remaining part of the 4GB virtual memory space is used
by the kernel to permanently map as much physical memory as
possible. |
_________________ Greybeard
Last edited by Goverp on Thu Sep 08, 2016 8:34 am; edited 1 time in total |
|
Back to top |
|
|
Syl20 l33t
Joined: 04 Aug 2005 Posts: 621 Location: France
|
Posted: Tue Sep 06, 2016 10:07 am Post subject: |
|
|
More informations here :
Quote: | This means that the kernel can at most map 1GiB of physical memory at any one
time, but because we need virtual address space for other things - including
temporary maps to access the rest of the physical memory - the actual direct
map will typically be less (usually around ~896MiB). |
So you really need high memory support. |
|
Back to top |
|
|
chithanh Developer
Joined: 05 Aug 2006 Posts: 2158 Location: Berlin, Germany
|
Posted: Tue Sep 06, 2016 1:31 pm Post subject: |
|
|
You can get full 1 GB memory without highmem by enabling CONFIG_VMSPLIT_2G_OPT in menuconfig. |
|
Back to top |
|
|
Ant P. Watchman
Joined: 18 Apr 2009 Posts: 6920
|
Posted: Tue Sep 06, 2016 3:08 pm Post subject: |
|
|
CONFIG_VMSPLIT_1G_OPT should work here too. They only show up if you have CONFIG_EXPERT enabled iirc. |
|
Back to top |
|
|
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2202
|
Posted: Wed Sep 07, 2016 8:16 am Post subject: |
|
|
Chithana, Ant.P, thanks, I'll try that.
<edit>
There seems to be a new split option (visible when CONFIG_EXPERT=y):.
Code: | Memory split (3G/1G user/kernel split (for full 1G low memory)) | that seems designed to cover this case. I'll try that.
</edit> _________________ Greybeard |
|
Back to top |
|
|
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2202
|
Posted: Thu Sep 08, 2016 8:33 am Post subject: |
|
|
With that config change, I now get 1015 Mb, rather than 895.
So the answer to the question in the subject line turns out to be "No, I don't need HIGHMEM, but I do need an expert-mode configuration change". _________________ Greybeard |
|
Back to top |
|
|
|