Re: PAGE_OFFSET

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux