[Samba] Samba write performance in kernel

Jeremy Allison jra at samba.org
Tue Aug 26 15:38:49 GMT 2008


On Tue, Aug 26, 2008 at 05:41:51PM +0800, Lin Mac wrote:
> 
> hi,
> 
> I would like to know is it possible to make writing file to samba completely in kernel?

Yes.

> I'm using a slow CPU (FA526) , and the memory copy is even slower. The reading performance is over 7 MB/s, with mmap and sendfile enabled, while writing is only 4-5 MB/s. Without mmap and sendfile, reading from samba is also about 4-5 MB/s. I use Oprofile to profile writing file to samba and found that CPU takes over 30% CPU time on copy_from/to_user, so I think going to user space and back again is the bottleneck.
> 
> Since there is sendfile, why is'nt there counterpart on write path? Is there some difficalties or what? Is it implementable?

There is a counterpart on the write path, called RECEIVEFILE
in the Samba 3.2.x code. It's already coded up in userspace,
just waiting the kernel counterpart :-). If there's no kernel
receivefile() call then it emulates this in userspace.

Try plumbing in the Linux splice() system call (this is
already coded up in Samba, awaiting working kernel support).

Jeremy.


More information about the samba mailing list