<p><br>
On May 31, 2012 9:37 PM, &quot;Abu Rasheda&quot; &lt;<a href="mailto:rcpilot2010@gmail.com">rcpilot2010@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On Wed, May 30, 2012 at 10:35 PM, Mulyadi Santosa<br>
&gt; &lt;<a href="mailto:mulyadi.santosa@gmail.com">mulyadi.santosa@gmail.com</a>&gt; wrote:<br>
&gt; &gt; Hi...<br>
&gt; &gt;<br>
&gt; &gt; On Thu, May 31, 2012 at 4:44 AM, Abu Rasheda &lt;<a href="mailto:rcpilot2010@gmail.com">rcpilot2010@gmail.com</a>&gt; wrote:<br>
&gt; &gt;&gt; as I increase size of buffer, insns per cycle keep decreasing. Here is the data:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;    1k 0.90  insns per cycle<br>
&gt; &gt;&gt;    8k 0.43  insns per cycle<br>
&gt; &gt;&gt;  43k 0.18  insns per cycle<br>
&gt; &gt;&gt; 100k 0.08  insns per cycle<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Showing that copy_from_user is more efficient when copy data is small,<br>
&gt; &gt;&gt; why it is so ?<br>
&gt; &gt;<br>
&gt; &gt; you meant, the bigger the buffer, the fewer the instructions, right?<br>
&gt;<br>
&gt; yes<br>
&gt;<br>
If the buffer at user side is more then a page, then it may be that complete user space buffer is not available in memory and kernel spend time in processing page fault<br>
&gt; &gt;<br>
&gt; &gt; Not sure why, but I am sure it will reach some peak point.<br>
&gt; &gt;<br>
&gt; &gt; Anyway, you did kmalloc and then kfree()? I think that&#39;s why...bigger<br>
&gt; &gt; buffer will grab large chunk from slab...and again likely it&#39;s<br>
&gt; &gt; physically contigous. Also, it will be placed in the same cache line.<br>
&gt; &gt;<br>
&gt; &gt; Whereas the smaller one....will hit allocate/free cycle more...thus<br>
&gt; &gt; flushing the L1/L2 cache even more.<br>
&gt;<br>
&gt; It seems to be doing opposite, bigger the allocation / copy longer stall is.<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</p>