From mboxrd@z Thu Jan 1 00:00:00 1970 From: rcpilot2010@gmail.com (Abu Rasheda) Date: Wed, 30 May 2012 14:44:04 -0700 Subject: Module vs Kernel main performacne In-Reply-To: References: Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org I did another experiment. Wrote a stand alone module and user program which does ioctl and pass buffer to kernel module. User program passes a buffer through ioctl and kernel module does kmalloc on it and calls copy_from_user, kfree and return. Test program send 120 gigabyte data to module. If I pass 1k buffer per call, I get 115,396,349,819 instructions # 0.90 insns per cycle [95.00%] as I increase size of buffer, insns per cycle keep decreasing. Here is the data: 1k 0.90 insns per cycle 8k 0.43 insns per cycle 43k 0.18 insns per cycle 100k 0.08 insns per cycle Showing that cop_from_user is more efficient when copy data is small, why it is so ?