[linux-cifs-client] Numerous "CIFS VFS: Send error" messages in 2.6.25.3

Shirish Pargaonkar shirishpargaonkar at gmail.com
Tue May 13 14:28:09 GMT 2008


On 5/13/08, Gautam Iyer <gi1242+samba at stanford.edu> wrote:
> On Mon, May 12, 2008 at 10:29:12PM -0500, Shirish Pargaonkar wrote:
>
> >> I was using "mount -t smbfs" on Linux-2.6.23 for a long time with no
> >> problems. When I recently upgraded to CIFS + Linux-2.6.25, I ran into a
> >> few issues.
> >>
> >> My Samba server is a Vantec networked hard disk. I mount it via
> >>
> >>    mount -t cifs //andurin/PUBLIC /tmp/andurin -o nounix,guest
> >>
> >> Now I can copy / move files just fine. But when I try and do something
> >> fancy, I get numerous errors. Usually at this point my log file is
> >> clutter with numerous CIFS VFS error messages. A few of the log lines
> >> are:
> >>
> >>    May 12 18:56:04 mordor CIFS VFS: Write2 ret -28, wrote 0
> >>    May 12 18:56:04 mordor CIFS VFS: No response to cmd 47 mid 67
> >>    May 12 18:56:04 mordor CIFS VFS: Write2 ret -11, wrote 0
> >>    May 12 18:56:04 mordor CIFS VFS: Write2 ret -11, wrote -511544036
> >>    May 12 18:56:04 mordor CIFS VFS: Write2 ret -28, wrote 0
> >>    May 12 18:56:04 mordor CIFS VFS: Write2 ret -11, wrote -511544036
> >>    May 12 18:56:04 mordor CIFS VFS: Write2 ret -28, wrote 0
> >>    May 12 18:56:04 mordor CIFS VFS: No response to cmd 47 mid 78
> >>
> > I am trying to work on this problem.  Try increasing the send
> > (sk_sndbuf) and receive (sk_rcvbuf) buffer sizes of socket  from 200K
> > and 140K respectively to 512K or 1M in fs/cifs/connect.c in function
> > ipv4_connect.
>
> Thanks for the quick response. I did this, and seem to get the same
> messages in my syslog, and the same error message from fancy operations
> (e.g. mke2fs). (I'm also assuming that modprobe -rv cifs, and then
> modprobe -iv cifs was enough for this change to take effect).
>
> > What is the output of command
> > sysctl -a | grep tcp | grep mem
>
> It was
>
>    net.ipv4.tcp_mem = 96672        128896  193344
>    net.ipv4.tcp_wmem = 4096        16384   4124672
>    net.ipv4.tcp_rmem = 4096        87380   4124672
>
> Plus a few error messages about ipv6.
>
> Let me know if there's anything else you want me to test, or if there is
> anything else I can do to help fix this,
>
> Thanks
>
> GI
>
> --
> 'Common' Proof Techniques:
> 5. Proof by Omission -- "The reader may easily supply the details"
>
> _______________________________________________
> linux-cifs-client mailing list
> linux-cifs-client at lists.samba.org
> https://lists.samba.org/mailman/listinfo/linux-cifs-client
>
>
>

Gautam,

You can try taking out the setting the send and receive socket buffer
sizes altogether.
Let tcp auto-tuning take care of the socket buffer sizes.
What I found out is with a stress testssuites like fsstress, send
buffer does not
tune (increase in size) but with your test load, may be it will work.
Error -11 is EAGAIN and -28 is ENOSPC, so I am suspecting it has to do with
socket buffers.
So a patch like this might work.

Regards,

Shirish


diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 791ca5c..c9a2090 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1550,11 +1550,6 @@ ipv4_connect(struct sockaddr_in *psin_se
                 (*csocket)->sk->sk_sndbuf,
                 (*csocket)->sk->sk_rcvbuf, (*csocket)->sk->sk_rcvtimeo));
        (*csocket)->sk->sk_rcvtimeo = 7 * HZ;
-       /* make the bufsizes depend on wsize/rsize and max requests */
-       if ((*csocket)->sk->sk_sndbuf < (200 * 1024))
-               (*csocket)->sk->sk_sndbuf = 200 * 1024;
-       if ((*csocket)->sk->sk_rcvbuf < (140 * 1024))
-               (*csocket)->sk->sk_rcvbuf = 140 * 1024;

        /* send RFC1001 sessinit */
        if (psin_server->sin_port == htons(RFC1001_PORT)) {


More information about the linux-cifs-client mailing list