Message ID | 1501704648-20159-5-git-send-email-longli@exchange.microsoft.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
> +/* > + * Per RDMA transport connection parameters > + * as defined in [MS-SMBD] 3.1.1.1 > + */ > +static int receive_credit_max = 512; > +static int send_credit_target = 512; > +static int max_send_size = 8192; > +static int max_fragmented_recv_size = 1024*1024; > +static int max_receive_size = 8192; Are these protocol constants? If so please use either #defines or enums with upper case names for them. > +// maximum number of SGEs in a RDMA I/O Please always use /* ... */ style comments in the kernel. -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> -----Original Message----- > From: linux-cifs-owner@vger.kernel.org [mailto:linux-cifs- > owner@vger.kernel.org] On Behalf Of Christoph Hellwig > Sent: Sunday, August 13, 2017 6:12 AM > To: Long Li <longli@microsoft.com> > Cc: Steve French <sfrench@samba.org>; linux-cifs@vger.kernel.org; samba- > technical@lists.samba.org; linux-kernel@vger.kernel.org; Long Li > <longli@microsoft.com> > Subject: Re: [[PATCH v1] 04/37] [CIFS] SMBD: Define per-channel SMBD > transport parameters and default values > > > +/* > > + * Per RDMA transport connection parameters > > + * as defined in [MS-SMBD] 3.1.1.1 > > + */ > > +static int receive_credit_max = 512; > > +static int send_credit_target = 512; > > +static int max_send_size = 8192; > > +static int max_fragmented_recv_size = 1024*1024; > > +static int max_receive_size = 8192; > > Are these protocol constants? If so please use either #defines > or enums with upper case names for them. These are not defined constants, but the values beg for some explanatory text why they are chosen. Windows uses, and negotiates by default, a 1364-byte maximum send size, and caps credits to 255. The other values match. BTW, the parameters are defined in MS-SMBD 3.1.1.1 but the chosen values are in behavior notes 2 and 7. Tom. -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> -----Original Message----- > From: Tom Talpey > Sent: Monday, August 14, 2017 12:29 PM > To: Christoph Hellwig <hch@infradead.org>; Long Li <longli@microsoft.com> > Cc: Steve French <sfrench@samba.org>; linux-cifs@vger.kernel.org; samba- > technical@lists.samba.org; linux-kernel@vger.kernel.org > Subject: RE: [[PATCH v1] 04/37] [CIFS] SMBD: Define per-channel SMBD > transport parameters and default values > > > -----Original Message----- > > From: linux-cifs-owner@vger.kernel.org [mailto:linux-cifs- > > owner@vger.kernel.org] On Behalf Of Christoph Hellwig > > Sent: Sunday, August 13, 2017 6:12 AM > > To: Long Li <longli@microsoft.com> > > Cc: Steve French <sfrench@samba.org>; linux-cifs@vger.kernel.org; > > samba- technical@lists.samba.org; linux-kernel@vger.kernel.org; Long > > Li <longli@microsoft.com> > > Subject: Re: [[PATCH v1] 04/37] [CIFS] SMBD: Define per-channel SMBD > > transport parameters and default values > > > > > +/* > > > + * Per RDMA transport connection parameters > > > + * as defined in [MS-SMBD] 3.1.1.1 > > > + */ > > > +static int receive_credit_max = 512; static int send_credit_target > > > += 512; static int max_send_size = 8192; static int > > > +max_fragmented_recv_size = 1024*1024; static int max_receive_size = > > > +8192; > > > > Are these protocol constants? If so please use either #defines or > > enums with upper case names for them. > > These are not defined constants, but the values beg for some explanatory > text why they are chosen. Windows uses, and negotiates by default, a 1364- > byte maximum send size, and caps credits to 255. The other values match. > > BTW, the parameters are defined in MS-SMBD 3.1.1.1 but the chosen values > are in behavior notes 2 and 7. I will change those values to more inline with what Windows choses. The different values don't have a visible impact to performance while RDMA read/write is used. > > Tom. -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/cifs/cifsrdma.c b/fs/cifs/cifsrdma.c index 3c9f478..7c4c178 100644 --- a/fs/cifs/cifsrdma.c +++ b/fs/cifs/cifsrdma.c @@ -54,6 +54,20 @@ #include "cifsrdma.h" +/* + * Per RDMA transport connection parameters + * as defined in [MS-SMBD] 3.1.1.1 + */ +static int receive_credit_max = 512; +static int send_credit_target = 512; +static int max_send_size = 8192; +static int max_fragmented_recv_size = 1024*1024; +static int max_receive_size = 8192; + +// maximum number of SGEs in a RDMA I/O +static int max_send_sge = 16; +static int max_recv_sge = 16; + /* Logging functions * Logging are defined as classes. They can be ORed to define the actual * logging level via module parameter rdma_logging_class diff --git a/fs/cifs/cifsrdma.h b/fs/cifs/cifsrdma.h index ec6aa61..9979fd4 100644 --- a/fs/cifs/cifsrdma.h +++ b/fs/cifs/cifsrdma.h @@ -36,6 +36,19 @@ struct cifs_rdma_info { struct TCP_Server_Info *server_info; + //connection paramters + int receive_credit_max; + int send_credit_target; + int max_send_size; + int max_fragmented_recv_size; + int max_fragmented_send_size; + int max_receive_size; + int max_readwrite_size; + int protocol; + atomic_t send_credits; + atomic_t receive_credits; + atomic_t receive_credit_target; + // for debug purposes unsigned int count_receive_buffer; unsigned int count_get_receive_buffer;