Message ID | 20170829192915.26251-3-longli@exchange.microsoft.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2017-08-29 12:28 GMT-07:00 Long Li <longli@exchange.microsoft.com>: > From: Long Li <longli@microsoft.com> > > To prepare for protocol implementation, add constants and user-configurable > values in the SMBDirect protocol. > > Signed-off-by: Long Li <longli@microsoft.com> > --- > 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 <longli@microsoft.com> > + * > + * 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 <linux/module.h> > +#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. > +/* The local peer's maximum number of credits to grant to the peer */ > +static int receive_credit_max = 255; > +/* The remote peer's credit request of local peer */ > +static int send_credit_target = 255; > +/* The maximum single message size can be sent to remote peer */ > +static int max_send_size = 1364; > +/* The maximum fragmented upper-layer payload receive size supported */ > +static int max_fragmented_recv_size = 1024 * 1024; > +/* The maximum single-message size which can be received */ > +static int max_receive_size = 8192; > + > +/* The timeout to initiate send of a keepalive message on idle */ > +static int keep_alive_interval = 120; > + > +/* > + * User configurable initial values for RDMA transport > + * The actual values used may be lower and are limited to hardware capabilities > + */ > +/* Default maximum number of SGEs in a RDMA send/recv */ > +static int max_send_sge = SMBDIRECT_MAX_SGE; > +static int max_recv_sge = SMBDIRECT_MAX_SGE; > +/* Default maximum number of SGEs in a RDMA write/read */ > +static int max_frmr_depth = 2048; > + > +/* If payload is less than this byte, use RDMA send/recv not read/write */ > +static int rdma_readwrite_threshold = 4096; > diff --git a/fs/cifs/smbdirect.h b/fs/cifs/smbdirect.h > new file mode 100644 > index 0000000..06eeb0b > --- /dev/null > +++ b/fs/cifs/smbdirect.h > @@ -0,0 +1,20 @@ > +/* > + * Copyright (C) 2017, Microsoft Corporation. > + * > + * Author(s): Long Li <longli@microsoft.com> > + * > + * 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. > + */ > +#ifndef _SMBDIRECT_H > +#define _SMBDIRECT_H > + > +#define SMBDIRECT_MAX_SGE 16 > +#endif > -- > 2.7.4 > > -- > 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 -- Best regards, Pavel Shilovsky -- 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
PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQYXZlbCBTaGlsb3Zza3kgW21h aWx0bzpwaWFzdHJ5eXlAZ21haWwuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjksIDIw MTcgMzo0NSBQTQ0KPiBUbzogTG9uZyBMaSA8bG9uZ2xpQG1pY3Jvc29mdC5jb20+DQo+IENjOiBT dGV2ZSBGcmVuY2ggPHNmcmVuY2hAc2FtYmEub3JnPjsgbGludXgtY2lmcyA8bGludXgtDQo+IGNp ZnNAdmdlci5rZXJuZWwub3JnPjsgc2FtYmEtdGVjaG5pY2FsIDxzYW1iYS10ZWNobmljYWxAbGlz dHMuc2FtYmEub3JnPjsNCj4gS2VybmVsIE1haWxpbmcgTGlzdCA8bGludXgta2VybmVsQHZnZXIu a2VybmVsLm9yZz47IGxpbnV4LQ0KPiByZG1hQHZnZXIua2VybmVsLm9yZzsgQ2hyaXN0b3BoIEhl bGx3aWcgPGhjaEBpbmZyYWRlYWQub3JnPjsgVG9tIFRhbHBleQ0KPiA8dHRhbHBleUBtaWNyb3Nv ZnQuY29tPjsgTWF0dGhldyBXaWxjb3ggPG1hd2lsY294QG1pY3Jvc29mdC5jb20+Ow0KPiBMb25n IExpIDxsb25nbGlAbWljcm9zb2Z0LmNvbT4NCj4gU3ViamVjdDogUmU6IFtQYXRjaCB2MyAwMi8x OV0gQ0lGUzogU01CRDogQWRkIFNNQkRpcmVjdCBwcm90b2NvbCBhbmQNCj4gdHJhbnNwb3J0IGNv bnN0YW50cw0KPiANCj4gMjAxNy0wOC0yOSAxMjoyOCBHTVQtMDc6MDAgTG9uZyBMaSA8bG9uZ2xp QGV4Y2hhbmdlLm1pY3Jvc29mdC5jb20+Og0KPiA+IEZyb206IExvbmcgTGkgPGxvbmdsaUBtaWNy b3NvZnQuY29tPg0KPiA+DQo+ID4gVG8gcHJlcGFyZSBmb3IgcHJvdG9jb2wgaW1wbGVtZW50YXRp b24sIGFkZCBjb25zdGFudHMgYW5kDQo+ID4gdXNlci1jb25maWd1cmFibGUgdmFsdWVzIGluIHRo ZSBTTUJEaXJlY3QgcHJvdG9jb2wuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBMb25nIExpIDxs b25nbGlAbWljcm9zb2Z0LmNvbT4NCj4gPiAtLS0NCj4gPiAgZnMvY2lmcy9zbWJkaXJlY3QuYyB8 IDc4DQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCj4gPiAgZnMvY2lmcy9zbWJkaXJlY3QuaCB8IDIwICsrKysrKysrKysrKysrDQo+ID4g IDIgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZnMvY2lmcy9zbWJkaXJlY3QuYyAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZnMvY2lmcy9z bWJkaXJlY3QuaA0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2ZzL2NpZnMvc21iZGlyZWN0LmMgYi9m cy9jaWZzL3NtYmRpcmVjdC5jIG5ldyBmaWxlIG1vZGUNCj4gPiAxMDA2NDQgaW5kZXggMDAwMDAw MC4uZDc4NWJjMQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9mcy9jaWZzL3NtYmRpcmVj dC5jDQo+ID4gQEAgLTAsMCArMSw3OCBAQA0KPiA+ICsvKg0KPiA+ICsgKiAgIENvcHlyaWdodCAo QykgMjAxNywgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiA+ICsgKg0KPiA+ICsgKiAgIEF1dGhv cihzKTogTG9uZyBMaSA8bG9uZ2xpQG1pY3Jvc29mdC5jb20+DQo+ID4gKyAqDQo+ID4gKyAqICAg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7ICB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5DQo+ID4gKyAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCj4gPiArICogICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0K PiA+ICsgKiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ID4gKyAqDQo+ ID4gKyAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsDQo+ID4gKyAqICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyAgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ID4gKyAqICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlDQo+ID4gKyAqICAg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ID4gKyAq Lw0KPiA+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQo+ID4gKyNpbmNsdWRlICJzbWJkaXJl Y3QuaCINCj4gPiArI2luY2x1ZGUgImNpZnNfZGVidWcuaCINCj4gPiArDQo+ID4gKy8qIFNNQkQg dmVyc2lvbiBudW1iZXIgKi8NCj4gPiArI2RlZmluZSBTTUJEX1YxICAgICAgICAweDAxMDANCj4g PiArDQo+ID4gKy8qIFBvcnQgbnVtYmVycyBmb3IgU01CRCB0cmFuc3BvcnQgKi8NCj4gPiArI2Rl ZmluZSBTTUJfUE9SVCAgICAgICA0NDUNCj4gPiArI2RlZmluZSBTTUJEX1BPUlQgICAgICA1NDQ1 DQo+ID4gKw0KPiA+ICsvKiBBZGRyZXNzIGxvb2t1cCBhbmQgcmVzb2x2ZSB0aW1lb3V0IGluIG1z ICovDQo+ID4gKyNkZWZpbmUgUkRNQV9SRVNPTFZFX1RJTUVPVVQgICA1MDAwDQo+ID4gKw0KPiA+ ICsvKiBTTUJEIG5lZ290aWF0aW9uIHRpbWVvdXQgaW4gc2Vjb25kcyAqLyAjZGVmaW5lDQo+ID4g K1NNQkRfTkVHT1RJQVRFX1RJTUVPVVQgMTIwDQo+ID4gKw0KPiA+ICsvKiBTTUJEIG1pbmltdW0g cmVjZWl2ZSBzaXplIGFuZCBmcmFnbWVudGVkIHNpemVkIGRlZmluZWQgaW4gW01TLQ0KPiBTTUJE XSAqLw0KPiA+ICsjZGVmaW5lIFNNQkRfTUlOX1JFQ0VJVkVfU0laRSAgICAgICAgICAxMjgNCj4g PiArI2RlZmluZSBTTUJEX01JTl9GUkFHTUVOVEVEX1NJWkUgICAgICAgMTMxMDcyDQo+ID4gKw0K PiA+ICsvKg0KPiA+ICsgKiBEZWZhdWx0IG1heGltdW0gbnVtYmVyIG9mIFJETUEgcmVhZC93cml0 ZSBvdXRzdGFuZGluZyBvbiB0aGlzDQo+ID4gK2Nvbm5lY3Rpb24NCj4gPiArICogVGhpcyB2YWx1 ZSBpcyBwb3NzaWJseSBkZWNyZWFzZWQgZHVyaW5nIFFQIGNyZWF0aW9uIG9uIGhhcmR3YXJlDQo+ ID4gK2xpbWl0ICAqLw0KPiA+ICsjZGVmaW5lIFNNQkRfQ01fUkVTUE9OREVSX1JFU09VUkNFUyAg ICAzMg0KPiA+ICsNCj4gPiArLyogTWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyBvbiBkYXRhIHRy YW5zZmVyIG9wZXJhdGlvbnMgKi8NCj4gPiArI2RlZmluZSBTTUJEX0NNX1JFVFJZICAgICAgICAg ICAgICAgICAgNg0KPiA+ICsvKiBObyBuZWVkIHRvIHJldHJ5IG9uIFJlY2VpdmVyIE5vdCBSZWFk eSBzaW5jZSBTTUJEIG1hbmFnZXMgY3JlZGl0cw0KPiAqLw0KPiA+ICsjZGVmaW5lIFNNQkRfQ01f Uk5SX1JFVFJZICAgICAgICAgICAgICAwDQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBVc2VyIGNv bmZpZ3VyYWJsZSBpbml0aWFsIHZhbHVlcyBwZXIgU01CRCB0cmFuc3BvcnQgY29ubmVjdGlvbg0K PiA+ICsgKiBhcyBkZWZpbmVkIGluIFtNUy1TTUJEXSAzLjEuMS4xDQo+ID4gKyAqIFRob3NlIG1h eSBjaGFuZ2UgYWZ0ZXIgYSBTTUJEIG5lZ290aWF0aW9uICAqLw0KPiANCj4gU2luY2UgdGhlc2Ug dmFsdWUgYXJlIHBlciB0cmFuc3BvcnQgY29ubmVjdGlvbiwgd2h5IHRoZXkgYXJlIGdsb2JhbD8N Cj4gU2hvdWxkbid0IHRoZXkgYmUgaW5zaWRlIGEgc29tZSBzdHJ1Y3R1cmUgdGhhdCBpcyBjcmVh dGVkIGZvciBhIHBhcnRpY3VsYXINCj4gY29ubmVjdGlvbj8gQWxzbyB0aGUgY29uc3RhbnRzIGJl bG93IHNob3VsZCBiZSBkZWZpbmVzLg0KDQpUaG9zZSBhcmUgY29uZmlndXJhYmxlIGluaXRpYWwg dmFsdWVzIChkZWZhdWx0IHZhbHVlcykgZm9yIGFsbCBjb25uZWN0aW9ucy4NCg0KRWFjaCBjb25u ZWN0aW9uIGhhcyBpdHMgb3duIHZhbHVlcyBiYXNlZCBvbiB0aG9zZSBpbml0aWFsIHZhbHVlcy4g QnV0IGNvbm5lY3Rpb24tYmFzZWQgdmFsdWVzIGNhbiBjaGFuZ2UgYWZ0ZXIgbmVnb3RpYXRpb24g aXMgZG9uZSwgb3IgYWZ0ZXIgUkRNQSBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgYXJlIHByb2JlZC4N Cg0KPiANCj4gPiArLyogVGhlIGxvY2FsIHBlZXIncyBtYXhpbXVtIG51bWJlciBvZiBjcmVkaXRz IHRvIGdyYW50IHRvIHRoZSBwZWVyICovDQo+ID4gK3N0YXRpYyBpbnQgcmVjZWl2ZV9jcmVkaXRf bWF4ID0gMjU1Ow0KPiA+ICsvKiBUaGUgcmVtb3RlIHBlZXIncyBjcmVkaXQgcmVxdWVzdCBvZiBs b2NhbCBwZWVyICovIHN0YXRpYyBpbnQNCj4gPiArc2VuZF9jcmVkaXRfdGFyZ2V0ID0gMjU1Ow0K PiA+ICsvKiBUaGUgbWF4aW11bSBzaW5nbGUgbWVzc2FnZSBzaXplIGNhbiBiZSBzZW50IHRvIHJl bW90ZSBwZWVyICovDQo+ID4gK3N0YXRpYyBpbnQgbWF4X3NlbmRfc2l6ZSA9IDEzNjQ7DQo+ID4g Ky8qICBUaGUgbWF4aW11bSBmcmFnbWVudGVkIHVwcGVyLWxheWVyIHBheWxvYWQgcmVjZWl2ZSBz aXplIHN1cHBvcnRlZA0KPiA+ICsqLyBzdGF0aWMgaW50IG1heF9mcmFnbWVudGVkX3JlY3Zfc2l6 ZSA9IDEwMjQgKiAxMDI0Ow0KPiA+ICsvKiAgVGhlIG1heGltdW0gc2luZ2xlLW1lc3NhZ2Ugc2l6 ZSB3aGljaCBjYW4gYmUgcmVjZWl2ZWQgKi8gc3RhdGljDQo+ID4gK2ludCBtYXhfcmVjZWl2ZV9z aXplID0gODE5MjsNCj4gPiArDQo+ID4gKy8qIFRoZSB0aW1lb3V0IHRvIGluaXRpYXRlIHNlbmQg b2YgYSBrZWVwYWxpdmUgbWVzc2FnZSBvbiBpZGxlICovDQo+ID4gK3N0YXRpYyBpbnQga2VlcF9h bGl2ZV9pbnRlcnZhbCA9IDEyMDsNCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIFVzZXIgY29uZmln dXJhYmxlIGluaXRpYWwgdmFsdWVzIGZvciBSRE1BIHRyYW5zcG9ydA0KPiA+ICsgKiBUaGUgYWN0 dWFsIHZhbHVlcyB1c2VkIG1heSBiZSBsb3dlciBhbmQgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUN Cj4gPiArY2FwYWJpbGl0aWVzICAqLw0KPiA+ICsvKiBEZWZhdWx0IG1heGltdW0gbnVtYmVyIG9m IFNHRXMgaW4gYSBSRE1BIHNlbmQvcmVjdiAqLyBzdGF0aWMgaW50DQo+ID4gK21heF9zZW5kX3Nn ZSA9IFNNQkRJUkVDVF9NQVhfU0dFOyBzdGF0aWMgaW50IG1heF9yZWN2X3NnZSA9DQo+ID4gK1NN QkRJUkVDVF9NQVhfU0dFOw0KPiA+ICsvKiBEZWZhdWx0IG1heGltdW0gbnVtYmVyIG9mIFNHRXMg aW4gYSBSRE1BIHdyaXRlL3JlYWQgKi8gc3RhdGljIGludA0KPiA+ICttYXhfZnJtcl9kZXB0aCA9 IDIwNDg7DQo+ID4gKw0KPiA+ICsvKiBJZiBwYXlsb2FkIGlzIGxlc3MgdGhhbiB0aGlzIGJ5dGUs IHVzZSBSRE1BIHNlbmQvcmVjdiBub3QNCj4gPiArcmVhZC93cml0ZSAqLyBzdGF0aWMgaW50IHJk bWFfcmVhZHdyaXRlX3RocmVzaG9sZCA9IDQwOTY7DQo+ID4gZGlmZiAtLWdpdCBhL2ZzL2NpZnMv c21iZGlyZWN0LmggYi9mcy9jaWZzL3NtYmRpcmVjdC5oIG5ldyBmaWxlIG1vZGUNCj4gPiAxMDA2 NDQgaW5kZXggMDAwMDAwMC4uMDZlZWIwYg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9m cy9jaWZzL3NtYmRpcmVjdC5oDQo+ID4gQEAgLTAsMCArMSwyMCBAQA0KPiA+ICsvKg0KPiA+ICsg KiAgIENvcHlyaWdodCAoQykgMjAxNywgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiA+ICsgKg0K PiA+ICsgKiAgIEF1dGhvcihzKTogTG9uZyBMaSA8bG9uZ2xpQG1pY3Jvc29mdC5jb20+DQo+ID4g KyAqDQo+ID4gKyAqICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7ICB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQo+ID4gKyAqICAgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCj4gPiAr ICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRo ZSBMaWNlbnNlLCBvcg0KPiA+ICsgKiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uDQo+ID4gKyAqDQo+ID4gKyAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+ID4gKyAqICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyAgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ID4gKyAq ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlDQo+ID4gKyAqICAgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuDQo+ID4gKyAqLw0KPiA+ICsjaWZuZGVmIF9TTUJESVJFQ1RfSA0KPiA+ICsjZGVmaW5l IF9TTUJESVJFQ1RfSA0KPiA+ICsNCj4gPiArI2RlZmluZSBTTUJESVJFQ1RfTUFYX1NHRSAgICAg IDE2DQo+ID4gKyNlbmRpZg0KPiA+IC0tDQo+ID4gMi43LjQNCj4gPg0KPiA+IC0tDQo+ID4gVG8g dW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxp bnV4LWNpZnMiDQo+ID4gaW4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2Vy Lmtlcm5lbC5vcmcgTW9yZQ0KPiBtYWpvcmRvbW8NCj4gPiBpbmZvIGF0DQo+ID4NCj4gaHR0cHM6 Ly9uYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUy RnZnZXIuaw0KPiA+IGVybmVsLm9yZyUyRm1ham9yZG9tby0NCj4gaW5mby5odG1sJmRhdGE9MDIl N0MwMSU3Q2xvbmdsaSU0MG1pY3Jvc29mdC5jb20lDQo+ID4NCj4gN0MwNDhhYWE5MGMwNTc0OGVl MzZhODA4ZDRlZjJmOTU2NCU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkDQo+IGI0NyUN Cj4gPg0KPiA3QzElN0MwJTdDNjM2Mzk2NDM1MDM1NjYwNTk0JnNkYXRhPXFkWTRDd2paNzRXN0Fk cVRWa2xwbzhYbFdGSTYNCj4gZnhaOXkzaQ0KPiA+IGZQeVBRJTJGY2clM0QmcmVzZXJ2ZWQ9MA0K PiANCj4gDQo+IA0KPiAtLQ0KPiBCZXN0IHJlZ2FyZHMsDQo+IFBhdmVsIFNoaWxvdnNreQ0K -- 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
2017-08-29 16:00 GMT-07:00 Long Li <longli@microsoft.com>: >> -----Original Message----- >> From: Pavel Shilovsky [mailto:piastryyy@gmail.com] >> Sent: Tuesday, August 29, 2017 3:45 PM >> To: Long Li <longli@microsoft.com> >> Cc: Steve French <sfrench@samba.org>; linux-cifs <linux- >> cifs@vger.kernel.org>; samba-technical <samba-technical@lists.samba.org>; >> Kernel Mailing List <linux-kernel@vger.kernel.org>; linux- >> rdma@vger.kernel.org; Christoph Hellwig <hch@infradead.org>; Tom Talpey >> <ttalpey@microsoft.com>; Matthew Wilcox <mawilcox@microsoft.com>; >> Long Li <longli@microsoft.com> >> Subject: Re: [Patch v3 02/19] CIFS: SMBD: Add SMBDirect protocol and >> transport constants >> >> 2017-08-29 12:28 GMT-07:00 Long Li <longli@exchange.microsoft.com>: >> > From: Long Li <longli@microsoft.com> >> > >> > To prepare for protocol implementation, add constants and >> > user-configurable values in the SMBDirect protocol. >> > >> > Signed-off-by: Long Li <longli@microsoft.com> >> > --- >> > 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 <longli@microsoft.com> >> > + * >> > + * 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 <linux/module.h> >> > +#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? -- Best regards, Pavel Shilovsky -- 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
PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQYXZlbCBTaGlsb3Zza3kgW21h aWx0bzpwaWFzdHJ5eXlAZ21haWwuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAzMCwg MjAxNyAxMToxOSBBTQ0KPiBUbzogTG9uZyBMaSA8bG9uZ2xpQG1pY3Jvc29mdC5jb20+DQo+IENj OiBTdGV2ZSBGcmVuY2ggPHNmcmVuY2hAc2FtYmEub3JnPjsgbGludXgtY2lmcyA8bGludXgtDQo+ IGNpZnNAdmdlci5rZXJuZWwub3JnPjsgc2FtYmEtdGVjaG5pY2FsIDxzYW1iYS10ZWNobmljYWxA bGlzdHMuc2FtYmEub3JnPjsNCj4gS2VybmVsIE1haWxpbmcgTGlzdCA8bGludXgta2VybmVsQHZn ZXIua2VybmVsLm9yZz47IGxpbnV4LQ0KPiByZG1hQHZnZXIua2VybmVsLm9yZzsgQ2hyaXN0b3Bo IEhlbGx3aWcgPGhjaEBpbmZyYWRlYWQub3JnPjsgVG9tIFRhbHBleQ0KPiA8dHRhbHBleUBtaWNy b3NvZnQuY29tPjsgTWF0dGhldyBXaWxjb3ggPG1hd2lsY294QG1pY3Jvc29mdC5jb20+DQo+IFN1 YmplY3Q6IFJlOiBbUGF0Y2ggdjMgMDIvMTldIENJRlM6IFNNQkQ6IEFkZCBTTUJEaXJlY3QgcHJv dG9jb2wgYW5kDQo+IHRyYW5zcG9ydCBjb25zdGFudHMNCj4gDQo+IDIwMTctMDgtMjkgMTY6MDAg R01ULTA3OjAwIExvbmcgTGkgPGxvbmdsaUBtaWNyb3NvZnQuY29tPjoNCj4gPj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogUGF2ZWwgU2hpbG92c2t5IFttYWlsdG86cGlh c3RyeXl5QGdtYWlsLmNvbV0NCj4gPj4gU2VudDogVHVlc2RheSwgQXVndXN0IDI5LCAyMDE3IDM6 NDUgUE0NCj4gPj4gVG86IExvbmcgTGkgPGxvbmdsaUBtaWNyb3NvZnQuY29tPg0KPiA+PiBDYzog U3RldmUgRnJlbmNoIDxzZnJlbmNoQHNhbWJhLm9yZz47IGxpbnV4LWNpZnMgPGxpbnV4LQ0KPiA+ PiBjaWZzQHZnZXIua2VybmVsLm9yZz47IHNhbWJhLXRlY2huaWNhbA0KPiA+PiA8c2FtYmEtdGVj aG5pY2FsQGxpc3RzLnNhbWJhLm9yZz47DQo+ID4+IEtlcm5lbCBNYWlsaW5nIExpc3QgPGxpbnV4 LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBsaW51eC0NCj4gPj4gcmRtYUB2Z2VyLmtlcm5lbC5v cmc7IENocmlzdG9waCBIZWxsd2lnIDxoY2hAaW5mcmFkZWFkLm9yZz47IFRvbQ0KPiA+PiBUYWxw ZXkgPHR0YWxwZXlAbWljcm9zb2Z0LmNvbT47IE1hdHRoZXcgV2lsY294DQo+ID4+IDxtYXdpbGNv eEBtaWNyb3NvZnQuY29tPjsgTG9uZyBMaSA8bG9uZ2xpQG1pY3Jvc29mdC5jb20+DQo+ID4+IFN1 YmplY3Q6IFJlOiBbUGF0Y2ggdjMgMDIvMTldIENJRlM6IFNNQkQ6IEFkZCBTTUJEaXJlY3QgcHJv dG9jb2wgYW5kDQo+ID4+IHRyYW5zcG9ydCBjb25zdGFudHMNCj4gPj4NCj4gPj4gMjAxNy0wOC0y OSAxMjoyOCBHTVQtMDc6MDAgTG9uZyBMaSA8bG9uZ2xpQGV4Y2hhbmdlLm1pY3Jvc29mdC5jb20+ Og0KPiA+PiA+IEZyb206IExvbmcgTGkgPGxvbmdsaUBtaWNyb3NvZnQuY29tPg0KPiA+PiA+DQo+ ID4+ID4gVG8gcHJlcGFyZSBmb3IgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24sIGFkZCBjb25zdGFu dHMgYW5kDQo+ID4+ID4gdXNlci1jb25maWd1cmFibGUgdmFsdWVzIGluIHRoZSBTTUJEaXJlY3Qg cHJvdG9jb2wuDQo+ID4+ID4NCj4gPj4gPiBTaWduZWQtb2ZmLWJ5OiBMb25nIExpIDxsb25nbGlA bWljcm9zb2Z0LmNvbT4NCj4gPj4gPiAtLS0NCj4gPj4gPiAgZnMvY2lmcy9zbWJkaXJlY3QuYyB8 IDc4DQo+ID4+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysNCj4gPj4gPiAgZnMvY2lmcy9zbWJkaXJlY3QuaCB8IDIwICsrKysrKysrKysrKysr DQo+ID4+ID4gIDIgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKQ0KPiA+PiA+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZnMvY2lmcy9zbWJkaXJlY3QuYyAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ ID4+ID4gZnMvY2lmcy9zbWJkaXJlY3QuaA0KPiA+PiA+DQo+ID4+ID4gZGlmZiAtLWdpdCBhL2Zz L2NpZnMvc21iZGlyZWN0LmMgYi9mcy9jaWZzL3NtYmRpcmVjdC5jIG5ldyBmaWxlDQo+ID4+ID4g bW9kZQ0KPiA+PiA+IDEwMDY0NCBpbmRleCAwMDAwMDAwLi5kNzg1YmMxDQo+ID4+ID4gLS0tIC9k ZXYvbnVsbA0KPiA+PiA+ICsrKyBiL2ZzL2NpZnMvc21iZGlyZWN0LmMNCj4gPj4gPiBAQCAtMCww ICsxLDc4IEBADQo+ID4+ID4gKy8qDQo+ID4+ID4gKyAqICAgQ29weXJpZ2h0IChDKSAyMDE3LCBN aWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+ID4+ID4gKyAqDQo+ID4+ID4gKyAqICAgQXV0aG9yKHMp OiBMb25nIExpIDxsb25nbGlAbWljcm9zb2Z0LmNvbT4NCj4gPj4gPiArICoNCj4gPj4gPiArICog ICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgIHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkNCj4gPj4gPiArICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZA0KPiBieQ0KPiA+PiA+ICsgKiAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yDQo+ID4+ID4gKyAqICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4NCj4gPj4gPiArICoNCj4gPj4gPiArICogICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gPj4gPiArICogICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7ICB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkNCj4g b2YNCj4gPj4gPiArICogICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUNCj4gPj4gPiArICogICB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gPj4gPiArICovDQo+ID4+ID4gKyNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4NCj4gPj4gPiArI2luY2x1ZGUgInNtYmRpcmVjdC5oIg0KPiA+PiA+ICsj aW5jbHVkZSAiY2lmc19kZWJ1Zy5oIg0KPiA+PiA+ICsNCj4gPj4gPiArLyogU01CRCB2ZXJzaW9u IG51bWJlciAqLw0KPiA+PiA+ICsjZGVmaW5lIFNNQkRfVjEgICAgICAgIDB4MDEwMA0KPiA+PiA+ ICsNCj4gPj4gPiArLyogUG9ydCBudW1iZXJzIGZvciBTTUJEIHRyYW5zcG9ydCAqLw0KPiA+PiA+ ICsjZGVmaW5lIFNNQl9QT1JUICAgICAgIDQ0NQ0KPiA+PiA+ICsjZGVmaW5lIFNNQkRfUE9SVCAg ICAgIDU0NDUNCj4gPj4gPiArDQo+ID4+ID4gKy8qIEFkZHJlc3MgbG9va3VwIGFuZCByZXNvbHZl IHRpbWVvdXQgaW4gbXMgKi8NCj4gPj4gPiArI2RlZmluZSBSRE1BX1JFU09MVkVfVElNRU9VVCAg IDUwMDANCj4gPj4gPiArDQo+ID4+ID4gKy8qIFNNQkQgbmVnb3RpYXRpb24gdGltZW91dCBpbiBz ZWNvbmRzICovICNkZWZpbmUNCj4gPj4gPiArU01CRF9ORUdPVElBVEVfVElNRU9VVCAxMjANCj4g Pj4gPiArDQo+ID4+ID4gKy8qIFNNQkQgbWluaW11bSByZWNlaXZlIHNpemUgYW5kIGZyYWdtZW50 ZWQgc2l6ZWQgZGVmaW5lZCBpbiBbTVMtDQo+ID4+IFNNQkRdICovDQo+ID4+ID4gKyNkZWZpbmUg U01CRF9NSU5fUkVDRUlWRV9TSVpFICAgICAgICAgIDEyOA0KPiA+PiA+ICsjZGVmaW5lIFNNQkRf TUlOX0ZSQUdNRU5URURfU0laRSAgICAgICAxMzEwNzINCj4gPj4gPiArDQo+ID4+ID4gKy8qDQo+ ID4+ID4gKyAqIERlZmF1bHQgbWF4aW11bSBudW1iZXIgb2YgUkRNQSByZWFkL3dyaXRlIG91dHN0 YW5kaW5nIG9uIHRoaXMNCj4gPj4gPiArY29ubmVjdGlvbg0KPiA+PiA+ICsgKiBUaGlzIHZhbHVl IGlzIHBvc3NpYmx5IGRlY3JlYXNlZCBkdXJpbmcgUVAgY3JlYXRpb24gb24gaGFyZHdhcmUNCj4g Pj4gPiArbGltaXQgICovDQo+ID4+ID4gKyNkZWZpbmUgU01CRF9DTV9SRVNQT05ERVJfUkVTT1VS Q0VTICAgIDMyDQo+ID4+ID4gKw0KPiA+PiA+ICsvKiBNYXhpbXVtIG51bWJlciBvZiByZXRyaWVz IG9uIGRhdGEgdHJhbnNmZXIgb3BlcmF0aW9ucyAqLw0KPiA+PiA+ICsjZGVmaW5lIFNNQkRfQ01f UkVUUlkgICAgICAgICAgICAgICAgICA2DQo+ID4+ID4gKy8qIE5vIG5lZWQgdG8gcmV0cnkgb24g UmVjZWl2ZXIgTm90IFJlYWR5IHNpbmNlIFNNQkQgbWFuYWdlcw0KPiA+PiA+ICtjcmVkaXRzDQo+ ID4+ICovDQo+ID4+ID4gKyNkZWZpbmUgU01CRF9DTV9STlJfUkVUUlkgICAgICAgICAgICAgIDAN Cj4gPj4gPiArDQo+ID4+ID4gKy8qDQo+ID4+ID4gKyAqIFVzZXIgY29uZmlndXJhYmxlIGluaXRp YWwgdmFsdWVzIHBlciBTTUJEIHRyYW5zcG9ydCBjb25uZWN0aW9uDQo+ID4+ID4gKyAqIGFzIGRl ZmluZWQgaW4gW01TLVNNQkRdIDMuMS4xLjENCj4gPj4gPiArICogVGhvc2UgbWF5IGNoYW5nZSBh ZnRlciBhIFNNQkQgbmVnb3RpYXRpb24gICovDQo+ID4+DQo+ID4+IFNpbmNlIHRoZXNlIHZhbHVl IGFyZSBwZXIgdHJhbnNwb3J0IGNvbm5lY3Rpb24sIHdoeSB0aGV5IGFyZSBnbG9iYWw/DQo+ID4+ IFNob3VsZG4ndCB0aGV5IGJlIGluc2lkZSBhIHNvbWUgc3RydWN0dXJlIHRoYXQgaXMgY3JlYXRl ZCBmb3IgYQ0KPiA+PiBwYXJ0aWN1bGFyIGNvbm5lY3Rpb24/IEFsc28gdGhlIGNvbnN0YW50cyBi ZWxvdyBzaG91bGQgYmUgZGVmaW5lcy4NCj4gPg0KPiA+IFRob3NlIGFyZSBjb25maWd1cmFibGUg aW5pdGlhbCB2YWx1ZXMgKGRlZmF1bHQgdmFsdWVzKSBmb3IgYWxsIGNvbm5lY3Rpb25zLg0KPiA+ DQo+ID4gRWFjaCBjb25uZWN0aW9uIGhhcyBpdHMgb3duIHZhbHVlcyBiYXNlZCBvbiB0aG9zZSBp bml0aWFsIHZhbHVlcy4gQnV0DQo+IGNvbm5lY3Rpb24tYmFzZWQgdmFsdWVzIGNhbiBjaGFuZ2Ug YWZ0ZXIgbmVnb3RpYXRpb24gaXMgZG9uZSwgb3IgYWZ0ZXINCj4gUkRNQSBoYXJkd2FyZSBjYXBh YmlsaXRpZXMgYXJlIHByb2JlZC4NCj4gDQo+IElmIHRoZXNlIGFyZSBjb25maWd1cmFibGUgdmFs dWVzLCBsZXQncyBhZGQgYSB3YXkgdG8gYWN0dWFsbHkgY29uZmlndXJlIHRoZW0uDQo+IFRocm91 Z2ggL3Byb2M/DQoNCllvdSBtZWFuIHB1dHRpbmcgdGhlbSBpbiAvcHJvYy9mcy9jaWZzPw0KDQpP ciBob3cgYWJvdXQgbW9kdWxlX3BhcmFtPw0KDQo+IA0KPiAtLQ0KPiBCZXN0IHJlZ2FyZHMsDQo+ IFBhdmVsIFNoaWxvdnNreQ0K -- 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
2017-08-30 11:24 GMT-07:00 Long Li <longli@microsoft.com>: >> -----Original Message----- >> From: Pavel Shilovsky [mailto:piastryyy@gmail.com] >> Sent: Wednesday, August 30, 2017 11:19 AM >> To: Long Li <longli@microsoft.com> >> Cc: Steve French <sfrench@samba.org>; linux-cifs <linux- >> cifs@vger.kernel.org>; samba-technical <samba-technical@lists.samba.org>; >> Kernel Mailing List <linux-kernel@vger.kernel.org>; linux- >> rdma@vger.kernel.org; Christoph Hellwig <hch@infradead.org>; Tom Talpey >> <ttalpey@microsoft.com>; Matthew Wilcox <mawilcox@microsoft.com> >> Subject: Re: [Patch v3 02/19] CIFS: SMBD: Add SMBDirect protocol and >> transport constants >> >> 2017-08-29 16:00 GMT-07:00 Long Li <longli@microsoft.com>: >> >> -----Original Message----- >> >> From: Pavel Shilovsky [mailto:piastryyy@gmail.com] >> >> Sent: Tuesday, August 29, 2017 3:45 PM >> >> To: Long Li <longli@microsoft.com> >> >> Cc: Steve French <sfrench@samba.org>; linux-cifs <linux- >> >> cifs@vger.kernel.org>; samba-technical >> >> <samba-technical@lists.samba.org>; >> >> Kernel Mailing List <linux-kernel@vger.kernel.org>; linux- >> >> rdma@vger.kernel.org; Christoph Hellwig <hch@infradead.org>; Tom >> >> Talpey <ttalpey@microsoft.com>; Matthew Wilcox >> >> <mawilcox@microsoft.com>; Long Li <longli@microsoft.com> >> >> Subject: Re: [Patch v3 02/19] CIFS: SMBD: Add SMBDirect protocol and >> >> transport constants >> >> >> >> 2017-08-29 12:28 GMT-07:00 Long Li <longli@exchange.microsoft.com>: >> >> > From: Long Li <longli@microsoft.com> >> >> > >> >> > To prepare for protocol implementation, add constants and >> >> > user-configurable values in the SMBDirect protocol. >> >> > >> >> > Signed-off-by: Long Li <longli@microsoft.com> >> >> > --- >> >> > 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 <longli@microsoft.com> >> >> > + * >> >> > + * 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 <linux/module.h> >> >> > +#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 -- 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
Probably easier to configure in /proc/fs/cifs than as module param On Wed, Aug 30, 2017 at 1:30 PM, Pavel Shilovsky via samba-technical <samba-technical@lists.samba.org> wrote: > 2017-08-30 11:24 GMT-07:00 Long Li <longli@microsoft.com>: >>> -----Original Message----- >>> From: Pavel Shilovsky [mailto:piastryyy@gmail.com] >>> Sent: Wednesday, August 30, 2017 11:19 AM >>> To: Long Li <longli@microsoft.com> >>> Cc: Steve French <sfrench@samba.org>; linux-cifs <linux- >>> cifs@vger.kernel.org>; samba-technical <samba-technical@lists.samba.org>; >>> Kernel Mailing List <linux-kernel@vger.kernel.org>; linux- >>> rdma@vger.kernel.org; Christoph Hellwig <hch@infradead.org>; Tom Talpey >>> <ttalpey@microsoft.com>; Matthew Wilcox <mawilcox@microsoft.com> >>> Subject: Re: [Patch v3 02/19] CIFS: SMBD: Add SMBDirect protocol and >>> transport constants >>> >>> 2017-08-29 16:00 GMT-07:00 Long Li <longli@microsoft.com>: >>> >> -----Original Message----- >>> >> From: Pavel Shilovsky [mailto:piastryyy@gmail.com] >>> >> Sent: Tuesday, August 29, 2017 3:45 PM >>> >> To: Long Li <longli@microsoft.com> >>> >> Cc: Steve French <sfrench@samba.org>; linux-cifs <linux- >>> >> cifs@vger.kernel.org>; samba-technical >>> >> <samba-technical@lists.samba.org>; >>> >> Kernel Mailing List <linux-kernel@vger.kernel.org>; linux- >>> >> rdma@vger.kernel.org; Christoph Hellwig <hch@infradead.org>; Tom >>> >> Talpey <ttalpey@microsoft.com>; Matthew Wilcox >>> >> <mawilcox@microsoft.com>; Long Li <longli@microsoft.com> >>> >> Subject: Re: [Patch v3 02/19] CIFS: SMBD: Add SMBDirect protocol and >>> >> transport constants >>> >> >>> >> 2017-08-29 12:28 GMT-07:00 Long Li <longli@exchange.microsoft.com>: >>> >> > From: Long Li <longli@microsoft.com> >>> >> > >>> >> > To prepare for protocol implementation, add constants and >>> >> > user-configurable values in the SMBDirect protocol. >>> >> > >>> >> > Signed-off-by: Long Li <longli@microsoft.com> >>> >> > --- >>> >> > 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 <longli@microsoft.com> >>> >> > + * >>> >> > + * 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 <linux/module.h> >>> >> > +#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 >
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 <longli@microsoft.com> + * + * 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 <linux/module.h> +#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 + */ +/* The local peer's maximum number of credits to grant to the peer */ +static int receive_credit_max = 255; +/* The remote peer's credit request of local peer */ +static int send_credit_target = 255; +/* The maximum single message size can be sent to remote peer */ +static int max_send_size = 1364; +/* The maximum fragmented upper-layer payload receive size supported */ +static int max_fragmented_recv_size = 1024 * 1024; +/* The maximum single-message size which can be received */ +static int max_receive_size = 8192; + +/* The timeout to initiate send of a keepalive message on idle */ +static int keep_alive_interval = 120; + +/* + * User configurable initial values for RDMA transport + * The actual values used may be lower and are limited to hardware capabilities + */ +/* Default maximum number of SGEs in a RDMA send/recv */ +static int max_send_sge = SMBDIRECT_MAX_SGE; +static int max_recv_sge = SMBDIRECT_MAX_SGE; +/* Default maximum number of SGEs in a RDMA write/read */ +static int max_frmr_depth = 2048; + +/* If payload is less than this byte, use RDMA send/recv not read/write */ +static int rdma_readwrite_threshold = 4096; diff --git a/fs/cifs/smbdirect.h b/fs/cifs/smbdirect.h new file mode 100644 index 0000000..06eeb0b --- /dev/null +++ b/fs/cifs/smbdirect.h @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2017, Microsoft Corporation. + * + * Author(s): Long Li <longli@microsoft.com> + * + * 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. + */ +#ifndef _SMBDIRECT_H +#define _SMBDIRECT_H + +#define SMBDIRECT_MAX_SGE 16 +#endif