l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
July 21: Defensive computing: Information security for individuals
Next Installfest:
TBD
Latest News:
Jul. 4: July, August and September: Security, Photography and Programming for Kids
Page last updated:
2009 Feb 03 23:31

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Kernel not seeing all my RAM
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Kernel not seeing all my RAM



On Tue, 2009-02-03 at 10:51 -0800, Bill Broadley wrote:
> 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

The definition is probably "Machine Register Size". Pointers, ints, and
addressable memory should go along for the ride because it's convenient
to do it that way, but note:
      * an int on amd64 gcc is 32 bits. It's a long that's 64 bits.
      * The DOS memory model (*sticks out tongue*) used 16-bit pointers
        on 16-bit processors, but addressed 1MB of RAM by the use of a
        segment register to choose which "paragraph" of memory pointers
        would refer to.

--Ken

-- 
Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech


LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
O'Reilly and Associates
For numerous book donations.