Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751521AbdH3SaU (ORCPT ); Wed, 30 Aug 2017 14:30:20 -0400 Received: from mail-lf0-f67.google.com ([209.85.215.67]:37303 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751337AbdH3SaS (ORCPT ); Wed, 30 Aug 2017 14:30:18 -0400 X-Google-Smtp-Source: ADKCNb6u7KaCkjoYBdJ5UhuBxc+ndWeKz/Ypoa+qK4o+OKw87R8KOWkz0DEvDd9WIlHB+cW+CrUWJ7Q5/120JRl7yb4= MIME-Version: 1.0 In-Reply-To: References: <20170829192915.26251-1-longli@exchange.microsoft.com> <20170829192915.26251-3-longli@exchange.microsoft.com> From: Pavel Shilovsky Date: Wed, 30 Aug 2017 11:30:15 -0700 Message-ID: Subject: Re: [Patch v3 02/19] CIFS: SMBD: Add SMBDirect protocol and transport constants To: Long Li Cc: Steve French , linux-cifs , samba-technical , Kernel Mailing List , "linux-rdma@vger.kernel.org" , Christoph Hellwig , Tom Talpey , Matthew Wilcox Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5374 Lines: 131 2017-08-30 11:24 GMT-07:00 Long Li : >> -----Original Message----- >> From: Pavel Shilovsky [mailto:piastryyy@gmail.com] >> Sent: Wednesday, August 30, 2017 11:19 AM >> To: Long Li >> Cc: Steve French ; linux-cifs > cifs@vger.kernel.org>; samba-technical ; >> Kernel Mailing List ; linux- >> rdma@vger.kernel.org; Christoph Hellwig ; Tom Talpey >> ; Matthew Wilcox >> Subject: Re: [Patch v3 02/19] CIFS: SMBD: Add SMBDirect protocol and >> transport constants >> >> 2017-08-29 16:00 GMT-07:00 Long Li : >> >> -----Original Message----- >> >> From: Pavel Shilovsky [mailto:piastryyy@gmail.com] >> >> Sent: Tuesday, August 29, 2017 3:45 PM >> >> To: Long Li >> >> Cc: Steve French ; linux-cifs > >> cifs@vger.kernel.org>; samba-technical >> >> ; >> >> Kernel Mailing List ; linux- >> >> rdma@vger.kernel.org; Christoph Hellwig ; Tom >> >> Talpey ; Matthew Wilcox >> >> ; Long Li >> >> Subject: Re: [Patch v3 02/19] CIFS: SMBD: Add SMBDirect protocol and >> >> transport constants >> >> >> >> 2017-08-29 12:28 GMT-07:00 Long Li : >> >> > From: Long Li >> >> > >> >> > To prepare for protocol implementation, add constants and >> >> > user-configurable values in the SMBDirect protocol. >> >> > >> >> > Signed-off-by: Long Li >> >> > --- >> >> > fs/cifs/smbdirect.c | 78 >> >> > +++++++++++++++++++++++++++++++++++++++++++++++++++++ >> >> > fs/cifs/smbdirect.h | 20 ++++++++++++++ >> >> > 2 files changed, 98 insertions(+) >> >> > create mode 100644 fs/cifs/smbdirect.c create mode 100644 >> >> > fs/cifs/smbdirect.h >> >> > >> >> > diff --git a/fs/cifs/smbdirect.c b/fs/cifs/smbdirect.c new file >> >> > mode >> >> > 100644 index 0000000..d785bc1 >> >> > --- /dev/null >> >> > +++ b/fs/cifs/smbdirect.c >> >> > @@ -0,0 +1,78 @@ >> >> > +/* >> >> > + * Copyright (C) 2017, Microsoft Corporation. >> >> > + * >> >> > + * Author(s): Long Li >> >> > + * >> >> > + * This program is free software; you can redistribute it and/or modify >> >> > + * it under the terms of the GNU General Public License as published >> by >> >> > + * the Free Software Foundation; either version 2 of the License, or >> >> > + * (at your option) any later version. >> >> > + * >> >> > + * This program is distributed in the hope that it will be useful, >> >> > + * but WITHOUT ANY WARRANTY; without even the implied warranty >> of >> >> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See >> >> > + * the GNU General Public License for more details. >> >> > + */ >> >> > +#include >> >> > +#include "smbdirect.h" >> >> > +#include "cifs_debug.h" >> >> > + >> >> > +/* SMBD version number */ >> >> > +#define SMBD_V1 0x0100 >> >> > + >> >> > +/* Port numbers for SMBD transport */ >> >> > +#define SMB_PORT 445 >> >> > +#define SMBD_PORT 5445 >> >> > + >> >> > +/* Address lookup and resolve timeout in ms */ >> >> > +#define RDMA_RESOLVE_TIMEOUT 5000 >> >> > + >> >> > +/* SMBD negotiation timeout in seconds */ #define >> >> > +SMBD_NEGOTIATE_TIMEOUT 120 >> >> > + >> >> > +/* SMBD minimum receive size and fragmented sized defined in [MS- >> >> SMBD] */ >> >> > +#define SMBD_MIN_RECEIVE_SIZE 128 >> >> > +#define SMBD_MIN_FRAGMENTED_SIZE 131072 >> >> > + >> >> > +/* >> >> > + * Default maximum number of RDMA read/write outstanding on this >> >> > +connection >> >> > + * This value is possibly decreased during QP creation on hardware >> >> > +limit */ >> >> > +#define SMBD_CM_RESPONDER_RESOURCES 32 >> >> > + >> >> > +/* Maximum number of retries on data transfer operations */ >> >> > +#define SMBD_CM_RETRY 6 >> >> > +/* No need to retry on Receiver Not Ready since SMBD manages >> >> > +credits >> >> */ >> >> > +#define SMBD_CM_RNR_RETRY 0 >> >> > + >> >> > +/* >> >> > + * User configurable initial values per SMBD transport connection >> >> > + * as defined in [MS-SMBD] 3.1.1.1 >> >> > + * Those may change after a SMBD negotiation */ >> >> >> >> Since these value are per transport connection, why they are global? >> >> Shouldn't they be inside a some structure that is created for a >> >> particular connection? Also the constants below should be defines. >> > >> > Those are configurable initial values (default values) for all connections. >> > >> > Each connection has its own values based on those initial values. But >> connection-based values can change after negotiation is done, or after >> RDMA hardware capabilities are probed. >> >> If these are configurable values, let's add a way to actually configure them. >> Through /proc? > > You mean putting them in /proc/fs/cifs? > > Or how about module_param? I am ok with either way. If it is safe to change them without reloading the module let's do /proc/fs/cifs which would make it easier to use. Otherwise - module_param is also good. -- Best regards, Pavel Shilovsky