[vox-tech] Kernel not seeing all my RAM

Bill Broadley bill at cse.ucdavis.edu
Tue Feb 3 10:51:20 PST 2009


Cam Ellison wrote:
> Chanoch (Ken) Bloom wrote:
>> I'm upgrading an x86 machine to 4 GB of RAM, and have compiled the
>> kernel with CONFIG_HIGHMEM64G=y, but the kernel is only seeing 3283 MB
>> of the RAM. Any idea what I'm doing wrong?
>>
>>   
> 
> You should use the 4GB setting, I think.  The 64G setting is for a 
> 64-bit processor, and you appear to have a 32-bit.

Actually, I believe not.  The whole number of bits thing is rather confusing.
 Is it the memory bus width?  Size of floating point?  Ints?
Pointers/directly addressable ram?  Maximum addressable memory (ram)?

Actually the "32-bit" intels (back at least to the P Pro) can address around
36 bits of memory via a hack, but only 4GB per process.  But the kernel could
have 4GB and any single process could have 4GB, so on a large 32-bit server
might have 16GB ram and allow for numerous processes to run as long as the
total does go over 16, and any single process doesn't go over 1GB.  The config
description should for CONFIG_HIHMEM64G should mention PAE or similar.

Oh, as for the questions above:
* it's not the memory width, 64-128 bits has been quite common for CPU
  generations, currently it's often 192-256, and in a few weeks 384.
* Floating point has been 64 bits for CPU generations
* Ints aren't a bad approximation
* Pointers aren't a bad approximation
* addressable memory isn't


More information about the vox-tech mailing list