Re: Need of different memory zones

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

 



On 3/13/13, Niroj Pokhrel <nirojpokhrel@xxxxxxxxx> wrote:
> Hi All,
>
> I have been studying Memory Management in linux. But I am confused with the
> division of different ZONE. The use of ZONE_DMA and ZONE_NORMAL is fine.
> But I am confused with ZONE_HIGHMEM, if the system is 32 bit then why can't
> it map 4GB memory (2^32). I had thought that ZONE_NORMAL was for the kernel
> usage so directly mapped and ZONE_HIGHMEM for the user process and is not
> directly mapped to facilitate virtual addressing.

The thing is, although 32 bit system indeed has 4 GB address space,
kernel space only has 1 GB address space. This is due to 3:1 VM split,
which means user space has 3 GB address space, while kernel space has
1 GB.

Furthermore, this 1 GB is also used for certain mapping like vmalloc
etc, so actually kernel has 896 MB (1 GB - 128 MB) address space.
Thus, ZONE_HIGHMEM represents memory mapping beyond 896 MB.

And don't forget that Linux kernel does identical mapping, so this 896
MB address space also means your first 896 MB of the RAM.
-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[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