Zero-copy patch

Jacky Lam jlam at
Tue Feb 1 07:03:06 MST 2011

I am curious about that as well. But I have double check most of the time spending while writing to samba server is that two splice call. And the kernel profile is showing that __copy_user() is using 25% CPU time during that period of time.

I don't know if it is platform dependent problem.....have you try to turn on splice and do a kernel profiling?
From: Volker Lendecke [Volker.Lendecke at SerNet.DE]
Sent: Tuesday, February 01, 2011 6:30 AM
To: Jacky Lam
Cc: samba-technical at
Subject: Re: Zero-copy patch

On Tue, Feb 01, 2011 at 12:17:35PM +0100, Volker Lendecke wrote:
> > Does any one have the kernel patch for zero-copy from skb
> > to IO buffer/cache? The performance of Samba using splice
> > is slowing down because of busy to copy the buffer from
> > socket.
> Wait -- If I used 2 splice calls, one from TCP socket to a
> pipe and the second from the pipe to a on-disk file it still
> does a copy internally?

Hmmm. Found the following comment in relatively recent Linux
kernel source:

 *      - Destination page already exists in the address space and there
 *        are users of it. For that case we have no other option that
 *        copying the data. Tough luck.
 *      - Destination page already exists in the address space, but there
 *        are no users of it. Make sure it's uptodate, then drop it. Fall
 *        through to last case.
 *      - Destination page does not exist, we can add the pipe page to
 *        the page cache and avoid the copy.

So it seems that for normal samba file server use it should
avoid the copy.


SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen

This message and any attached documents contain information from ViXS Systems, Inc. and are confidential and privileged and further subject to any confidentiality agreement between the parties. The information is intended to be viewed only by the individual(s) or entity(ies) to whom the message is addressed. If you are not the intended recipient, be aware that reading, disclosing, copying, distributing or using the contents of this transmission is prohibited. Please notify us immediately if you have received this transmission in error, and delete this message along with any attached files.

More information about the samba-technical mailing list