Re: more mm issues: logical versus virtual addresses

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

 



Robert P. J. Day wrote:
  moving on, more questions about HIGHMEM, and kernel addressing (some
of which we've discussed before, but i just want to make sure of this
again.)

  given a typical 32-bit system, and the standard 3G/1G user/kernel
split of that 4G address space, that gives the kernel exactly 1G of
address space to work with, which is the set of virtual addresses at
0xC0000000 and up (that is, the interval [3G, 4G)).

  that entire address range are referred to as "virtual" addresses,
since they *all* have to be mapped in some way, but the addresses
above and below the HIGHMEM boundary are treated differently.

  generally, the virtual addresses in the interval [3G, 3G+896M) are
mapped to physical addresses simply by subtracting the offset of 3G,
so these are additionally referred to as "logical" addresses (in
hindsight, not a terrific choice of name but it seems to have caught
on).  that leaves the kernel address space of [3G+896, 4G) -- HIGHMEM
-- as the only way to refer to physical memory above 1G and,
obviously, for which extra address translation needs to be done.  so
far, so good?
actually address range [3G+896, 4G) is not used for mapping high memory only ....you have vmalloc area in that range too , the actual virtaul address space reserved for mapping high memory (kmap) is only 2/4 MB.

  so, some questions?

* if i absolutely *know* that i'm building a kernel for a system that
doesn't have more than 1G of RAM, do i need HIGHMEM at all?  i can, of
course, deselect it during kernel configuration, but are there any
adverse effects to doing that other than making any RAM above 1G
inaccessible?
you can safely deselect the HIGH_MEM option when your ram is less than 896MB(not 1G)


* since i can set the HIGHMEM boundary at boot time with "vmalloc=",
do i get the same effect with "vmalloc=0"?  and, again, if i have <=1G
of RAM, would it cause any problems?
I am not sure if vmalloc=0 will work


* if i boot a regular kernel with HIGHMEM support on a system with
less than 1G, can i assume that no space at all will be allocated for
high memory since it would be totally pointless?
yes (but again its 896mb not 1G)


--
Vivek Kutal

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[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