<br><div class="gmail_quote">On Fri, Aug 17, 2012 at 12:19 AM, Ezequiel Garcia <span dir="ltr">&lt;<a href="mailto:elezegarcia@gmail.com" target="_blank">elezegarcia@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hey Amar,<br>
<div class="im"><br>
On Thu, Aug 16, 2012 at 3:39 PM, Amarnath Revanna<br>
&lt;<a href="mailto:amarnath.revanna@gmail.com">amarnath.revanna@gmail.com</a>&gt; wrote:<br>
&gt; Just want to add a little more for better understanding:<br>
&gt;<br>
&gt; When I spoke about .init section of the final kernel image, please note that<br>
&gt; this section is going to<br>
&gt; contain all the __init data (and functions) coming from _All_ the drivers<br>
&gt; and modules that were included<br>
&gt; as part of the kernel image. Hence, after initialization when we look at the<br>
&gt; print:<br>
&gt;<br>
&gt; &quot; [1.011596] Freeing unused kernel memory: 664k freed &quot;<br>
&gt;<br>
&gt; we see 664k bytes being freed.<br>
&gt;<br>
&gt; This is a significant amount of contiguous physical memory that we can see<br>
&gt; being released by the kernel.<br>
&gt;<br>
&gt; The same cannot be held true for a single loadable module which may be<br>
&gt; releasing just a few, virtually<br>
&gt; contiguous memory.<br>
&gt;<br>
<br>
</div>It&#39;s crystal clear ;-) Nice explanation. It&#39;s important to add<br>
something to clearify a bit your<br>
explanation (please correct me if I&#39;m wrong):<br>
<br>
When Amar is talking about &quot;virtually contiguous&quot; kernel memory he<br>
implies that this<br>
memory is physically *dis*contiguous, i.e. based on page-entries.<br>
This is the kind of memory used for loadable modules,<br>
for instance, modules that get loaded with modprobe.<br>
<br>
On the other hand, built-in modules are compiled *inside*  the kernel<br>
image (bzImage).<br>
The memory used for this image is physically contiguous: it&#39;s a big<br>
contiguous block<br>
of memory pages. Contiguous memory is important for kernel, and therefore<br>
is *very* important to spend some effort minimizing it.<br></blockquote><div><br></div><div>Ezequiel,</div><div><br></div><div>Thanks for adding the clarification here :-)</div><div><br></div><div>Regards,</div><div>-Amar</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Regards,<br>
Ezequiel.<br>
</blockquote></div><br>