View previous topic :: View next topic |
Author |
Message |
atoz n00b
Joined: 31 Mar 2007 Posts: 54 Location: Boston, MA, USA
|
Posted: Sun Aug 12, 2007 11:17 pm Post subject: [SOLVED] Kernel not recognizing all RAM |
|
|
This one puzzles me...
I just added some RAM to my machine. It is a fairly modern machine (as in not completely antique: it's an Athlon XP on an MSI KuDoz 7 motherboard, updated with the most recent BIOS).
I realize that my current memory config is slightly odd: 1792 (1024+512+256) MB RAM, but perfectly allowable according to the motherboard manual. Indeed, BIOS recognizes the correct amount. So does Memtest86, which ran flawlessly for several hours.
My linux kernel, OTOH, for some reason has a different opinion:
Code: | lars@saturn ~ $ uname -a
Linux saturn 2.6.21-gentoo-r4 #1 Fri Aug 10 18:34:45 EDT 2007 i686 AMD Athlon(tm) XP 1800+ AuthenticAMD GNU/Linux
lars@saturn ~ $ free
total used free shared buffers cached
Mem: 906168 187668 718500 0 6088 90340
-/+ buffers/cache: 91240 814928
Swap: 4112632 0 4112632
lars@saturn ~ $ cat /proc/meminfo
MemTotal: 906168 kB
MemFree: 718500 kB
Buffers: 6088 kB
Cached: 90340 kB
SwapCached: 0 kB
Active: 90044 kB
Inactive: 75056 kB
SwapTotal: 4112632 kB
SwapFree: 4112632 kB
Dirty: 32 kB
Writeback: 0 kB
AnonPages: 68688 kB
Mapped: 33324 kB
Slab: 8192 kB
SReclaimable: 3216 kB
SUnreclaim: 4976 kB
PageTables: 884 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 4565716 kB
Committed_AS: 288360 kB
VmallocTotal: 122580 kB
VmallocUsed: 23136 kB
VmallocChunk: 98512 kB
|
No matter what I do, I cannot get it to recognize all memory. Just for fun, I rebooted giving the kernel a mem=1792M argument to tell it who's in charge... but without luck.
AFAIK, I don't have any weird/nonstandard settings in my kernel. These are the memory-related settings:
Code: |
CONFIG_SHMEM=y
# CONFIG_TINY_SHMEM is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_INPUT_FF_MEMLESS is not set
CONFIG_HAS_IOMEM=y
|
Good ideas are appreciated!
Last edited by atoz on Mon Aug 13, 2007 1:03 am; edited 1 time in total |
|
Back to top |
|
|
Monkeh Veteran
Joined: 06 Aug 2005 Posts: 1656 Location: England
|
Posted: Sun Aug 12, 2007 11:25 pm Post subject: |
|
|
You need 4G highmem. |
|
Back to top |
|
|
vivi131313 Tux's lil' helper
Joined: 11 May 2004 Posts: 108 Location: Folsom, CA
|
Posted: Mon Aug 13, 2007 12:44 am Post subject: |
|
|
Monkeh,
Seems you're familiar with this case. Just to double check. This NOHIGHMEM option is disabling reclaimed memory, so he's losing the other ~750MB to MMIO? _________________ Now I make the stuff you get pissed off at. |
|
Back to top |
|
|
atoz n00b
Joined: 31 Mar 2007 Posts: 54 Location: Boston, MA, USA
|
Posted: Mon Aug 13, 2007 12:55 am Post subject: |
|
|
Monkeh wrote: | You need 4G highmem. |
Ah... according to the kernel docs (which, apparently, I should have read more carefully), you're absolutely right. Time to build a new kernel...
Thanks for your help! |
|
Back to top |
|
|
atoz n00b
Joined: 31 Mar 2007 Posts: 54 Location: Boston, MA, USA
|
Posted: Mon Aug 13, 2007 1:00 am Post subject: |
|
|
(on a followup)
vivi131313 wrote: | Monkeh,
Seems you're familiar with this case. Just to double check. This NOHIGHMEM option is disabling reclaimed memory, so he's losing the other ~750MB to MMIO? |
It actually looks like Monkeh is right. Here's an excerpt from the kernel config help on the topic:
Quote: |
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.
If the machine has between 1 and 4 Gigabytes physical RAM, then
answer "4GB" here.
|
So, I should indeed set CONFIG_HIGHMEM4G.
Anyway, thanks to both of you for your help. |
|
Back to top |
|
|
atoz n00b
Joined: 31 Mar 2007 Posts: 54 Location: Boston, MA, USA
|
Posted: Mon Aug 13, 2007 3:46 am Post subject: |
|
|
Worked like a charm! Thanks! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|