<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:΢ÈíÑźÚ
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
&nbsp;<BR>
<DIV>
<DIV class=ecxgmail_quote>
<BLOCKQUOTE style="BORDER-LEFT: #ccc 1px solid; PADDING-LEFT: 1ex" class=ecxgmail_quote>
<DIV class=ecxim>&gt; Now this also means that increasing vmalloc inadvertently reduces lowmem.<BR>&gt; Why is this designed such a way?<BR><BR></DIV>It may or may not depending on the amount of physical memory and the<BR>size of the vmalloc space.<BR><BR>vmalloc space will normally increase vmalloc_end, which won't reduce lowmem.<BR>If the end can't advance any further, then I believe that the start<BR>can be reduced. This will reduce lowmem, if the lowmem overlaps with<BR>vmalloc memory.<BR>
<DIV class=ecxim><BR></DIV></BLOCKQUOTE>
<DIV>Okay! got that!&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>VMALLOC_END is a define, it is decided staticly when compile.</DIV>
<DIV>but VMALLOC_START is a dynamic value, which is calculated when running.</DIV>
<DIV>VMALLOC_START depends on the "vmalloc=XXX" parameter which is passed by</DIV>
<DIV>bootloader(u-boot). so if you specify a large vmalloc size in bootloader, for example</DIV>
<DIV>"vmalloc=512M", the VMALLOC_START will be reduced accordingly.</DIV>
<DIV>&nbsp;</DIV>
<DIV>the rough formula is as below:</DIV>
<DIV>1. define VMALLOC_END = 0xF0000000</DIV>
<DIV>2. pass in parameter "vmalloc=256M" in u-boot.</DIV>
<DIV>3. in kernel SW, a&nbsp;global variable VMALLOC_MIN = VMALLOC_END - vmalloc_size = </DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0xF0000000 - 256M = 0xE0000000</DIV>
<DIV>4. calculate total size of "mem=" which is passed by u-boot, for example total memory size is 1GB.</DIV>
<DIV>5. global variable high_memory = VMALLOC_MIN = 0xE0000000, so lowmem is from 0xC0000000 ~</DIV>
<DIV>0xE0000000, totoal 512MB, and total high memory is 512MB.</DIV>
<DIV>6. VMALLOC_START = high_memory + 8MB = 0xE0800000.</DIV>
<DIV>&nbsp;</DIV>
<DIV>at last , the vmalloc region will be 0xE0800000 ~ 0xF0000000</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV></DIV></DIV>                                               </div></body>
</html>