<br><br><div class="gmail_quote">On Fri, Mar 15, 2013 at 6:08 PM, ishare <span dir="ltr">&lt;<a href="mailto:june.tune.sea@gmail.com" target="_blank">june.tune.sea@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">
<div class="im">On Fri, Mar 15, 2013 at 11:39:07AM +0530, Prabhu nath wrote:<br>
&gt; kmem_cache_init() will create generalized caches from where kmalloc() will<br>
&gt; allocate memory.<br>
&gt;<br>
&gt; vfs_caches_init() will create specialized caches related to VFS, like,<br>
&gt; dentry, inode_cache, mnt_cache....<br>
<br>
</div>  what is the relation between cache_cache and these two functions?<br>
  is there clue for understanding this?<br></blockquote><div><br>        Slab cache creation  either for specialized cache or generalized cache is done through kmem_cache_alloc(). <br>    kmem_cache_init() is a wrapper function which will create generalized caches again using kmem_cache_alloc()<br>
    vfs_caches_init() is a wrapper function which will create specialized caches required by VFS sub-system, again using kmem_cache_alloc(). <br><br>    there is a slab cache named &quot;kmem_cache&quot;of size &quot;struct kmem_cache&quot;used to allocate memory objects for slab cache descriptor &quot;kmem_cache&quot;. Now this slab cache will also have one descriptor. Where will you allocate memory for this descriptor ?<br>
<br>The answer is - this will be allocated statically as struct kmem_cache cache_cache.<br><br>I have attached a brief notes on &quot;Slab Allocator&quot; in a separate mail. Kindly read it. Also to get more clarity read memory management chapters in the following books. <br>
&quot;The Linux Kernel Primer &quot; - Claudia Rodriguez, Gordon Fischer &amp; Steven Smolski<br>&quot;ULK&quot; - Daniel P Bovet. <br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
  thanks!<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
&gt;<br>
&gt; Regards,<br>
&gt; Prabhunath G<br>
&gt; Linux Trainer<br>
&gt; Bangalore<br>
&gt;<br>
&gt; On Fri, Mar 15, 2013 at 10:08 AM, ishare &lt;<a href="mailto:june.tune.sea@gmail.com">june.tune.sea@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt;  the function kmem_cache_init() is allocating which area for whom to use ?<br>
&gt; &gt;<br>
&gt; &gt;   what is the difference comparing with vfs_caches_init() ?<br>
&gt; &gt;<br>
&gt; &gt;  thanks!<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; Kernelnewbies mailing list<br>
&gt; &gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; &gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Regards,<br>Prabhunath G<br>Linux Trainer<br>Bangalore<br>