<p dir="ltr"><br>
On 31 Dec 2013 13:39, &quot;Pritam Bankar&quot; &lt;<a href="mailto:pritambankar1988@gmail.com">pritambankar1988@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; On Sun, Dec 29, 2013 at 7:04 PM, Miles MH Chen &lt;<a href="mailto:orca.chen@gmail.com">orca.chen@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hi Pritam,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; 1) Yes, all 512RAM will be direct mapped to kernel address space IF the kernel have a 896MB direct mapping area.<br>
&gt;&gt;&gt;&gt; Actually you can change the range of kernel direct mapping by the vmalloc=&lt;size&gt; in boot command line.<br>
&gt;&gt;&gt;&gt; In 32-bit and 3:1 split configuration, kernel direct mapping area + vmalloc area is roughly 1G.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; 2) User space and kernel space can have different virtual addresses mapping to the same physical frame at the same time.<br>
&gt;&gt;&gt;&gt;<br>
&gt;<br>
&gt;             How above scenario of user space and kernel space having mapping to the same physical frame               is handled. This would be like sharing kernel data with user which is not allowed. <br>
&gt;</p>
<p dir="ltr">One trivial example would be a driver that meets the userspace application to mmap a kernel buffer. In that case, there will exist both a kernelspace and a userspace mapping to the same physical frame(s). </p>

<p dir="ltr">It&#39;ll let you share data between the two in a rather efficient way. Of course, you need to handle any necessary syncing yourself, so that you&#39;re not reading inconsistent data. </p>
<p dir="ltr">Cheers, <br>
Anders <br>
</p>