Hello Arun,<br><br>Thanks for answering.<br><br><div class="gmail_quote">On Fri, Oct 19, 2012 at 3:33 PM, Arun KS <span dir="ltr"><<a href="mailto:getarunks@gmail.com" target="_blank">getarunks@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><div class="gmail_quote"><div>On Fri, Oct 19, 2012 at 3:03 PM, telenn barz <span dir="ltr"><<a href="mailto:telenn.barz@gmail.com" target="_blank">telenn.barz@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>Q: In the 4G/4G split case, I don't see why we have to necessarily flush the TLB when switching from user-space to kernel-space ? Why the TLB couldn't be shared across one user-space to kernel-space switch, and be flushed only every two switches ?<br>
</blockquote></div><div><br>In 4G/4G split, kernel space(KS) and user space(US) both have 4GB address space. So there can be a same virtual address present in KS & US which corresponds to two different physical addressess.<br>
When switching from US to KS or vice versa, the pointer to page table has to be changed in the MMU. So TLB which is just a cache for the page tables has to be flushed aswell.<br><br></div></div></blockquote><div>Yes you're right.<br>
<br>So considering the traditional 3G/1G split, another question is why the kernel restricts itself to a "window" of 128MB on high memory. Can we imagine rather that the kernel would simply allow itself to dynamically use some virtual pages of the 3G user-space part (while changing their access rights of course) ?<br>
<br>Thanks,<br>Telenn<br>
</div></div>