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