wctan@netwxs.com.my wrote: > > Hi, > > I am trying to understand VM mechanism of the 2.4.x kernel > and is reading > http://home.earthlink.net/~jknapka/linux-mm/vminit.html > > I try looking into head.S source and encounter this: > > A __PAGE_OFFSET of 0xC0000000 means that the kernel has > a virtual address space of one gigabyte, which limits the > amount of physical memory you can use to about 950MB. > > What does __PAGE_OFFSET really means? Why does the value > 0xC0000000 gives the kernel a virtual address of one gig? > > Any help is appreciate. > > Yours truly, > Wei Chong. The URL in my sig might help you, though unfortunately since LXR removed kernel 2.4.0 code from their site all the code links are broken :-( Basically, the kernel maps all of physical memory into its virtual address space starting at PAGE_OFFSET, or 3GB. That allows the kernel full access to all physical pages at all times. Since the maximum possible virtual address is 4GB, clearly no more than 1GB of physical RAM can be mapped between 3GB and 4GB. Also, a bit of the kernel's virtual address space just below 4GB is reserved for miscellaneous uses, so the practical limit is about 950MB. CONFIG_HIGHMEM allows the kernel to access up to 64GB of physical RAM, incidentally; the paragraph above is fully accurate only when CONFIG_HIGHMEM is not in effect. Cheers -- Joe # "You know how many remote castles there are along the # gorges? You can't MOVE for remote castles!" - Lu Tze re. Uberwald # (Obsolete) Linux MM docs: http://home.earthlink.net/~jknapka/linux-mm/vmoutline.html - Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/