Re: Memory recognition problem / large mem
On Sat, Jan 19, 2002 at 01:54:04PM -0500, Noah Massey wrote:
| --begin quoted message from dman,
| > On my system I have 256MB real RAM.
| >
| > It shows a total of only 249MB. dmesg shows :
| >
| > $ dmesg | grep Memory
| > Memory: 255676k/262080k available (1111k kernel code, 6016k reserved,
| > 300k data, 228k init, 0k highmem)
|
| 2.4.16-k7 shows:
| Memory: 897676k/917504k available (815k kernel code, 19440k reserved, 233k data, 212k init, 0k highmem)
|
| 2.2.20 shows:
| Memory: 970628k/983040k available (1756k kernel code, 412k reserved, 10092k data, 152k init)
|
| neither of which is the 1048576k that I'd expect.
|
| given that each kernel consistently shows the same amount of mem, and
| that they disagree with each other on what that amount is, does this
| look like a kernel bug? or is there something that I'm just not doing?
I just went back to the manual
(/usr/src/kernel-source-2.4.17/Documentation/Configure.help) and I
this must be your problem. Kernel 2.2.20 gives exactly 960MB for you. I don't know why 2.4.16 shows a little less.
# Choice: himem
High Memory support
CONFIG_NOHIGHMEM
Linux can use up to 64 Gigabytes of physical memory on x86 systems.
However, the address space of 32-bit x86 processors is only 4
Gigabytes large. That means that, if you have a large amount of
physical memory, not all of it can be "permanently mapped" by the
kernel. The physical memory that's not permanently mapped is called
"high memory".
If you are compiling a kernel which will never run on a machine with
more than 960 megabytes of 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.
If more than 4 Gigabytes is used then answer "64GB" here. This
selection turns Intel PAE (Physical Address Extension) mode on.
PAE implements 3-level paging on IA32 processors. PAE is fully
supported by Linux, PAE mode is implemented on all recent Intel
processors (Pentium Pro and better). NOTE: If you say "64GB" here,
then the kernel will not boot on CPUs that don't support PAE!
The actual amount of total physical memory will either be auto
detected or can be forced by using a kernel command line option such
as "mem=256M". (Try "man bootparam" or see the documentation of your
boot loader (grub, lilo or loadlin) about how to pass options to the
kernel at boot time.)
If unsure, say "off".
4GB
CONFIG_HIGHMEM4G
Select this if you have a 32-bit processor and between 1 and 4
gigabytes of physical RAM.
64GB
CONFIG_HIGHMEM64G
Select this if you have a 32-bit processor and more than 4
gigabytes of physical RAM.
-D
--
All a man's ways seem innocent to him,
but motives are weighed by the Lord.
Proverbs 16:2
Reply to: