Re: Allow very large writes

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Steve French
Date: Thursday, November 8, 2007 - 10:43 am

I also noticed that we can't take advantage of this for the
forcedirectio case since we are passed a user space pointer and the
kernel socket API requires a kvec (which will point to pages in the
kernel address space) so there is an extra buffer allocate and file
copy.  Any ideas the best way to handle that?  It would be trivial for
a quick test to change cifs_user_write from calling CIFSSMBWrite to
CIFSSMBWrite2 (which takes the write buffer as a pointer instead of
copying it) - I would expect a big performance gain.

By the way, I did additional testing over localhost and even there the
large writes show a big gain.

e.g. mounting over localhost cifs->Samba/XFS and doing dd of 350MB
with a block size of 1000000.  Local copy got (no cifs)  46MB/sec
(this is not a high end disk).  For cifs->Samba/XFS

wsize=56K (default) 32.2MB/sec
wsize=64K 34.7 MB/sec
wsize=504000   36.3 MB/sec
wsize=1004000 36.3 MB/sec


On the same machine with cifs mounted over localhost to Samba/ext3
instead of Samba/XFS
wsize=56K (default) 22 MB/sec
wsize=504000 33.5 MB/sec
wsize=1004000 39.5 MB/sec

On Nov 8, 2007 9:50 AM, Steve French <smfrench@gmail.com> wrote:



-- 
Thanks,

Steve
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: Allow very large writes, Steve French, (Thu Nov 8, 10:43 am)