From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liran Liss Subject: RE: [PATCH v5 00/27] IB/Verbs: IB Management Helpers Date: Fri, 24 Apr 2015 14:44:29 +0000 Message-ID: References: <5534B8C9.506@profitbricks.com> <55375C10.8070901@profitbricks.com> <5538A034.4030904@profitbricks.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5538A034.4030904-EIkl63zCoXaH+58JC4qpiA@public.gmane.org> Content-Language: en-US Sender: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Michael Wang , Roland Dreier , Sean Hefty , Hal Rosenstock , "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org" Cc: Tom Tucker , Steve Wise , Hoang-Nam Nguyen , "raisch-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org" , Mike Marciniszyn , Eli Cohen , Faisal Latif , Jack Morgenstein , Or Gerlitz , Haggai Eran , Ira Weiny , Tom Talpey , Jason Gunthorpe , Doug Ledford List-Id: linux-rdma@vger.kernel.org PiBGcm9tOiBNaWNoYWVsIFdhbmcgW21haWx0bzp5dW4ud2FuZ0Bwcm9maXRicmlja3MuY29tXQ0K DQoNCj4gW3NuaXBdDQo+ID4NCj4gPiBEZXBlbmRzIG9uIHdobyBpcyAid2UiLg0KPiA+IEZvciBV TFBzLCB5b3UgYXJlIHByb2JhYmx5IHJpZ2h0Lg0KPiA+DQo+ID4gSG93ZXZlciwgY29yZSBzZXJ2 aWNlcyAoZS5nLiwgbWFkIG1hbmFnZW1lbnQsIENNLCBTQSkgZG8gY2FyZSBhYm91dA0KPiB2YXJp b3VzIGRldGFpbHMuDQo+ID4gSW4gc29tZSBjYXNlcywgd2hlcmUgaXQgZG9lc24ndCBtYXR0ZXIs IHRoaXMgY29kZSB3aWxsIHVzZSBtYW5hZ2VtZW50DQo+IGhlbHBlcnMuDQo+ID4gSW4gb3RoZXIg Y2FzZXMsIHRoaXMgY29kZSB3aWxsIGluc3BlY3QgbGluaywgdHJhbnNwb3J0LCBhbmQgbm9kZSBh dHRyaWJ1dGVzIG9mDQo+IHJkbWEgZGV2aWNlcy4NCj4gPg0KPiA+IEZvciBleGFtcGxlLCB0aGUg Q00gY29kZSBoYXMgc3BlY2lmaWMgY29kZSBwYXRocyBmb3IgSUIsIFJvQ0UsIGFuZCBpV0FSUC4N Cj4gPiBUaGVyZSBpcyBubyBvdGhlciBDTSBjb2RlOyB0aGVyZSBpcyBubyByZWFzb24gdG8gYWJz dHJhY3QgJ0NNJy4gVGhpcw0KPiA+IGNvZGUgd2lsbCBoYXZlIGNvZGUgcGF0aHMgdGhhdCBkZXBl bmQgb24gdmFyaW91cyBzcGVjaWZpYyBkZXRhaWxzLg0KPiANCj4gVGhhdCdzIGV4YWN0bHkgd2hh dCB3ZSB3YW50IHRvIHN0b3AsIHdlIGhhdmUgY2xhc3NpZmllZCB0aGUgQ00gdG8gSUIgYW5kDQo+ IElXQVJQIG5vdyA6LSkNCj4NCg0KV2UgZG9uJ3Qgd2FudCB0byBzdG9wIGNvZGUgYnJhbmNoZXMg dGhhdCBhcmUgbm90IGFic3RyYWN0aW9ucyBidXQgcmF0aGVyIGRlcGVuZA0Kb24gdGhlIHNwZWNp ZmljIHRlY2hub2xvZ3khDQpUaGVyZSBpcyBubyBnZW5lcmljICJpV0FSUCBDTSIgLSBvbmx5IG9u ZS4NClRoZXJlIGlzIG5vIGdlbmVyaWMgIlJPQ0UgQ00iIC0gb25seSBvbmUuDQpUaGVyZSBpcyBu byBnZW5lcmljICJJQiBDTSIgLSBvbmx5IG9uZS4NCg0KQXQgdGhlIENNIGhpZ2gtbGV2ZWwgKGku ZS4sIHdoZXRoZXIgYW4gaWJfZGV2IHBvcnQgcmVnaXN0ZXJzIGFuIElCIGNsaWVudCksIHlvdSBj b3VsZCBjb25zaWRlcg0KYW4gcmRtYV9oYXNfY20oKSBjYWxsLCBidXQgdGhpcyB0aGUgb25seSBw bGFjZSBpbiB0aGUgY29kZSB0aGF0IHRoaXMgY2hlY2sgd2lsbCBiZSBjYWxsZWQhDQpIZW5jZSwg bm8gbmVlZCBmb3IgYSBnZW5lcmljIGNoZWNrLg0KDQpZb3Ugd2FudCB0byBzdG9wIGFic3RyYWN0 IGNvZGUgdGhhdCB1c2VzIElCIGNvcmUgaW5mcmFzdHJ1Y3R1cmUuDQoNCj4gPg0KPiA+PiBUaGlz IG5ldyB0cmFuc3BvcnQgaXMgb25seSB1bmRlcnN0YW5kIGJ5IGNvcmUtbGF5ZXIgY3VycmVudGx5 LCBmb3INCj4gPj4gdXNlci1sYXllciB3ZSBzdGlsbCByZXNlcnZlIHRoZSBvbGQgdHJhbnNwb3J0 IGZvciB0aGVtLCBuZXh0IHN0ZXAgaXMNCj4gPj4gdG8gdXNlIGJpdG1hc2sgaW5zdGVhZCBvZiB0 cmFuc3BvcnQsIGF0IHRoYXQgdGltZSB3ZSBjYW4gZXJhc2UgdGhlDQo+ID4+IG5ldyB0cmFuc3Bv cnQgYW5kIG1ha2UgdGhlIHdob2xlIHN0dWZmIHVzZWQgYnkgdXNlci1sYXllciBvbmx5IDotKQ0K PiA+Pg0KPiA+DQo+ID4gSSBhbSBub3Qgc3VyZSB0aGF0IHdlIG5lZWQgYSBiaXQgbWFzayBhdCBh bGwuDQo+ID4gWW91ciBoZWxwZXJzIGFscmVhZHkgcHJvdmlkZSBhbGwgdGhlIHVzZWZ1bCBhYnN0 cmFjdGlvbnMsIHdoaWNoIGJvdGggY29yZQ0KPiBhbmQgVUxQcyBjYWxsIGRpcmVjdGx5Lg0KPiA+ IEFsbCB0aGUgaW5mb3JtYXRpb24gaXMgaW5mZXJyZWQgZGlyZWN0bHkgZnJvbSA8bGluaywgdHJh bnNwb3J0LCBub2RlPiB0dXBsZXMuDQo+ID4NCj4gPiBTb21lIG9mIHRoZSB1c2VyLXNwYWNlIHRv b2xzIG5lZWQgKmV4YWN0bHkqIHRoZSBzYW1lIHJlYXNvbmluZy4NCj4gPiBGb3IgZXhhbXBsZSwg bWFuYWdlbWVudCB0b29scyBtYW5hZ2Ugc3BlY2lmaWMgdGVjaG5vbG9naWVzIGFuZA0KPiBwcm90 b2NvbHMsIG5vdCBzb21lIGFic3RyYWN0aW9uLg0KPiA+DQo+ID4gU28sIEZvciB1c2VyLXNwYWNl LCB3ZSBjYW4gdGhpbmsgYWJvdXQgZXhwb3NpbmcgZXhhY3RseSB0aGUgc2FtZQ0KPiA+IGhlbHBl ciBmcmFtZXdvcmssIHdoaWxlIHByb3ZpZGluZyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB0 aGUgZXhpc3RpbmcNCj4gaW50ZXJmYWNlcy4NCj4gDQo+IEknZCByZWFsbHkgbGlrZSB0byBwdXQg dGhlIHRvcGljIG9uIGJpdG1hc2sgYW5kIHVzZXIgYXBwIHJlZm9ybSBpbnRvIGRpZmZlcmVudA0K PiB0aHJlYWQuLi4NCj4gDQo+IGJpdG1hc2sgc2hvdWxkIGJlIG5leHQgdG9waWMsIHRoZXJlIGFy ZSBtYW55IGRpc2N1c3Npb24gYWxyZWFkeSwgYnV0IEkgY291bGQNCj4gaW1hZ2luZyBmYXIgbW9y ZSBkaXNjdXNzaW9uIHRoZXJlLCB0aGUgdXNlciByZWZvcm0gc2hvdWxkIGJlIHRoZSBsYXN0IHN0 ZXAsDQo+IGFmdGVyIGV2ZXJ5IHRoaW5nIGluIGtlcm5lbCBzZXR0bGVkIGRvd24gOi0pDQo+IA0K DQpPSw0KDQo+ID4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gRGV0YWlsZWQgcmVtYXJrcw0KPiA+Pj4g PT09PT09PT09PT09PT0NCj4gPj4+DQo+ID4+PiAxKSBUaGUgaW50cm9kdWN0aW9uIG9mIGNhcF8q XyooKSBzdHVmZiBzaG91bGQgaGF2ZSBiZWVuIGludHJvZHVjZWQNCj4gPj4+IGRpcmVjdGx5DQo+ ID4+IGluIHBhdGNoIDAyLzI3Lg0KPiA+Pj4gVGhpcyBiYWNrLWFuZC1mb3J0aCBiZXR3ZWVuIHJk bWFfaWJfb3JfaWJvZSgpIGFuZCBjYXBfKiBpcyBjb25mdXNpbmcNCj4gPj4+IGFuZA0KPiA+PiBp bmNyZWFzZXMgdGhlIG51bWJlciBvZiBwYXRjaGVzIGluIHRoZSBwYXRjaC1zZXQuDQo+ID4+PiBE byB0aGlzIGFuZCByZW1vdmUgcGF0Y2hlcyAxNi0yNC4NCj4gPj4NCj4gPj4gV2UgaGF2ZSBzb21l IGRpc2N1c3Npb24gYWJvdXQgY29tcHJlc3MgdGhlIHBhdGNoIHNldCwgbWVyZ2UgdGhlDQo+ID4+ IHJlZm9ybSBhbmQgaW50cm9kdWNpbmcgcGF0Y2ggd2lsbCBtaXggdGhlIGNvbmNlcHQgKGxpa2Ug dGhlIGVhcmxpZXINCj4gPj4gdmVyc2lvbiksIElNSE8gaXQgd2lsbCBpbmNyZWFzZSB0aGUgZGlm ZmljdWx0eSBvZiByZXZpZXcuLi4NCj4gPj4NCj4gPj4gQW5kIG5vdyBzaW5jZSBtYW55IHJldmll dyBhbHJlYWR5IGJlZW4gZG9uZSwgaXQncyBub3Qgd2lzZSB0byBjaGFuZ2UNCj4gPj4gdGhlIHdo b2xlIHN0cnVjdHVyZSBvZiBwYXRjaCBzZXQgSU1ITy4uLg0KPiA+Pg0KPiA+DQo+ID4gSSB0aGlu ayBpdCBpcyBiZWNhdXNlIHlvdSBhcmUgY29uZGl0aW9uaW5nIGNvZGUgb24gb25lIHRoaW5nLCBh bmQgdGhlbg0KPiA+IGNvbmRpdGlvbmluZyB0aGUgc2FtZSBjb2RlIG9uIGFub3RoZXIgdGhpbmcu DQo+ID4NCj4gPiBUaGlzIGlzIGNvbmZ1c2luZy4NCj4gPg0KPiA+IE9uY2Ugd2UgZ2V0IG91ciBh YnN0cmFjdGlvbnMgY29ycmVjdCAoaS5lLiwgdGhlIHJpZ2h0IGhlbHBlcg0KPiA+IGZ1bmN0aW9u cyksIHlvdSByZXBsYWNlIHRoZSBleGlzdGluZyBsb2dpYyB3aXRoIHRoZSBzdWl0YWJsZSBoZWxw ZXIgdXAtZnJvbnQuDQo+IA0KPiBXZSBuZWVkIHRvIGNsYXNzaWZ5IGFuZCBpbnRlZ3JhdGUgdGhl IGNvbmNlcHQgaW50byBtZ210IGhlbHBlciwgdGhhdCB3b3VsZA0KPiBiZSB2ZXJ5IGhlbHBmdWwg Zm9yIGZ1cnRoZXIgcmVmb3JtLCByZWZvcm0gZm9sbG93ZWQgYnkgaW50ZWdyYXRpb24gc291bmRz IG5vdA0KPiB0aGF0IGJhZCwgY29ycmVjdD8NCj4gDQoNClRoZSBwcm9ibGVtIGlzIHRoYXQgaXQg aXMgaGFyZCB0byBmb2xsb3cgdGhlIHJlYXNvbmluZyBmb3IgdGhlIGZpcnN0IHVzZSBjb25zdW1l cg0KY29kZSB3aXRoIHRoZSBpbi1jb21wbGV0ZSBoZWxwZXIgZnJhbWUtd29yay4NCg0KPiA+DQo+ ID4+Pg0KPiA+Pj4gMilUaGUgbmFtZSByZG1hX3RlY2hfKiBpcyBsYW1lLg0KPiA+Pj4gcmRtYV90 cmFuc3BvcnRfKigpLCBhZGhlcmluZyB0byB0aGUgYWJvdmUgKCopIHJlbWFyaywgaXMgbXVjaCBi ZXR0ZXIuDQo+ID4+PiBGb3IgZXhhbXBsZSwgYm90aCBJQiBhbmQgUk9DRSAqZG8qIHVzZSB0aGUg c2FtZSB0cmFuc3BvcnQuDQo+ID4+DQo+ID4+IFdlIGhhdmUgc29tZSBkaXNjdXNzaW9uIG9uIHRo YXQgdG9vLCB1c2UgdHJhbnNwb3J0IG1lYW5zIGdvaW5nIGJhY2suLi4NCj4gPj4NCj4gPg0KPiA+ IE5vLg0KPiA+IFRoZSBleGlzdGluZyBub3Rpb24gb2YgdHJhbnNwb3J0IHdhcyBjb3JyZWN0LiBJ dCB3YXMgdGhlIG5vZGUgdHlwZSB0aGF0DQo+IHdhc24ndC4NCj4gPiBBbmQgaW4gYW55IGNhc2Ug dGhlIG5ldyBoZWxwZXJzIGRpZG4ndCB1c2UgaXQuDQo+ID4NCj4gPiBXZSBuZWVkIHRoZSBvcmln aW5hbCBtZWFuaW5nIG9mIHRyYW5zcG9ydCAtIHNlZSBteSByZXNwb25zZSB0byBJcmEuDQo+ID4g SSBwcm9wb3NlIHJlcGxhY2luZyByZG1hX25vZGVfZ2V0X3RyYW5zcG9ydCgpIHdpdGggdGhlIGZv bGxvd2luZyBoZWxwZXJzOg0KPiA+IC0gcmRtYV9nZXRfdHJhbnNwb3J0KCkNCj4gPiAtIHJkbWFf aXNfaWJfdHJhbnNwb3J0KCkNCj4gPiAtIHJkbWFfaXNfaXdhcnBfdHJhbnNwb3J0KCkNCj4gDQo+ IFdlIGNhbiBjaGFuZ2UgdGhlIG5hbWUgYXQgYW55dGltZSwgdGVjaC90cmFuc3BvcnQvcHJvdG9j b2wvc3RhbmRhcmQsIGp1c3QNCj4gb25lIHBhdGNoIGxhdGVyIGNhbiBlYXNpbHkgY2hhbmdlIGl0 IGFuZCBzdGFydCB0aGUgdG9waWMgb2YgbmFtaW5nLCBhbnkgb2YNCj4gdGhlc2UgbmFtZSB3aWxs IHVuc2F0aXNmaWVkIHNvbWVvbmUgQUZBSUssIEknZCBsaWtlIHRvIHN1Z2dlc3Qgd2UgY29uc2lk ZXINCj4gdGhpcyBhcyBhIG1hcmsgdGVtcG9yYXJpbHkgYW5kIGZvY3VzIG9uIHRoZSBsb2dpY2Fs IGlzc3VlLg0KDQpTdXJlLg0KDQpUaGUgbG9naWNhbCBpc3N1ZSBpczoNCg0KMS4gV2UgbmVlZCB0 aGUgZXhpc3Rpbmcgbm90aW9uIG9mIHRyYW5zcG9ydCwgbWVhbmluZyAiYSBidW5jaCBvZiBMNCto ZWFkZXJzICsgc2VtYW50aWNzIHByZXNlbnRlZCB0byBhcHBzIi4NCjIuIFdlIG1pZ2h0IG5lZWQg YW4gKmFkZGl0aW9uYWwqIG5vdGlvbiBvZiAicmRtYV9wcm90b2NvbCIsIHdoaWNoIGRlc2lnbmF0 ZXMgYSBjb21wbGV0ZSB3aXJlLWZvcm1hdDogTDItTDQrIGluY2x1ZGluZy4NClRoaXMgY291bGQg YmUgbGF0ZXIgYSBiaXRtYXNrLCBhIG1hbmFnZW1lbnQgaGVscGVyLCB3aGF0ZXZlci4NCkN1cnJl bnRseSwgSSBkb24ndCBzZWUgYW55dGhpbmcgaW4gdGhlIGV4aXN0aW5nIGNvZGUgdGhhdCB3b3Vs ZCBjYWxsIHN1Y2ggaGVscGVycy4NCg0KPiANCj4gPiAtIC4uLg0KPiA+DQo+ID4+Pg0KPiA+Pj4g MykgVGhlIG5hbWUgY2FwXyogYXMgaXQgaXMgdXNlZCBhYm92ZSBpcyBub3QgYWNjdXJhdGUuDQo+ ID4+PiBZb3UgdXNlIGl0IHRvIGRlc2NyaWJlIHRlY2hub2xvZ3kgY2hhcmFjdGVyaXN0aWNzIHJh dGhlciB0aGFuDQo+ID4+PiBleHRlbmRhYmxlDQo+ID4+IGNhcGFiaWxpdGllcy4NCj4gPj4+IEkg d291bGQgc3VnZ2VzdCBoYXZpbmcgYSBzaW5nbGUgY29udmVudGlvbiBmb3IgYWxsIGhlbHBlcnMs IHN1Y2ggYXMNCj4gPj4gcmRtYV9oYXNfKigpIGFuZCByZG1hX2lzXyooKS4NCj4gPj4+IEZvciBl eGFtcGxlOiBjYXBfaWJfc21pKCkgPT0+IHJkbWFfaGFzX3NtaSgpLg0KPiA+Pg0KPiA+PiBUaGF0 IG1lYW5zIGdvaW5nIGJhY2sgdG9vLi4uDQo+ID4NCj4gPiBTZWUgcmVzcG9uc2UgdG8gSXJhICho dHRwczovL2xrbWwub3JnL2xrbWwvMjAxNS80LzIxLzk1MSkuDQo+ID4NCj4gPg0KPiA+Pg0KPiA+ Pj4NCj4gPj4+IDQpIFJlbW92ZSBhbGwgY2FwYWJpbGl0aWVzIHRoYXQgZG8gbm90IGludHJvZHVj ZSBhbnkgZGlzdGluY3Rpb24gaW4NCj4gPj4+IHRoZQ0KPiA+PiBjdXJyZW50IGNvZGUuDQo+ID4+ PiBXZSBjYW4gYWRkIHRoZW0gYXMgbmVlZGVkIGxhdGVyLg0KPiA+Pj4gVGhpcyBtZWFucyByZW1v dmUgcGF0Y2hlczoNCj4gPj4+IC0gW1BBVENIIHY1IDIyLzI3XSBJQi9WZXJiczogVXNlIG1hbmFn ZW1lbnQgaGVscGVyIGNhcF9pcG9pYigpIOKAkyBhbGwNCj4gPj4+IElCIGRldmljZXMgc3VwcG9y dCBpcG9pYg0KPiA+Pj4gLSBbUEFUQ0ggdjUgMjQvMjddIElCL1ZlcmJzOiBVc2UgbWFuYWdlbWVu dCBoZWxwZXIgY2FwX2FmX2liKCkg4oCTIGFsbA0KPiA+Pj4gSUINCj4gPj4gZGV2aWNlcyBzdXBw b3J0IEFGX0lCLg0KPiA+Pj4NCj4gPj4+IE9uIHRoZSBvdGhlciBoYW5kOg0KPiA+Pj4gLSByZG1h X2hhc19tdWx0aWNhc3QoKSBtYWtlcyBzZW5zZSwgc2luY2UgaVdBUlAgZG9lc27igJl0IHN1cHBv cnQgaXQuDQo+ID4+PiAtIGNhcF9pYl9zYSgpIG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gY3V0IGNvZGUg ZXZlbiBmdXJ0aGVyIGluIHRoZSBDTUEsDQo+ID4+PiBzaW5jZQ0KPiA+PiBSb0NFIGhhcyBhIEdT SSBidXQgbm8gU0EuDQo+ID4+DQo+ID4+IFdlIGhhdmUgZGlzY3Vzc2lvbiBvbiBkZWZpbmUgdGhl c2UgaGVscGVycyBwcmV2aW91c2x5LCBhZ2FpbiwgbmFtZSBpcw0KPiA+PiBub3QgcmVhbGx5IGEg cHJvYmxlbSwgSSB3b3VsZCByYXRoZXIgdG8gc2VlIHN1Y2ggY2hhbmdlcyBpbiB0aGUNCj4gPj4g Zm9sbG93aW5nIHNlcmllcyBhZnRlciB0aGlzIG9uZSB3b3JraW5nIHN0YWJseSA6LSkNCj4gPj4N Cj4gPg0KPiA+IFRoZSBuYW1lcyBhcmUgbm90IGNyaXRpY2FsLiBUaGlzIGNvbW1lbnQgaXMgYWJv dXQgaW50cm9kdWNpbmcgaGVscGVycw0KPiA+IHRoYXQgYXJlIGRvIG5vdCBpbnRyb2R1Y2UgYW55 IG5ldyBzZW1hbnRpYyBub3Rpb24gaW4gdGhlIGN1cnJlbnQgcGF0Y2gtc2V0Lg0KPiA+DQo+ID4g Y2FwX2lwb2liKCksIGZvciBleGFtcGxlLCBpcyBicmFpbi1kZWFkIGJlY2F1c2Ugb25seSBhIHNp bmdsZQ0KPiA+IHRlY2hub2xvZ3kgKGFzIG9mIG5vdykgZW5hYmxlcyBpdDogSW5maW5pYmFuZC4N Cj4gDQo+IFRoaXMgd2lsbCBiZSBkcm9wcGVkIGluIG5leHQgdmVyc2lvbiA6LSkNCj4gDQo+ID4N Cj4gPj4+DQo+ID4+PiA1KSBEbyBubyBtb2RpZnkgcGh5c19zdGF0ZV9zaG93KCkgaW4gW1BBVENI IHY1IDA5LzI3XSBJQi9WZXJiczoNCj4gPj4+IFJlZm9ybSBJQi1jb3JlIHZlcmJzL3V2ZXJic19j bWQvc3lzZnMgSXQgKmlzKiB0aGUgbGluayBsYXllciENCj4gPj4NCj4gPj4gQWN0dWFsbHkgbm90 aGluZyBjaGFuZ2VkIGFmdGVyIHRoZSBtb2RpZnksIHRoZSBwcmV2IHB1cnBvc2UgaXQgdG8NCj4g Pj4gZWxpbWluYXRlIHRoZSBsaW5rIGxheWVyIGhlbHBlcnMuDQo+ID4+DQo+ID4+IEJ1dCBub3cg d2UgYXJlIG5vdCBnb2luZyB0byByZW1vdmUgdGhlIGhlbHBlciBhbnkgbW9yZSwgc28gbGV0J3Mg ZHJvcA0KPiA+PiB0aGlzIG1vZGlmaWNhdGlvbiBpbiBuZXh0IHZlcnNpb24gOi0pDQo+ID4+DQo+ ID4NCj4gPiBZb3UgZG9uJ3QgYWRkIG1vZGlmaWNhdGlvbnMganVzdCB0byBkcm9wIHRoZW0gbGF0 ZXIuDQo+ID4gRG9uJ3QgYWRkIHRoZW0gaW4gdGhlIGZpcnN0IHBsYWNlIQ0KPiA+DQo+ID4gVGhp cyBwYXRjaC1zZXQgd2lsbCByZW1haW4gZm9yZXZlciBpbiB0aGUga2VybmVsIGNvbW1pdCBsb2cg LSB3ZSB3YW50DQo+ID4gaXQgdG8gYmUgYXMgc2VsZi1leHBsYWluaW5nIGFuZCBjb2hlcmVudCBh cyBwb3NzaWJsZS4NCj4gPg0KPiA+IFJlbW92ZSB0aGlzLg0KPiANCj4gV2hhdCBpIG1lYW4gaXMg dGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjYuLi4NCj4gDQo+ID4NCj4gPj4+DQo+ID4+PiA2KSBS ZW1vdmUgY2FwX3JlYWRfbXVsdGlfc2dlDQo+ID4+PiBJdCBpcyBub3QgZGV2aWNlL3BvcnQgZmVh dHVyZSwgYnV0IGEgdHJhbnNwb3J0IGNhcGFiaWxpdHkuDQo+ID4+PiBVc2UgcmRtYV9pc19pd2Fy cF90cmFuc3BvcnQoKSBpbnN0ZWFkLCBvciBpbnRyb2R1Y2UgYSBuZXcgdHJhbnNwb3J0DQo+ID4+ PiBmbGFnIGluDQo+ID4+ICdlbnVtIGliX2RldmljZV9jYXBfZmxhZ3MnLg0KPiA+Pj4NCj4gPj4+ IDcpIFJlbW92ZSBbUEFUQ0ggdjUgMjUvMjddIElCL1ZlcmJzOiBVc2UgbWFuYWdlbWVudCBoZWxw ZXINCj4gPj4gY2FwX2V0aF9haCgpLg0KPiA+Pj4gQWRkcmVzcyBoYW5kbGVzIHRoYXQgcmVmZXIg dG8gRXRoZXJuZXQgbGlua3MgYWx3YXlzIGhhdmUgRXRoZXJuZXQNCj4gPj4gYWRkcmVzc2luZy4N Cj4gPj4+DQo+ID4+PiBJbiB0aGUgQ01BIGNvZGUsIHVzaW5nIHJkbWFfdGVjaF9pYm9lKCkgaXMg anVzdCBmaW5lLiBUaGlzIGlzIGhvdw0KPiA+Pj4geW91IGRlZmluZQ0KPiA+PiBjYXBfZXRoX2Fo KCkgYW55d2F5Lg0KPiA+Pj4gQ3VycmVudGx5LCB0aGlzIHBhdGNoIGp1c3QgYWRkcyBjbHV0dGVy Lg0KPiA+Pg0KPiA+PiBUaGVyZSBhcmUgYWxzbyBzb21lIGRpc2N1c3Npb24gb24gdGhlc2UgaGVs cGVycywgZHJvcCB0aGVtIG1lYW5zDQo+ID4+IGdvaW5nIGJhY2suLg0KPiA+Pg0KPiA+DQo+ID4g QmFjayB0byB3aGVyZT8gTWFuYWdlbWVudCBoZWxwZXJzIGFyZSBhIG5ldyBjb25jZXB0LiBMZXQn cyBnZXQgdGhlbQ0KPiByaWdodC4NCj4gDQo+IEJhY2sgdG8gb25lIHBvaW50IGR1cmluZyB2MX52 NS4NCj4gDQo+ID4NCj4gPj4gVGhlIHRlY2ggaGVscGVyIGlzIG5vdCBlbm91Z2ggdG8gZXhwbGFp biB0aGUgbWFuYWdlbWVudCBwdXJwb3NlLCBhbmQNCj4gPj4gdGhpcyBjYW4gYmUgdGhlIHdyYXBw ZXIgZm9yIGJpdG1hc2sgc3R1ZmYgdG9vLg0KPiA+Pg0KPiA+DQo+ID4gQXMgSSBzYWlkLCBJIGFt IG5vdCBzdXJlIHRoYXQgd2Ugd2lsbCBuZWVkIGFueSBiaXRtYXNrcy4NCj4gPiBBbHNvIHNlZSBy ZXNwb25zZSB0byBJcmEgKGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDE1LzQvMjEvOTUxKS4NCj4g DQo+IEJldHRlciBkaXNjdXNzZWQgaW4gYW5vdGhlciB0aHJlYWQuDQo+IA0KPiA+DQo+ID4+Pg0K PiA+Pj4gOCkgUmVtb3ZlIHBhdGNoIFtQQVRDSCB2NSAyNi8yN10gSUIvVmVyYnM6IENsZWFuIHVw IHJkbWFfaWJfb3JfaWJvZSgpLg0KPiA+Pj4gV2UgZG8gbmVlZCBhIHRyYW5zcG9ydCBxdWFsaWZp ZXIsIGFzIGV4ZW1wbGlmaWVkIGluIGNvbW1lbnQgNSkNCj4gPj4+IGFib3ZlLCBhbmQNCj4gPj4g Zm9yIGEgY29tcGxldGUgY2xlYW4gbW9kZWwuDQo+ID4+PiBUaGlzIGlzIGFmdGVyIHJlbmFtaW5n IHRoZSBmdW5jdGlvbiB0byByZG1hX2lzX2liX3RyYW5zcG9ydCgpLi4uDQo+ID4+DQo+ID4+IFRo aXMgbWVhbnMgZ29pbmcgYmFjayBhZ2Fpbi4uLiByZG1hX2lzX2liX3RyYW5zcG9ydCgpIGhhcyBi ZWVuIHVzZWQNCj4gPj4gcHJldmlvdXNseS4NCj4gPj4NCj4gPj4gVGhpcyBoZWxwZXIgaXMganVz dCB0byBtYWtlIHRoZSByZXZpZXcgbW9yZSBlYXNpZXIsIHdlIHdvbid0IG5lZWQgaXQNCj4gPj4g aW50ZXJuYWxseSwgbm90IHRvIG1lbnRpb24gYWZ0ZXIgYml0bWFzayB3YXMgaW50cm9kdWNlZCA6 LSkNCj4gPj4NCj4gPg0KPiA+IFRoZSBzYW1lLi4uDQo+ID4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4g UHV0dGluZyBpdCBhbGwgdG9nZXRoZXINCj4gPj4+ID09PT09PT09PT09PT09PT09PQ0KPiA+Pj4N Cj4gPj4+IFdlIGFyZSBsZWZ0IHdpdGggdGhlIGZvbGxvd2luZyBoZWxwZXJzOg0KPiA+Pj4gLSBy ZG1hX2lzX2liX3RyYW5zcG9ydCgpDQo+ID4+PiAtIHJkbWFfaXNfaXdhcnBfdHJhbnNwb3J0KCkN Cj4gPj4+IC0gcmRtYV9pc191c25pY190cmFuc3BvcnQoKQ0KPiA+Pj4gLSByZG1hX2lzX2lib2Uo KQ0KPiA+Pj4gLSByZG1hX2hhc19tYWQoKQ0KPiA+Pj4gLSByZG1hX2hhc19zbWkoKQ0KPiA+Pj4g LSByZG1hX2hhc19nc2koKSAtIGNvbXBsZW1lbnRzIHNtaTsgY2FuIGJlIHVzZWQgYnkgdGhlIG1h ZCBjb2RlIGZvcg0KPiA+Pj4gY2xhcml0eQ0KPiA+Pj4gLSByZG1hX2hhc19zYSgpDQo+ID4+PiAt IHJkbWFfaGFzX2NtKCkNCj4gPj4+IC0gcmRtYV9oYXNfbWNhc3QoKQ0KPiA+Pg0KPiA+PiBJIHRo aW5rIHdlIGNhbiBwdXQgdGhlIGRpc2N1c3Npb24gb24gbmFtZSBhbmQgbmV3IGhlbHBlcnMgaW4g ZnV0dXJlLA0KPiA+PiBjdXJyZW50bHkgbGV0J3MgZm9jdXMgb24gdGhlc2UgYmFzaWMgcmVmb3Jt IGFuZCBtYWtlIHRoZW0gd29ya2luZw0KPiA+PiBzdGFibHkgOy0pDQo+ID4NCj4gPiBJdCdzIG5v dCBqdXN0IHRoZSBuYW1lcywgaXQncyB0aGVpciBzZW1hbnRpY3MuDQo+ID4gQW55IHByb2JsZW1z IHdpdGggdGhlIG5hbWVzIHByb3Bvc2VkIGFib3ZlPw0KPiANCj4gVGhlc2Ugd2VyZSBvbmNlIHVz ZWQgaW4gb2xkIHZlcnNpb24sIGFnYWluLCBuYW1lIGNhbid0IHNhdGlzZmllZCBhbnlvbmUgYXQN Cj4gdGhpcyBtb21lbnQgYW5kIEknZCBsaWtlIHRvIGRpc2N1c3MgdGhpcyBhZnRlciB0aGUgbG9n aWNhbCB3YXMgcmlnaHQsIEkgcmVhbGx5DQo+IGRvbid0IHdhbnQgZm9sa3MgdG8gZm9jdXMgb24g dGhpcyBpc3N1ZSBzaW5jZSBpdCB3b24ndCBicm9rZW4gYW55dGhpbmcgYW5kIGNhbg0KPiBiZSBl YXNpbHkgY2hhbmdlZCBvbmNlIHdlIGhhdmUgdGhlIGFncmVlbWVudC4NCj4gDQo+IFJlZ2FyZHMs DQo+IE1pY2hhZWwgV2FuZw0KPiANCg0KT0sNCg0KPiA+DQo+ID4+DQo+ID4+IFJlZ2FyZHMsDQo+ ID4+IE1pY2hhZWwgV2FuZw0KPiA+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pj4gU3ViamVjdDogW1BB VENIIHY1IDAwLzI3XSBJQi9WZXJiczogSUIgTWFuYWdlbWVudCBIZWxwZXJzDQo+ID4+Pj4NCj4g Pj4+Pg0KPiA+Pj4+IFNpbmNlIHY0Og0KPiA+Pj4+ICAgKiBUaGFua3MgZm9yIHRoZSBjb21tZW50 cyBmcm9tIEhhbCwgU2VhbiwgVG9tLCBPciBHZXJsaXR6LCBKYXNvbiwNCj4gPj4+PiAgICAgUm9s YW5kLCBJcmEgYW5kIFN0ZXZlIDotKSBQbGVhc2UgcmVtaW5kIG1lIGlmIGFueXRoaW5nIG1pc3Nl ZCA6LVANCj4gPj4+PiAgICogRml4IGxvZ2ljYWwgaXNzdWUgaW5zaWRlIDMjLCAxNCMNCj4gPj4+ PiAgICogUmVmaW5lIDMjLCA0IywgNSMgd2l0aCBsYWJlbCAnZnJlZScNCj4gPj4+PiAgICogUmV3 b3JrIDEwIyB0byBzdG9wIHVzaW5nIHBvcnQgMSB3aGVuIHBvcnQgYWxyZWFkeSBhc3NpZ25lZA0K PiA+Pj4+DQo+ID4+Pj4gVGhlcmUgYXJlIHBsZW50eSBvZiBsZW5ndGh5IGNvZGUgdG8gY2hlY2sg dGhlIHRyYW5zcG9ydCB0eXBlIG9mIElCDQo+ID4+Pj4gZGV2aWNlLCBvciB0aGUgbGluayBsYXll ciB0eXBlIG9mIGl0J3MgcG9ydCwgYnV0IGFjdHVhbGx5IHdlIGFyZQ0KPiA+Pj4+IGp1c3Qgc3Bl Y3VsYXRpbmcgd2hldGhlciBhIHBhcnRpY3VsYXIgbWFuYWdlbWVudC9mZWF0dXJlIGlzDQo+ID4+ Pj4gc3VwcG9ydGVkIGJ5IHRoZQ0KPiA+PiBkZXZpY2UvcG9ydC4NCj4gPj4+Pg0KPiA+Pj4+IFRo dXMgaW5zdGVhZCBvZiBpbmZlcnJpbmcsIHdlIHNob3VsZCBoYXZlIG91ciBvd24gbWVjaGFuaXNt IGZvciBJQg0KPiA+Pj4+IG1hbmFnZW1lbnQgY2FwYWJpbGl0eS9wcm90b2NvbC9mZWF0dXJlIGNo ZWNraW5nLCBzZXZlcmFsIHByb3Bvc2Fscw0KPiA+PiBiZWxvdy4NCj4gPj4+Pg0KPiA+Pj4+IFRo aXMgcGF0Y2ggc2V0IHdpbGwgcmVmb3JtIHRoZSBtZXRob2Qgb2YgZ2V0dGluZyB0cmFuc3BvcnQg dHlwZSwgd2UNCj4gPj4+PiB3aWxsIG5vdyB1c2luZyBxdWVyeV90cmFuc3BvcnQoKSBpbnN0ZWFk IG9mIGluZmVycmluZyBmcm9tDQo+ID4+Pj4gdHJhbnNwb3J0IGFuZCBsaW5rIGxheWVyIHJlc3Bl Y3RpdmVseSwgYWxzbyB3ZSBkZWZpbmVkIHRoZSBuZXcNCj4gPj4+PiB0cmFuc3BvcnQgdHlwZSB0 byBtYWtlIHRoZSBjb25jZXB0IG1vcmUgcmVhc29uYWJsZS4NCj4gPj4+Pg0KPiA+Pj4+IE1hcHBp bmcgTGlzdDoNCj4gPj4+PiAJCW5vZGUtdHlwZQlsaW5rLWxheWVyCW9sZC10cmFuc3BvcnQJbmV3 LXRyYW5zcG9ydA0KPiA+Pj4+IG5lcwkJUk5JQwkJRVRICQlJV0FSUA0KPiAJSVdBUlANCj4gPj4+ PiBhbXNvMTEwMAlSTklDCQlFVEgJCUlXQVJQCQlJV0FSUA0KPiA+Pj4+IGN4Z2IzICAgCVJOSUMJ CUVUSAkJSVdBUlAJCUlXQVJQDQo+ID4+Pj4gY3hnYjQgICAJUk5JQwkJRVRICQlJV0FSUAkJSVdB UlANCj4gPj4+PiB1c25pYyAgIAlVU05JQ19VRFAJRVRICQlVU05JQ19VRFAJVVNOSUNfVURQDQo+ ID4+Pj4gb2NyZG1hICAJSUJfQ0EJCUVUSAkJSUIJCUlCT0UNCj4gPj4+PiBtbHg0ICAgIAlJQl9D QQkJSUIvRVRICQlJQgkJSUIvSUJPRQ0KPiA+Pj4+IG1seDUgICAgCUlCX0NBCQlJQgkJSUIJCUlC DQo+ID4+Pj4gZWhjYSAgICAJSUJfQ0EJCUlCCQlJQgkJSUINCj4gPj4+PiBpcGF0aCAgIAlJQl9D QQkJSUIJCUlCCQlJQg0KPiA+Pj4+IG10aGNhICAgCUlCX0NBCQlJQgkJSUIJCUlCDQo+ID4+Pj4g cWliICAgICAJSUJfQ0EJCUlCCQlJQgkJSUINCj4gPj4+Pg0KPiA+Pj4+IEZvciBleGFtcGxlOg0K PiA+Pj4+IAlpZiAodHJhbnNwb3J0ID09IElCKSAmJiAobGluay1sYXllciA9PSBFVEgpIHdpbGwg bm93IGJlY29tZToNCj4gPj4+PiAJaWYgKHF1ZXJ5X3RyYW5zcG9ydCgpID09IElCT0UpDQo+ID4+ Pj4NCj4gPj4+PiBUaHVzIHdlIHdpbGwgYmUgYWJsZSB0byBnZXQgcmlkIG9mIHRoZSByZXNwZWN0 aXZlIHRyYW5zcG9ydCBhbmQNCj4gPj4+PiBsaW5rLWxheWVyIGNoZWNraW5nLCBhbmQgaXQgd2ls bCBoZWxwIHVzIHRvIGFkZCBuZXcNCj4gPj4+PiBwcm90b2NvbC9UZWNobm9sb2d5IChsaWtlIE9Q QSkgbW9yZSBlYXNpZXIsIGFsc28gd2l0aCB0aGUNCj4gPj4+PiBpbnRyb2R1Y2VkIG1hbmFnZW1l bnQgaGVscGVycywgSUIgbWFuYWdlbWVudCBsb2dpY2FsIHdpbGwgYmUgbW9yZQ0KPiA+Pj4+IGNs ZWFyIGFuZCBlYXNpZXINCj4gPj4gZm9yIGV4dGVuZGluZy4NCj4gPj4+Pg0KPiA+Pj4+IEhpZ2hs aWdodHM6DQo+ID4+Pj4gICAgIFRoZSBwYXRjaCBzZXQgY292ZXJlZCBhIHdpZGUgcmFuZ2Ugb2Yg SUIgc3R1ZmYsIHRodXMgZm9yIHRob3NlIHdobyBhcmUNCj4gPj4+PiAgICAgZmFtaWxpYXIgd2l0 aCB0aGUgcGFydGljdWxhciBwYXJ0LCB5b3VyIHN1Z2dlc3Rpb24gd291bGQgYmUNCj4gPj4+PiBp bnZhbHVhYmxlIDstKQ0KPiA+Pj4+DQo+ID4+Pj4gICAgIFBhdGNoIDEjfjE1IyBpbmNsdWRlZCBh bGwgdGhlIGxvZ2ljYWwgcmVmb3JtLCAxNiN+MjUjIGludHJvZHVjZWQgdGhlDQo+ID4+Pj4gICAg IG1hbmFnZW1lbnQgaGVscGVycywgMjYjfjI3IyBkbyBjbGVhbiB1cC4NCj4gPj4+Pg0KPiA+Pj4+ ICAgICBQYXRjaGVzIGhhdmVuJ3QgYmVlbiB0ZXN0ZWQgeWV0LCB3ZSBhcHByZWNpYXRlIGlmIGFu eSBvbmUgd2hvDQo+ID4+Pj4gaGF2ZQ0KPiA+PiB0aGVzZQ0KPiA+Pj4+ICAgICBIVyB3aWxsaW5n IHRvIHByb3ZpZGUgaGlzIFRlc3RlZC1ieSA6LSkNCj4gPj4+Pg0KPiA+Pj4+ICAgICBEb3VnIHN1 Z2dlc3RlZCB0aGUgYml0bWFzayBtZWNoYW5pc206DQo+ID4+Pj4gCWh0dHBzOi8vd3d3Lm1haWwt YXJjaGl2ZS5jb20vbGludXgtDQo+ID4+Pj4gcmRtYUB2Z2VyLmtlcm5lbC5vcmcvbXNnMjM3NjUu aHRtbA0KPiA+Pj4+ICAgICB3aGljaCBjb3VsZCBiZSB0aGUgcGxhbiBmb3IgZnV0dXJlIHJlZm9y bWluZywgd2UgcHJlZmVyIHRoYXQgdG8NCj4gPj4+PiBiZQ0KPiA+PiBhbm90aGVyDQo+ID4+Pj4g ICAgIHNlcmllcyB3aGljaCBmb2N1cyBvbiBzZW1hbnRpYyBhbmQgcGVyZm9ybWFuY2UuDQo+ID4+ Pj4NCj4gPj4+PiAgICAgVGhpcyBwYXRjaC1zZXQgaXMgc29tZXdoYXQgJ2Jsb2F0ZWQnIG5vdyBh bmQgaXQgbWF5IGJlIGEgZ29vZA0KPiA+Pj4+IHRpbWluZw0KPiA+PiBmb3INCj4gPj4+PiAgICAg c3RhZ2luZywgSSdkIGxpa2UgdG8gc3VnZ2VzdCB3ZSBmb2N1cyBvbiBpbXByb3ZpbmcgZXhpc3Rl ZA0KPiA+Pj4+IGhlbHBlcnMgYW5kDQo+ID4+IHB1c2gNCj4gPj4+PiAgICAgYWxsIHRoZSBmdXJ0 aGVyIHJlZm9ybXMgaW50byBuZXh0IHNlcmllcyA7LSkNCj4gPj4+Pg0KPiA+Pj4+IFByb3Bvc2Fs czoNCj4gPj4+PiAgICAgU2VhbjoNCj4gPj4+PiAJaHR0cHM6Ly93d3cubWFpbC1hcmNoaXZlLmNv bS9saW51eC0NCj4gPj4+PiByZG1hQHZnZXIua2VybmVsLm9yZy9tc2cyMzMzOS5odG1sDQo+ID4+ Pj4gICAgIERvdWc6DQo+ID4+Pj4gCWh0dHBzOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vbGludXgt DQo+ID4+Pj4gcmRtYUB2Z2VyLmtlcm5lbC5vcmcvbXNnMjM0MTguaHRtbA0KPiA+Pj4+IAlodHRw czovL3d3dy5tYWlsLWFyY2hpdmUuY29tL2xpbnV4LQ0KPiA+Pj4+IHJkbWFAdmdlci5rZXJuZWwu b3JnL21zZzIzNzY1Lmh0bWwNCj4gPj4+PiAgICAgSmFzb246DQo+ID4+Pj4gCWh0dHBzOi8vd3d3 Lm1haWwtYXJjaGl2ZS5jb20vbGludXgtDQo+ID4+Pj4gcmRtYUB2Z2VyLmtlcm5lbC5vcmcvbXNn MjM0MjUuaHRtbA0KPiA+Pj4+DQo+ID4+Pj4gTWljaGFlbCBXYW5nICgyNyk6DQo+ID4+Pj4gICAg IElCL1ZlcmJzOiBJbXBsZW1lbnQgbmV3IGNhbGxiYWNrIHF1ZXJ5X3RyYW5zcG9ydCgpDQo+ID4+ Pj4gICAgIElCL1ZlcmJzOiBJbXBsZW1lbnQgcmF3IG1hbmFnZW1lbnQgaGVscGVycw0KPiA+Pj4+ ICAgICBJQi9WZXJiczogUmVmb3JtIElCLWNvcmUgbWFkL2FnZW50L3VzZXJfbWFkDQo+ID4+Pj4g ICAgIElCL1ZlcmJzOiBSZWZvcm0gSUItY29yZSBjbQ0KPiA+Pj4+ICAgICBJQi9WZXJiczogUmVm b3JtIElCLWNvcmUgc2FfcXVlcnkNCj4gPj4+PiAgICAgSUIvVmVyYnM6IFJlZm9ybSBJQi1jb3Jl IG11bHRpY2FzdA0KPiA+Pj4+ICAgICBJQi9WZXJiczogUmVmb3JtIElCLXVscCBpcG9pYg0KPiA+ Pj4+ICAgICBJQi9WZXJiczogUmVmb3JtIElCLXVscCB4cHJ0cmRtYQ0KPiA+Pj4+ICAgICBJQi9W ZXJiczogUmVmb3JtIElCLWNvcmUgdmVyYnMvdXZlcmJzX2NtZC9zeXNmcw0KPiA+Pj4+ICAgICBJ Qi9WZXJiczogUmVmb3JtIGNtIHJlbGF0ZWQgcGFydCBpbiBJQi1jb3JlIGNtYS91Y20NCj4gPj4+ PiAgICAgSUIvVmVyYnM6IFJlZm9ybSByb3V0ZSByZWxhdGVkIHBhcnQgaW4gSUItY29yZSBjbWEN Cj4gPj4+PiAgICAgSUIvVmVyYnM6IFJlZm9ybSBtY2FzdCByZWxhdGVkIHBhcnQgaW4gSUItY29y ZSBjbWENCj4gPj4+PiAgICAgSUIvVmVyYnM6IFJlc2VydmUgbGVnYWN5IHRyYW5zcG9ydCB0eXBl IGluICdkZXZfYWRkcicNCj4gPj4+PiAgICAgSUIvVmVyYnM6IFJlZm9ybSBjbWFfYWNxdWlyZV9k ZXYoKQ0KPiA+Pj4+ICAgICBJQi9WZXJiczogUmVmb3JtIHJlc3QgcGFydCBpbiBJQi1jb3JlIGNt YQ0KPiA+Pj4+ICAgICBJQi9WZXJiczogVXNlIG1hbmFnZW1lbnQgaGVscGVyIGNhcF9pYl9tYWQo KQ0KPiA+Pj4+ICAgICBJQi9WZXJiczogVXNlIG1hbmFnZW1lbnQgaGVscGVyIGNhcF9pYl9zbWko KQ0KPiA+Pj4+ICAgICBJQi9WZXJiczogVXNlIG1hbmFnZW1lbnQgaGVscGVyIGNhcF9pYl9jbSgp DQo+ID4+Pj4gICAgIElCL1ZlcmJzOiBVc2UgbWFuYWdlbWVudCBoZWxwZXIgY2FwX2l3X2NtKCkN Cj4gPj4+PiAgICAgSUIvVmVyYnM6IFVzZSBtYW5hZ2VtZW50IGhlbHBlciBjYXBfaWJfc2EoKQ0K PiA+Pj4+ICAgICBJQi9WZXJiczogVXNlIG1hbmFnZW1lbnQgaGVscGVyIGNhcF9pYl9tY2FzdCgp DQo+ID4+Pj4gICAgIElCL1ZlcmJzOiBVc2UgbWFuYWdlbWVudCBoZWxwZXIgY2FwX2lwb2liKCkN Cj4gPj4+PiAgICAgSUIvVmVyYnM6IFVzZSBtYW5hZ2VtZW50IGhlbHBlciBjYXBfcmVhZF9tdWx0 aV9zZ2UoKQ0KPiA+Pj4+ICAgICBJQi9WZXJiczogVXNlIG1hbmFnZW1lbnQgaGVscGVyIGNhcF9h Zl9pYigpDQo+ID4+Pj4gICAgIElCL1ZlcmJzOiBVc2UgbWFuYWdlbWVudCBoZWxwZXIgY2FwX2V0 aF9haCgpDQo+ID4+Pj4gICAgIElCL1ZlcmJzOiBDbGVhbiB1cCByZG1hX2liX29yX2lib2UoKQ0K PiA+Pj4+ICAgICBJQi9WZXJiczogQ2xlYW51cCByZG1hX25vZGVfZ2V0X3RyYW5zcG9ydCgpDQo+ ID4+Pj4NCj4gPj4+PiAtLS0NCj4gPj4+PiAgZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWdlbnQu YyAgICAgICAgICAgICAgfCAgICA0DQo+ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2Nt LmMgICAgICAgICAgICAgICAgIHwgICAyNiArLQ0KPiA+Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQv Y29yZS9jbWEuYyAgICAgICAgICAgICAgICB8ICAzMjggKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tDQo+ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jICAgICAgICAgICAg IHwgICAgMQ0KPiA+Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWQuYyAgICAgICAgICAg ICAgICB8ICAgNTEgKystLQ0KPiA+Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQvY29yZS9tdWx0aWNh c3QuYyAgICAgICAgICB8ICAgMTggLQ0KPiA+Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQvY29yZS9z YV9xdWVyeS5jICAgICAgICAgICB8ICAgNDEgKy0tDQo+ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFu ZC9jb3JlL3N5c2ZzLmMgICAgICAgICAgICAgIHwgICAgOA0KPiA+Pj4+ICBkcml2ZXJzL2luZmlu aWJhbmQvY29yZS91Y20uYyAgICAgICAgICAgICAgICB8ICAgIDUNCj4gPj4+PiAgZHJpdmVycy9p bmZpbmliYW5kL2NvcmUvdWNtYS5jICAgICAgICAgICAgICAgfCAgIDI3IC0tDQo+ID4+Pj4gIGRy aXZlcnMvaW5maW5pYmFuZC9jb3JlL3VzZXJfbWFkLmMgICAgICAgICAgIHwgICAzMiArLQ0KPiA+ Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfY21kLmMgICAgICAgICB8ICAgIDYN Cj4gPj4+PiAgZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdmVyYnMuYyAgICAgICAgICAgICAgfCAg IDMzIC0tDQo+ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMl9wcm92aWRl ci5jIHwgICAgNw0KPiA+Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92 aWRlci5jICB8ICAgIDcNCj4gPj4+PiAgZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2I0L3Byb3Zp ZGVyLmMgICAgICAgfCAgICA3DQo+ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2Vo Y2FfaGNhLmMgICAgICAgIHwgICAgNg0KPiA+Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQvaHcvZWhj YS9laGNhX2l2ZXJicy5oICAgICB8ICAgIDMNCj4gPj4+PiAgZHJpdmVycy9pbmZpbmliYW5kL2h3 L2VoY2EvZWhjYV9tYWluLmMgICAgICAgfCAgICAxDQo+ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFu ZC9ody9pcGF0aC9pcGF0aF92ZXJicy5jICAgIHwgICAgNw0KPiA+Pj4+ICBkcml2ZXJzL2luZmlu aWJhbmQvaHcvbWx4NC9tYWluLmMgICAgICAgICAgICB8ICAgMTANCj4gPj4+PiAgZHJpdmVycy9p bmZpbmliYW5kL2h3L21seDUvbWFpbi5jICAgICAgICAgICAgfCAgICA3DQo+ID4+Pj4gIGRyaXZl cnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRlci5jIHwgICAgNw0KPiA+Pj4+ICBk cml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc192ZXJicy5jICAgICAgICB8ICAgIDYNCj4gPj4+ PiAgZHJpdmVycy9pbmZpbmliYW5kL2h3L29jcmRtYS9vY3JkbWFfbWFpbi5jICAgfCAgICAxDQo+ ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFuZC9ody9vY3JkbWEvb2NyZG1hX3ZlcmJzLmMgIHwgICAg Ng0KPiA+Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQvaHcvb2NyZG1hL29jcmRtYV92ZXJicy5oICB8 ICAgIDMNCj4gPj4+PiAgZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdmVyYnMuYyAgICAg ICAgfCAgICA3DQo+ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9t YWluLmMgIHwgICAgMQ0KPiA+Pj4+ICBkcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNf aWJfdmVyYnMuYyB8ICAgIDYNCj4gPj4+PiAgZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3Vz bmljX2liX3ZlcmJzLmggfCAgICAyDQo+ID4+Pj4gIGRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBv aWIvaXBvaWJfbWFpbi5jICAgIHwgICAxNyAtDQo+ID4+Pj4gIGluY2x1ZGUvcmRtYS9pYl92ZXJi cy5oICAgICAgICAgICAgICAgICAgICAgIHwgIDIwNCArKysrKysrKysrKysrKystDQo+ID4+Pj4g IG5ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWFfcmVjdmZyb20uYyAgICAgIHwgICAgNg0KPiA+ Pj4+ICBuZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19yZG1hX3RyYW5zcG9ydC5jICAgICB8ICAgNTEg Ky0tLQ0KPiA+Pj4+ICAzNSBmaWxlcyBjaGFuZ2VkLCA1ODQgaW5zZXJ0aW9ucygrKSwgMzY4IGRl bGV0aW9ucygtKQ0KPiA+Pj4+IC0tDQo+ID4+Pj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxp c3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXJkbWEiDQo+ID4+Pj4gaW4gdGhl IGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcgTW9yZQ0KPiA+ Pj4+IG1ham9yZG9tbyBpbmZvIGF0IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWlu Zm8uaHRtbA0K -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964983AbbDXOol (ORCPT ); Fri, 24 Apr 2015 10:44:41 -0400 Received: from mail-db3on0067.outbound.protection.outlook.com ([157.55.234.67]:49440 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754034AbbDXOod (ORCPT ); Fri, 24 Apr 2015 10:44:33 -0400 From: Liran Liss To: Michael Wang , Roland Dreier , Sean Hefty , Hal Rosenstock , "linux-rdma@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "hal@dev.mellanox.co.il" CC: Tom Tucker , Steve Wise , Hoang-Nam Nguyen , "raisch@de.ibm.com" , Mike Marciniszyn , Eli Cohen , Faisal Latif , Jack Morgenstein , "Or Gerlitz" , Haggai Eran , "Ira Weiny" , Tom Talpey , Jason Gunthorpe , Doug Ledford Subject: RE: [PATCH v5 00/27] IB/Verbs: IB Management Helpers Thread-Topic: [PATCH v5 00/27] IB/Verbs: IB Management Helpers Thread-Index: AQHQe0QWgYjx3AmeeEu2Ae1BasUTY51YB1mAgACvMwCAACpLcIABWB0AgAIHe7A= Date: Fri, 24 Apr 2015 14:44:29 +0000 Message-ID: References: <5534B8C9.506@profitbricks.com> <55375C10.8070901@profitbricks.com> <5538A034.4030904@profitbricks.com> In-Reply-To: <5538A034.4030904@profitbricks.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [85.250.13.154] authentication-results: profitbricks.com; dkim=none (message not signed) header.d=none; x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(42134001)(42139001);SRVR:DB4PR05MB448; x-forefront-antispam-report: BMV:1;SFV:NSPM;SFS:(10009020)(6009001)(51914003)(51704005)(501624003)(106116001)(40100003)(77156002)(62966003)(87936001)(54356999)(86362001)(2201001)(122556002)(76176999)(102836002)(2656002)(46102003)(2900100001)(50986999)(33656002)(93886004)(2501003)(5001770100001)(19580405001)(2950100001)(66066001)(15975445007)(19580395003)(74316001)(92566002)(76576001)(4001450100001)(422495003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB4PR05MB448;H:DB4PR05MB0863.eurprd05.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(601004)(5002010)(5005006)(3002001);SRVR:DB4PR05MB448;BCL:0;PCL:0;RULEID:;SRVR:DB4PR05MB448; x-forefront-prvs: 05568D1FF7 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2015 14:44:29.7001 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR05MB448 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id t3OEiopH001346 > From: Michael Wang [mailto:yun.wang@profitbricks.com] > [snip] > > > > Depends on who is "we". > > For ULPs, you are probably right. > > > > However, core services (e.g., mad management, CM, SA) do care about > various details. > > In some cases, where it doesn't matter, this code will use management > helpers. > > In other cases, this code will inspect link, transport, and node attributes of > rdma devices. > > > > For example, the CM code has specific code paths for IB, RoCE, and iWARP. > > There is no other CM code; there is no reason to abstract 'CM'. This > > code will have code paths that depend on various specific details. > > That's exactly what we want to stop, we have classified the CM to IB and > IWARP now :-) > We don't want to stop code branches that are not abstractions but rather depend on the specific technology! There is no generic "iWARP CM" - only one. There is no generic "ROCE CM" - only one. There is no generic "IB CM" - only one. At the CM high-level (i.e., whether an ib_dev port registers an IB client), you could consider an rdma_has_cm() call, but this the only place in the code that this check will be called! Hence, no need for a generic check. You want to stop abstract code that uses IB core infrastructure. > > > >> This new transport is only understand by core-layer currently, for > >> user-layer we still reserve the old transport for them, next step is > >> to use bitmask instead of transport, at that time we can erase the > >> new transport and make the whole stuff used by user-layer only :-) > >> > > > > I am not sure that we need a bit mask at all. > > Your helpers already provide all the useful abstractions, which both core > and ULPs call directly. > > All the information is inferred directly from tuples. > > > > Some of the user-space tools need *exactly* the same reasoning. > > For example, management tools manage specific technologies and > protocols, not some abstraction. > > > > So, For user-space, we can think about exposing exactly the same > > helper framework, while providing backward compatibility for the existing > interfaces. > > I'd really like to put the topic on bitmask and user app reform into different > thread... > > bitmask should be next topic, there are many discussion already, but I could > imaging far more discussion there, the user reform should be the last step, > after every thing in kernel settled down :-) > OK > > > >>> > >>> > >>> Detailed remarks > >>> ============== > >>> > >>> 1) The introduction of cap_*_*() stuff should have been introduced > >>> directly > >> in patch 02/27. > >>> This back-and-forth between rdma_ib_or_iboe() and cap_* is confusing > >>> and > >> increases the number of patches in the patch-set. > >>> Do this and remove patches 16-24. > >> > >> We have some discussion about compress the patch set, merge the > >> reform and introducing patch will mix the concept (like the earlier > >> version), IMHO it will increase the difficulty of review... > >> > >> And now since many review already been done, it's not wise to change > >> the whole structure of patch set IMHO... > >> > > > > I think it is because you are conditioning code on one thing, and then > > conditioning the same code on another thing. > > > > This is confusing. > > > > Once we get our abstractions correct (i.e., the right helper > > functions), you replace the existing logic with the suitable helper up-front. > > We need to classify and integrate the concept into mgmt helper, that would > be very helpful for further reform, reform followed by integration sounds not > that bad, correct? > The problem is that it is hard to follow the reasoning for the first use consumer code with the in-complete helper frame-work. > > > >>> > >>> 2)The name rdma_tech_* is lame. > >>> rdma_transport_*(), adhering to the above (*) remark, is much better. > >>> For example, both IB and ROCE *do* use the same transport. > >> > >> We have some discussion on that too, use transport means going back... > >> > > > > No. > > The existing notion of transport was correct. It was the node type that > wasn't. > > And in any case the new helpers didn't use it. > > > > We need the original meaning of transport - see my response to Ira. > > I propose replacing rdma_node_get_transport() with the following helpers: > > - rdma_get_transport() > > - rdma_is_ib_transport() > > - rdma_is_iwarp_transport() > > We can change the name at anytime, tech/transport/protocol/standard, just > one patch later can easily change it and start the topic of naming, any of > these name will unsatisfied someone AFAIK, I'd like to suggest we consider > this as a mark temporarily and focus on the logical issue. Sure. The logical issue is: 1. We need the existing notion of transport, meaning "a bunch of L4+headers + semantics presented to apps". 2. We might need an *additional* notion of "rdma_protocol", which designates a complete wire-format: L2-L4+ including. This could be later a bitmask, a management helper, whatever. Currently, I don't see anything in the existing code that would call such helpers. > > > - ... > > > >>> > >>> 3) The name cap_* as it is used above is not accurate. > >>> You use it to describe technology characteristics rather than > >>> extendable > >> capabilities. > >>> I would suggest having a single convention for all helpers, such as > >> rdma_has_*() and rdma_is_*(). > >>> For example: cap_ib_smi() ==> rdma_has_smi(). > >> > >> That means going back too... > > > > See response to Ira (https://lkml.org/lkml/2015/4/21/951). > > > > > >> > >>> > >>> 4) Remove all capabilities that do not introduce any distinction in > >>> the > >> current code. > >>> We can add them as needed later. > >>> This means remove patches: > >>> - [PATCH v5 22/27] IB/Verbs: Use management helper cap_ipoib() – all > >>> IB devices support ipoib > >>> - [PATCH v5 24/27] IB/Verbs: Use management helper cap_af_ib() – all > >>> IB > >> devices support AF_IB. > >>> > >>> On the other hand: > >>> - rdma_has_multicast() makes sense, since iWARP doesn’t support it. > >>> - cap_ib_sa() might make sense to cut code even further in the CMA, > >>> since > >> RoCE has a GSI but no SA. > >> > >> We have discussion on define these helpers previously, again, name is > >> not really a problem, I would rather to see such changes in the > >> following series after this one working stably :-) > >> > > > > The names are not critical. This comment is about introducing helpers > > that are do not introduce any new semantic notion in the current patch-set. > > > > cap_ipoib(), for example, is brain-dead because only a single > > technology (as of now) enables it: Infiniband. > > This will be dropped in next version :-) > > > > >>> > >>> 5) Do no modify phys_state_show() in [PATCH v5 09/27] IB/Verbs: > >>> Reform IB-core verbs/uverbs_cmd/sysfs It *is* the link layer! > >> > >> Actually nothing changed after the modify, the prev purpose it to > >> eliminate the link layer helpers. > >> > >> But now we are not going to remove the helper any more, so let's drop > >> this modification in next version :-) > >> > > > > You don't add modifications just to drop them later. > > Don't add them in the first place! > > > > This patch-set will remain forever in the kernel commit log - we want > > it to be as self-explaining and coherent as possible. > > > > Remove this. > > What i mean is this will be removed in v6... > > > > >>> > >>> 6) Remove cap_read_multi_sge > >>> It is not device/port feature, but a transport capability. > >>> Use rdma_is_iwarp_transport() instead, or introduce a new transport > >>> flag in > >> 'enum ib_device_cap_flags'. > >>> > >>> 7) Remove [PATCH v5 25/27] IB/Verbs: Use management helper > >> cap_eth_ah(). > >>> Address handles that refer to Ethernet links always have Ethernet > >> addressing. > >>> > >>> In the CMA code, using rdma_tech_iboe() is just fine. This is how > >>> you define > >> cap_eth_ah() anyway. > >>> Currently, this patch just adds clutter. > >> > >> There are also some discussion on these helpers, drop them means > >> going back.. > >> > > > > Back to where? Management helpers are a new concept. Let's get them > right. > > Back to one point during v1~v5. > > > > >> The tech helper is not enough to explain the management purpose, and > >> this can be the wrapper for bitmask stuff too. > >> > > > > As I said, I am not sure that we will need any bitmasks. > > Also see response to Ira (https://lkml.org/lkml/2015/4/21/951). > > Better discussed in another thread. > > > > >>> > >>> 8) Remove patch [PATCH v5 26/27] IB/Verbs: Clean up rdma_ib_or_iboe(). > >>> We do need a transport qualifier, as exemplified in comment 5) > >>> above, and > >> for a complete clean model. > >>> This is after renaming the function to rdma_is_ib_transport()... > >> > >> This means going back again... rdma_is_ib_transport() has been used > >> previously. > >> > >> This helper is just to make the review more easier, we won't need it > >> internally, not to mention after bitmask was introduced :-) > >> > > > > The same... > > > >>> > >>> > >>> Putting it all together > >>> ================== > >>> > >>> We are left with the following helpers: > >>> - rdma_is_ib_transport() > >>> - rdma_is_iwarp_transport() > >>> - rdma_is_usnic_transport() > >>> - rdma_is_iboe() > >>> - rdma_has_mad() > >>> - rdma_has_smi() > >>> - rdma_has_gsi() - complements smi; can be used by the mad code for > >>> clarity > >>> - rdma_has_sa() > >>> - rdma_has_cm() > >>> - rdma_has_mcast() > >> > >> I think we can put the discussion on name and new helpers in future, > >> currently let's focus on these basic reform and make them working > >> stably ;-) > > > > It's not just the names, it's their semantics. > > Any problems with the names proposed above? > > These were once used in old version, again, name can't satisfied anyone at > this moment and I'd like to discuss this after the logical was right, I really > don't want folks to focus on this issue since it won't broken anything and can > be easily changed once we have the agreement. > > Regards, > Michael Wang > OK > > > >> > >> Regards, > >> Michael Wang > >> > >>> > >>> > >>>> Subject: [PATCH v5 00/27] IB/Verbs: IB Management Helpers > >>>> > >>>> > >>>> Since v4: > >>>> * Thanks for the comments from Hal, Sean, Tom, Or Gerlitz, Jason, > >>>> Roland, Ira and Steve :-) Please remind me if anything missed :-P > >>>> * Fix logical issue inside 3#, 14# > >>>> * Refine 3#, 4#, 5# with label 'free' > >>>> * Rework 10# to stop using port 1 when port already assigned > >>>> > >>>> There are plenty of lengthy code to check the transport type of IB > >>>> device, or the link layer type of it's port, but actually we are > >>>> just speculating whether a particular management/feature is > >>>> supported by the > >> device/port. > >>>> > >>>> Thus instead of inferring, we should have our own mechanism for IB > >>>> management capability/protocol/feature checking, several proposals > >> below. > >>>> > >>>> This patch set will reform the method of getting transport type, we > >>>> will now using query_transport() instead of inferring from > >>>> transport and link layer respectively, also we defined the new > >>>> transport type to make the concept more reasonable. > >>>> > >>>> Mapping List: > >>>> node-type link-layer old-transport new-transport > >>>> nes RNIC ETH IWARP > IWARP > >>>> amso1100 RNIC ETH IWARP IWARP > >>>> cxgb3 RNIC ETH IWARP IWARP > >>>> cxgb4 RNIC ETH IWARP IWARP > >>>> usnic USNIC_UDP ETH USNIC_UDP USNIC_UDP > >>>> ocrdma IB_CA ETH IB IBOE > >>>> mlx4 IB_CA IB/ETH IB IB/IBOE > >>>> mlx5 IB_CA IB IB IB > >>>> ehca IB_CA IB IB IB > >>>> ipath IB_CA IB IB IB > >>>> mthca IB_CA IB IB IB > >>>> qib IB_CA IB IB IB > >>>> > >>>> For example: > >>>> if (transport == IB) && (link-layer == ETH) will now become: > >>>> if (query_transport() == IBOE) > >>>> > >>>> Thus we will be able to get rid of the respective transport and > >>>> link-layer checking, and it will help us to add new > >>>> protocol/Technology (like OPA) more easier, also with the > >>>> introduced management helpers, IB management logical will be more > >>>> clear and easier > >> for extending. > >>>> > >>>> Highlights: > >>>> The patch set covered a wide range of IB stuff, thus for those who are > >>>> familiar with the particular part, your suggestion would be > >>>> invaluable ;-) > >>>> > >>>> Patch 1#~15# included all the logical reform, 16#~25# introduced the > >>>> management helpers, 26#~27# do clean up. > >>>> > >>>> Patches haven't been tested yet, we appreciate if any one who > >>>> have > >> these > >>>> HW willing to provide his Tested-by :-) > >>>> > >>>> Doug suggested the bitmask mechanism: > >>>> https://www.mail-archive.com/linux- > >>>> rdma@vger.kernel.org/msg23765.html > >>>> which could be the plan for future reforming, we prefer that to > >>>> be > >> another > >>>> series which focus on semantic and performance. > >>>> > >>>> This patch-set is somewhat 'bloated' now and it may be a good > >>>> timing > >> for > >>>> staging, I'd like to suggest we focus on improving existed > >>>> helpers and > >> push > >>>> all the further reforms into next series ;-) > >>>> > >>>> Proposals: > >>>> Sean: > >>>> https://www.mail-archive.com/linux- > >>>> rdma@vger.kernel.org/msg23339.html > >>>> Doug: > >>>> https://www.mail-archive.com/linux- > >>>> rdma@vger.kernel.org/msg23418.html > >>>> https://www.mail-archive.com/linux- > >>>> rdma@vger.kernel.org/msg23765.html > >>>> Jason: > >>>> https://www.mail-archive.com/linux- > >>>> rdma@vger.kernel.org/msg23425.html > >>>> > >>>> Michael Wang (27): > >>>> IB/Verbs: Implement new callback query_transport() > >>>> IB/Verbs: Implement raw management helpers > >>>> IB/Verbs: Reform IB-core mad/agent/user_mad > >>>> IB/Verbs: Reform IB-core cm > >>>> IB/Verbs: Reform IB-core sa_query > >>>> IB/Verbs: Reform IB-core multicast > >>>> IB/Verbs: Reform IB-ulp ipoib > >>>> IB/Verbs: Reform IB-ulp xprtrdma > >>>> IB/Verbs: Reform IB-core verbs/uverbs_cmd/sysfs > >>>> IB/Verbs: Reform cm related part in IB-core cma/ucm > >>>> IB/Verbs: Reform route related part in IB-core cma > >>>> IB/Verbs: Reform mcast related part in IB-core cma > >>>> IB/Verbs: Reserve legacy transport type in 'dev_addr' > >>>> IB/Verbs: Reform cma_acquire_dev() > >>>> IB/Verbs: Reform rest part in IB-core cma > >>>> IB/Verbs: Use management helper cap_ib_mad() > >>>> IB/Verbs: Use management helper cap_ib_smi() > >>>> IB/Verbs: Use management helper cap_ib_cm() > >>>> IB/Verbs: Use management helper cap_iw_cm() > >>>> IB/Verbs: Use management helper cap_ib_sa() > >>>> IB/Verbs: Use management helper cap_ib_mcast() > >>>> IB/Verbs: Use management helper cap_ipoib() > >>>> IB/Verbs: Use management helper cap_read_multi_sge() > >>>> IB/Verbs: Use management helper cap_af_ib() > >>>> IB/Verbs: Use management helper cap_eth_ah() > >>>> IB/Verbs: Clean up rdma_ib_or_iboe() > >>>> IB/Verbs: Cleanup rdma_node_get_transport() > >>>> > >>>> --- > >>>> drivers/infiniband/core/agent.c | 4 > >>>> drivers/infiniband/core/cm.c | 26 +- > >>>> drivers/infiniband/core/cma.c | 328 ++++++++++++--------------- > >>>> drivers/infiniband/core/device.c | 1 > >>>> drivers/infiniband/core/mad.c | 51 ++-- > >>>> drivers/infiniband/core/multicast.c | 18 - > >>>> drivers/infiniband/core/sa_query.c | 41 +-- > >>>> drivers/infiniband/core/sysfs.c | 8 > >>>> drivers/infiniband/core/ucm.c | 5 > >>>> drivers/infiniband/core/ucma.c | 27 -- > >>>> drivers/infiniband/core/user_mad.c | 32 +- > >>>> drivers/infiniband/core/uverbs_cmd.c | 6 > >>>> drivers/infiniband/core/verbs.c | 33 -- > >>>> drivers/infiniband/hw/amso1100/c2_provider.c | 7 > >>>> drivers/infiniband/hw/cxgb3/iwch_provider.c | 7 > >>>> drivers/infiniband/hw/cxgb4/provider.c | 7 > >>>> drivers/infiniband/hw/ehca/ehca_hca.c | 6 > >>>> drivers/infiniband/hw/ehca/ehca_iverbs.h | 3 > >>>> drivers/infiniband/hw/ehca/ehca_main.c | 1 > >>>> drivers/infiniband/hw/ipath/ipath_verbs.c | 7 > >>>> drivers/infiniband/hw/mlx4/main.c | 10 > >>>> drivers/infiniband/hw/mlx5/main.c | 7 > >>>> drivers/infiniband/hw/mthca/mthca_provider.c | 7 > >>>> drivers/infiniband/hw/nes/nes_verbs.c | 6 > >>>> drivers/infiniband/hw/ocrdma/ocrdma_main.c | 1 > >>>> drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 > >>>> drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 3 > >>>> drivers/infiniband/hw/qib/qib_verbs.c | 7 > >>>> drivers/infiniband/hw/usnic/usnic_ib_main.c | 1 > >>>> drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 6 > >>>> drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 2 > >>>> drivers/infiniband/ulp/ipoib/ipoib_main.c | 17 - > >>>> include/rdma/ib_verbs.h | 204 +++++++++++++++- > >>>> net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 6 > >>>> net/sunrpc/xprtrdma/svc_rdma_transport.c | 51 +--- > >>>> 35 files changed, 584 insertions(+), 368 deletions(-) > >>>> -- > >>>> To unsubscribe from this list: send the line "unsubscribe linux-rdma" > >>>> in the body of a message to majordomo@vger.kernel.org More > >>>> majordomo info at http://vger.kernel.org/majordomo-info.html {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I