[linux-cifs-client] cifs client commands/requests timeout values

Jeff Layton jlayton at samba.org
Wed May 12 09:34:58 MDT 2010


On Wed, 12 May 2010 10:04:51 -0500
Shirish Pargaonkar <shirishpargaonkar at gmail.com> wrote:

> Is it reasonable for a std op command like get path info to expect response
> in 15 seconds when it happens to be a 50th command lined up behind
> 49 long op commands like 56 KBytes reads/writes.
> 
> 
>         if (long_op == CIFS_STD_OP)
>                 timeout = 15 * HZ;
>         else if (long_op == CIFS_VLONG_OP) /* e.g. slow writes past EOF */
>                 timeout = 180 * HZ;
>         else if (long_op == CIFS_LONG_OP)
>                 timeout = 45 * HZ; /* should be greater than
> 
> Should not timeout value be calculated value based on some criterion
> like what_kind_of and how_many commands/requests are in the pipeline
> on that socket at the client end?
> 
> Above timeout values are reasonable if an individual command was the
> only command/request sent.
> 

The timer doesn't start until the call is transmitted, right? So I
guess your concern is that the server may be swamped and can't deal
with a qpathinfo in time while handling the writes?

If so, suppose the server is swamped by writes from a completely
different client. You might still have the same problem.

IMNSHO, I think we'd be much better served by making cifs default to
"hard" mounts, where we wait indefinitely for responses from the server
and simply make the wait interruptible by signals.

-- 
Jeff Layton <jlayton at samba.org>


More information about the linux-cifs-client mailing list