Dear Mulyadi,<br>
<br>
You are always an important character to jump in to any discussion and it will be our great pleasure. <br><br>Please see inline for my views. <br><br><div class="gmail_quote">On Tue, Jun 28, 2011 at 3:46 PM, Mulyadi Santosa <span dir="ltr"><<a href="mailto:mulyadi.santosa@gmail.com">mulyadi.santosa@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Is it okay to jump in, guys?<br>
<div class="im"><br>
On Tue, Jun 28, 2011 at 12:51, piyush moghe <<a href="mailto:pmkernel@gmail.com">pmkernel@gmail.com</a>> wrote:<br>
> Thanks Prabhu.<br>
> So does this means that this ZONE_NORMAL limit of 896MB is because of 3:1<br>
> memory division?<br>
<br>
</div>partly yes, plus 896 MB itself is due to some reservation in kernel<br>
address space such as vmalloc, fixmap etc.<br></blockquote><div><br> In a 3G/1G partition. 1G of Kernel virtual address space is divided into 896MB and 128 MB regions. I name them as <br> Fixed Constant Offset mapped region (FCOM) - 0xC0000000 to 0xF8000000<br>
Dynamically Arbitrarily Mappable region (DAMR) - 0xF8000000 to 0xFFFFFFFF<br><br> FCOM region virtual address as the name depicts is already mapped to the physical address range from 0x00000000 to 0x38000000. i.e. for any virtual address in the FCOM region there is a readily available Physical address.<br>
<br> Base kernel code/data/stack and all kmalloc allocations are associated to FCOM region virtual address which require contiguity in virtual address as well as physical memory.<br><br> Those Device drivers code/data which are built as modules, vmalloc allocations which need not be contiguous in memory and but only contiguous in virtual address space will be in associated to DAMR region. <br>
<br> For exp. Check out the address of your kernel module functions which are built as modules and insmoded to the kernel. it will be in DAMR region. <br><br> The kernel symbol <i><u>high_memory</u></i> will give the start kernel virtual address of DAMR region.<br>
<br> If you have 512 MB of RAM and it is decoded from 0x00000000 to 0x0x20000000. Now you have ZONE_NORMAL size of ~512 MB. <br>Check out the value of high_memory. You will have lot of thoughts on this and refer ULK chapter 8. <br>
<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
> If it is do then does this mean that if this ratio is changed then<br>
> ZONE_NORMAL limit will also be changed?<br>
<br>
</div>see above...<br>
<font color="#888888">--<br>
regards,<br>
<br>
Mulyadi Santosa<br>
Freelance Linux trainer and consultant<br>
<br>
blog: <a href="http://the-hydra.blogspot.com" target="_blank">the-hydra.blogspot.com</a><br>
training: <a href="http://mulyaditraining.blogspot.com" target="_blank">mulyaditraining.blogspot.com</a><br>
</font></blockquote></div><br>