Re: [PATCH 04/11] CIFS: Delete echo_retries module parm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Having interesting conversations here about maxmpx, echo, blocking locks etc.

To Samba apparently we should not be limiting these requests in flight
- they can go far beyond 50 with no problem (although for non-SMB2
case we should be checking for a few other things - like that opens
don't exceed 64K on cifs).

For blocking locks the story (according to Chris H.) is interesting,
but we can allow up to maxmpx (actually maxmpx minus one or two, for
oplock, and one other non-blocking command presumably) per pid-mid
pair (ie mids per process).   So we should be able to allow 48 (or 8,
ie two less than maxmpx, depending on server) simultaneous pending
blocking locks per process (per process/per connection) not per
connection.

On Wed, Feb 22, 2012 at 1:32 AM, Pavel Shilovsky <piastry@xxxxxxxxxxx> wrote:
> It's the essential step before respecting MaxMpxCount value during
> negotiating because we will keep only one extra slot for sending
> echo requests. If there is no response for echo message - reconnect
> the tcp session.
>
> Signed-off-by: Pavel Shilovsky <piastry@xxxxxxxxxxx>
> ---
>  fs/cifs/README     |    6 +-----
>  fs/cifs/cifsfs.c   |    5 -----
>  fs/cifs/cifsglob.h |    3 ---
>  fs/cifs/connect.c  |    7 +++----
>  4 files changed, 4 insertions(+), 17 deletions(-)
>
> diff --git a/fs/cifs/README b/fs/cifs/README
> index 895da1d..b7d782b 100644
> --- a/fs/cifs/README
> +++ b/fs/cifs/README
> @@ -753,10 +753,6 @@ module loading or during the runtime by using the interface
>
>  i.e. echo "value" > /sys/module/cifs/parameters/<param>
>
> -1. echo_retries - The number of echo attempts before giving up and
> -                 reconnecting to the server. The default is 5. The value 0
> -                 means never reconnect.
> -
> -2. enable_oplocks - Enable or disable oplocks. Oplocks are enabled by default.
> +1. enable_oplocks - Enable or disable oplocks. Oplocks are enabled by default.
>                    [Y/y/1]. To disable use any of [N/n/0].
>
> diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
> index b1fd382..e1ce1ca 100644
> --- a/fs/cifs/cifsfs.c
> +++ b/fs/cifs/cifsfs.c
> @@ -77,11 +77,6 @@ unsigned int cifs_max_pending = CIFS_MAX_REQ;
>  module_param(cifs_max_pending, int, 0444);
>  MODULE_PARM_DESC(cifs_max_pending, "Simultaneous requests to server. "
>                                   "Default: 50 Range: 2 to 256");
> -unsigned short echo_retries = 5;
> -module_param(echo_retries, ushort, 0644);
> -MODULE_PARM_DESC(echo_retries, "Number of echo attempts before giving up and "
> -                              "reconnecting server. Default: 5. 0 means "
> -                              "never reconnect.");
>  module_param(enable_oplocks, bool, 0644);
>  MODULE_PARM_DESC(enable_oplocks, "Enable or disable oplocks (bool). Default:"
>                                 "y/Y/1");
> diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
> index 600d61c..674792e 100644
> --- a/fs/cifs/cifsglob.h
> +++ b/fs/cifs/cifsglob.h
> @@ -1049,9 +1049,6 @@ GLOBAL_EXTERN unsigned int cifs_min_rcv;    /* min size of big ntwrk buf pool */
>  GLOBAL_EXTERN unsigned int cifs_min_small;  /* min size of small buf pool */
>  GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/
>
> -/* reconnect after this many failed echo attempts */
> -GLOBAL_EXTERN unsigned short echo_retries;
> -
>  #ifdef CONFIG_CIFS_ACL
>  GLOBAL_EXTERN struct rb_root uidtree;
>  GLOBAL_EXTERN struct rb_root gidtree;
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index 673813f..86d7a40 100644
> --- a/fs/cifs/connect.c
> +++ b/fs/cifs/connect.c
> @@ -373,12 +373,11 @@ allocate_buffers(struct TCP_Server_Info *server)
>  static bool
>  server_unresponsive(struct TCP_Server_Info *server)
>  {
> -       if (echo_retries > 0 && server->tcpStatus == CifsGood &&
> -           time_after(jiffies, server->lstrp +
> -                               (echo_retries * SMB_ECHO_INTERVAL))) {
> +       if (server->tcpStatus == CifsGood &&
> +           time_after(jiffies, server->lstrp + SMB_ECHO_INTERVAL)) {
>                cERROR(1, "Server %s has not responded in %d seconds. "
>                          "Reconnecting...", server->hostname,
> -                         (echo_retries * SMB_ECHO_INTERVAL / HZ));
> +                         SMB_ECHO_INTERVAL / HZ);
>                cifs_reconnect(server);
>                wake_up(&server->response_q);
>                return true;
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Thanks,

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux