From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [for-next V2 10/10] RDMA/core: Provide RDMA DIM support for ULPs Date: Tue, 25 Jun 2019 20:57:54 +0000 Message-ID: <20190625205701.17849-11-saeedm@mellanox.com> References: <20190625205701.17849-1-saeedm@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190625205701.17849-1-saeedm@mellanox.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org To: "David S. Miller" , Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , Or Gerlitz , Sagi Grimberg , Tal Gilboa , "netdev@vger.kernel.org" , "linux-rdma@vger.kernel.org" , Yamin Friedman , Max Gurtovoy , Saeed Mahameed List-Id: linux-rdma@vger.kernel.org RnJvbTogWWFtaW4gRnJpZWRtYW4gPHlhbWluZkBtZWxsYW5veC5jb20+DQoNCkFkZGVkIHRoZSBp bnRlcmZhY2UgaW4gdGhlIGluZmluaWJhbmQgZHJpdmVyIHRoYXQgYXBwbGllcyB0aGUgcmRtYV9k aW0NCmFkYXB0aXZlIG1vZGVyYXRpb24uIFRoZXJlIGlzIG5vdyBhIHNwZWNpYWwgZnVuY3Rpb24g Zm9yIGFsbG9jYXRpbmcgYW4NCmliX2NxIHRoYXQgdXNlcyByZG1hX2RpbS4NCg0KUGVyZm9ybWFu Y2UgaW1wcm92ZW1lbnQgKENvbm5lY3RYLTUgMTAwR2JFLCB4ODYpIHJ1bm5pbmcgRklPIGJlbmNo bWFyayBvdmVyDQpOVk1mIGJldHdlZW4gdHdvIGVxdWFsIGVuZC1ob3N0cyB3aXRoIDU2IGNvcmVz IGFjcm9zcyBhIE1lbGxhbm94IHN3aXRjaA0KdXNpbmcgbnVsbF9ibGsgZGV2aWNlOg0KDQpSRUFE UyB3aXRob3V0IERJTToNCmJsayBzaXplIHwgQlcgICAgICAgfCBJT1BTIHwgOTl0aCBwZXJjZW50 aWxlIGxhdGVuY3kgIHwgOTkuOTl0aCBsYXRlbmN5DQo1MTJCICAgICB8IDMuOEdpQi9zIHwgNy43 TSB8IDE0MDEgIHVzZWMgICAgICAgICAgICAgICB8IDI0NDIgIHVzZWMNCjRrICAgICAgIHwgNy4w R2lCL3MgfCAxLjhNIHwgNDgxNyAgdXNlYyAgICAgICAgICAgICAgIHwgNjU4NyAgdXNlYw0KNjRr ICAgICAgfCAxMC43R2lCL3N8IDE3NWsgfCA5ODk2ICB1c2VjICAgICAgICAgICAgICAgfCAxMDAy OCB1c2VjDQoNCklPIFdSSVRFUyB3aXRob3V0IERJTToNCmJsayBzaXplIHwgQlcgICAgICAgfCBJ T1BTIHwgOTl0aCBwZXJjZW50aWxlIGxhdGVuY3kgIHwgOTkuOTl0aCBsYXRlbmN5DQo1MTJCICAg ICB8IDMuNkdpQi9zIHwgNy41TSB8IDE0MzQgIHVzZWMgICAgICAgICAgICAgICB8IDI0NzQgIHVz ZWMNCjRrICAgICAgIHwgNi4zR2lCL3MgfCAxLjZNIHwgOTM4ICAgdXNlYyAgICAgICAgICAgICAg IHwgMTIyMSAgdXNlYw0KNjRrICAgICAgfCAxMC43R2lCL3N8IDE3NWsgfCA4OTc5ICB1c2VjICAg ICAgICAgICAgICAgfCAxMjc4MCB1c2VjDQoNCklPIFJFQURTIHdpdGggRElNOg0KYmxrIHNpemUg fCBCVyAgICAgICB8IElPUFMgfCA5OXRoIHBlcmNlbnRpbGUgbGF0ZW5jeSAgfCA5OS45OXRoIGxh dGVuY3kNCjUxMkIgICAgIHwgNEdpQi9zICAgfCA4LjJNIHwgODE2ICAgIHVzZWMgICAgICAgICAg ICAgIHwgODg5ICAgdXNlYw0KNGsgICAgICAgfCAxMC4xR2lCL3N8IDIuNjVNfCAzMzU5ICAgdXNl YyAgICAgICAgICAgICAgfCA1MDgwICB1c2VjDQo2NGsgICAgICB8IDEwLjdHaUIvc3wgMTc1ayB8 IDk4OTYgICB1c2VjICAgICAgICAgICAgICB8IDEwMDI4IHVzZWMNCg0KSU8gV1JJVEVTIHdpdGgg RElNOg0KYmxrIHNpemUgfCBCVyAgICAgICB8IElPUFMgIHwgOTl0aCBwZXJjZW50aWxlIGxhdGVu Y3kgfCA5OS45OXRoIGxhdGVuY3kNCjUxMkIgICAgIHwgMy45R2lCL3MgfCA4LjFNICB8IDc5OSAg IHVzZWMgICAgICAgICAgICAgIHwgOTIyICAgdXNlYw0KNGsgICAgICAgfCA5LjZHaUIvcyB8IDIu NU0gIHwgNzE3ICAgdXNlYyAgICAgICAgICAgICAgfCAxMDA0ICB1c2VjDQo2NGsgICAgICB8IDEw LjdHaUIvc3wgMTc2ayAgfCA4NTg2ICB1c2VjICAgICAgICAgICAgICB8IDEyMjU2IHVzZWMNCg0K VGhlIHJkbWFfZGltIGFsZ29yaXRobSB3YXMgZGVzaWduZWQgdG8gbWVhc3VyZSB0aGUgZWZmZWN0 aXZlbmVzcyBvZg0KbW9kZXJhdGlvbiBvbiB0aGUgZmxvdyBpbiBhIGdlbmVyYWwgd2F5IGFuZCB0 aHVzIHNob3VsZCBiZSBhcHByb3ByaWF0ZQ0KZm9yIGFsbCBSRE1BIHN0b3JhZ2UgcHJvdG9jb2xz Lg0KDQpyZG1hX2RpbSBpcyBjb25maWd1cmVkIHRvIGJlIHRoZSBkZWZhdWx0IG9wdGlvbiBiYXNl ZCBvbiBwZXJmb3JtYW5jZQ0KaW1wcm92ZW1lbnQgc2VlbiBhZnRlciBleHRlbnNpdmUgdGVzdHMu DQoNClNpZ25lZC1vZmYtYnk6IFlhbWluIEZyaWVkbWFuIDx5YW1pbmZAbWVsbGFub3guY29tPg0K UmV2aWV3ZWQtYnk6IE1heCBHdXJ0b3ZveSA8bWF4Z0BtZWxsYW5veC5jb20+DQpSZXZpZXdlZC1i eTogTGVvbiBSb21hbm92c2t5IDxsZW9ucm9AbWVsbGFub3guY29tPg0KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+DQotLS0NCiBkcml2ZXJzL2luZmlu aWJhbmQvY29yZS9jcS5jICAgICAgfCA3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst DQogZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jIHwgIDIgKw0KIDIgZmlsZXMgY2hh bmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW5maW5pYmFuZC9jb3JlL2NxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jcS5j DQppbmRleCBhNGM4MTk5MjI2N2MuLmQ4YThjNDY2ZDg5NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv aW5maW5pYmFuZC9jb3JlL2NxLmMNCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NxLmMN CkBAIC0yNiw2ICsyNiw0MCBAQA0KICNkZWZpbmUgSUJfUE9MTF9GTEFHUyBcDQogCShJQl9DUV9O RVhUX0NPTVAgfCBJQl9DUV9SRVBPUlRfTUlTU0VEX0VWRU5UUykNCiANCitzdGF0aWMgdm9pZCBp Yl9jcV9yZG1hX2RpbV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykNCit7DQorCXN0cnVjdCBk aW0gKmRpbSA9IGNvbnRhaW5lcl9vZih3LCBzdHJ1Y3QgZGltLCB3b3JrKTsNCisJc3RydWN0IGli X2NxICpjcSA9IChzdHJ1Y3QgaWJfY3EgKilkaW0tPmRpbV9vd25lcjsNCisNCisJdTE2IHVzZWMg PSByZG1hX2RpbV9wcm9mW2RpbS0+cHJvZmlsZV9peF0udXNlYzsNCisJdTE2IGNvbXBzID0gcmRt YV9kaW1fcHJvZltkaW0tPnByb2ZpbGVfaXhdLmNvbXBzOw0KKw0KKwlkaW0tPnN0YXRlID0gRElN X1NUQVJUX01FQVNVUkU7DQorDQorCWNxLT5kZXZpY2UtPm9wcy5tb2RpZnlfY3EoY3EsIGNvbXBz LCB1c2VjKTsNCit9DQorDQorc3RhdGljIHZvaWQgcmRtYV9kaW1faW5pdChzdHJ1Y3QgaWJfY3Eg KmNxKQ0KK3sNCisJc3RydWN0IGRpbSAqZGltOw0KKw0KKwlpZiAoIWNxLT5kZXZpY2UtPm9wcy5t b2RpZnlfY3EgfHwgIWNxLT5kZXZpY2UtPnVzZV9jcV9kaW0gfHwNCisJICAgIGNxLT5wb2xsX2N0 eCA9PSBJQl9QT0xMX0RJUkVDVCkNCisJCXJldHVybjsNCisNCisJZGltID0ga3phbGxvYyhzaXpl b2Yoc3RydWN0IGRpbSksIEdGUF9LRVJORUwpOw0KKwlpZiAoIWRpbSkNCisJCXJldHVybjsNCisN CisJZGltLT5zdGF0ZSA9IERJTV9TVEFSVF9NRUFTVVJFOw0KKwlkaW0tPnR1bmVfc3RhdGUgPSBE SU1fR09JTkdfUklHSFQ7DQorCWRpbS0+cHJvZmlsZV9peCA9IFJETUFfRElNX1NUQVJUX1BST0ZJ TEU7DQorCWRpbS0+ZGltX293bmVyID0gY3E7DQorCWNxLT5kaW0gPSBkaW07DQorDQorCUlOSVRf V09SSygmZGltLT53b3JrLCBpYl9jcV9yZG1hX2RpbV93b3JrKTsNCit9DQorDQogc3RhdGljIGlu dCBfX2liX3Byb2Nlc3NfY3Eoc3RydWN0IGliX2NxICpjcSwgaW50IGJ1ZGdldCwgc3RydWN0IGli X3djICp3Y3MsDQogCQkJICAgaW50IGJhdGNoKQ0KIHsNCkBAIC05OCw2ICsxMzIsMjQgQEAgc3Rh dGljIGludCBpYl9wb2xsX2hhbmRsZXIoc3RydWN0IGlycV9wb2xsICppb3AsIGludCBidWRnZXQp DQogCXJldHVybiBjb21wbGV0ZWQ7DQogfQ0KIA0KK3N0YXRpYyBpbnQgaWJfcG9sbF9kaW1faGFu ZGxlcihzdHJ1Y3QgaXJxX3BvbGwgKmlvcCwgaW50IGJ1ZGdldCkNCit7DQorCXN0cnVjdCBpYl9j cSAqY3EgPSBjb250YWluZXJfb2YoaW9wLCBzdHJ1Y3QgaWJfY3EsIGlvcCk7DQorCXN0cnVjdCBk aW0gKmRpbSA9IGNxLT5kaW07DQorCWludCBjb21wbGV0ZWQ7DQorDQorCWNvbXBsZXRlZCA9IF9f aWJfcHJvY2Vzc19jcShjcSwgYnVkZ2V0LCBjcS0+d2MsIElCX1BPTExfQkFUQ0gpOw0KKwlpZiAo Y29tcGxldGVkIDwgYnVkZ2V0KSB7DQorCQlpcnFfcG9sbF9jb21wbGV0ZSgmY3EtPmlvcCk7DQor CQlpZiAoaWJfcmVxX25vdGlmeV9jcShjcSwgSUJfUE9MTF9GTEFHUykgPiAwKQ0KKwkJCWlycV9w b2xsX3NjaGVkKCZjcS0+aW9wKTsNCisJfQ0KKw0KKwlyZG1hX2RpbShkaW0sIGNvbXBsZXRlZCk7 DQorDQorCXJldHVybiBjb21wbGV0ZWQ7DQorfQ0KKw0KIHN0YXRpYyB2b2lkIGliX2NxX2NvbXBs ZXRpb25fc29mdGlycShzdHJ1Y3QgaWJfY3EgKmNxLCB2b2lkICpwcml2YXRlKQ0KIHsNCiAJaXJx X3BvbGxfc2NoZWQoJmNxLT5pb3ApOw0KQEAgLTEwNSwxNCArMTU3LDE4IEBAIHN0YXRpYyB2b2lk IGliX2NxX2NvbXBsZXRpb25fc29mdGlycShzdHJ1Y3QgaWJfY3EgKmNxLCB2b2lkICpwcml2YXRl KQ0KIA0KIHN0YXRpYyB2b2lkIGliX2NxX3BvbGxfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspDQogew0KLQlzdHJ1Y3QgaWJfY3EgKmNxID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBp Yl9jcSwgd29yayk7DQorCXN0cnVjdCBpYl9jcSAqY3EgPSBjb250YWluZXJfb2Yod29yaywgc3Ry dWN0IGliX2NxLA0KKwkJCQkJd29yayk7DQogCWludCBjb21wbGV0ZWQ7DQogDQogCWNvbXBsZXRl ZCA9IF9faWJfcHJvY2Vzc19jcShjcSwgSUJfUE9MTF9CVURHRVRfV09SS1FVRVVFLCBjcS0+d2Ms DQogCQkJCSAgICBJQl9QT0xMX0JBVENIKTsNCisNCiAJaWYgKGNvbXBsZXRlZCA+PSBJQl9QT0xM X0JVREdFVF9XT1JLUVVFVUUgfHwNCiAJICAgIGliX3JlcV9ub3RpZnlfY3EoY3EsIElCX1BPTExf RkxBR1MpID4gMCkNCiAJCXF1ZXVlX3dvcmsoY3EtPmNvbXBfd3EsICZjcS0+d29yayk7DQorCWVs c2UgaWYgKGNxLT5kaW0pDQorCQlyZG1hX2RpbShjcS0+ZGltLCBjb21wbGV0ZWQpOw0KIH0NCiAN CiBzdGF0aWMgdm9pZCBpYl9jcV9jb21wbGV0aW9uX3dvcmtxdWV1ZShzdHJ1Y3QgaWJfY3EgKmNx LCB2b2lkICpwcml2YXRlKQ0KQEAgLTE2Niw2ICsyMjIsOCBAQCBzdHJ1Y3QgaWJfY3EgKl9faWJf YWxsb2NfY3FfdXNlcihzdHJ1Y3QgaWJfZGV2aWNlICpkZXYsIHZvaWQgKnByaXZhdGUsDQogCXJk bWFfcmVzdHJhY2tfc2V0X3Rhc2soJmNxLT5yZXMsIGNhbGxlcik7DQogCXJkbWFfcmVzdHJhY2tf a2FkZCgmY3EtPnJlcyk7DQogDQorCXJkbWFfZGltX2luaXQoY3EpOw0KKw0KIAlzd2l0Y2ggKGNx LT5wb2xsX2N0eCkgew0KIAljYXNlIElCX1BPTExfRElSRUNUOg0KIAkJY3EtPmNvbXBfaGFuZGxl ciA9IGliX2NxX2NvbXBsZXRpb25fZGlyZWN0Ow0KQEAgLTE3Myw3ICsyMzEsMTMgQEAgc3RydWN0 IGliX2NxICpfX2liX2FsbG9jX2NxX3VzZXIoc3RydWN0IGliX2RldmljZSAqZGV2LCB2b2lkICpw cml2YXRlLA0KIAljYXNlIElCX1BPTExfU09GVElSUToNCiAJCWNxLT5jb21wX2hhbmRsZXIgPSBp Yl9jcV9jb21wbGV0aW9uX3NvZnRpcnE7DQogDQotCQlpcnFfcG9sbF9pbml0KCZjcS0+aW9wLCBJ Ql9QT0xMX0JVREdFVF9JUlEsIGliX3BvbGxfaGFuZGxlcik7DQorCQlpZiAoY3EtPmRpbSkgew0K KwkJCWlycV9wb2xsX2luaXQoJmNxLT5pb3AsIElCX1BPTExfQlVER0VUX0lSUSwNCisJCQkJICAg ICAgaWJfcG9sbF9kaW1faGFuZGxlcik7DQorCQl9IGVsc2UNCisJCQlpcnFfcG9sbF9pbml0KCZj cS0+aW9wLCBJQl9QT0xMX0JVREdFVF9JUlEsDQorCQkJCSAgICAgIGliX3BvbGxfaGFuZGxlcik7 DQorDQogCQlpYl9yZXFfbm90aWZ5X2NxKGNxLCBJQl9DUV9ORVhUX0NPTVApOw0KIAkJYnJlYWs7 DQogCWNhc2UgSUJfUE9MTF9XT1JLUVVFVUU6DQpAQCAtMjI2LDYgKzI5MCw5IEBAIHZvaWQgaWJf ZnJlZV9jcV91c2VyKHN0cnVjdCBpYl9jcSAqY3EsIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEpDQog CQlXQVJOX09OX09OQ0UoMSk7DQogCX0NCiANCisJaWYgKGNxLT5kaW0pDQorCQljYW5jZWxfd29y a19zeW5jKCZjcS0+ZGltLT53b3JrKTsNCisJa2ZyZWUoY3EtPmRpbSk7DQogCWtmcmVlKGNxLT53 Yyk7DQogCXJkbWFfcmVzdHJhY2tfZGVsKCZjcS0+cmVzKTsNCiAJcmV0ID0gY3EtPmRldmljZS0+ b3BzLmRlc3Ryb3lfY3EoY3EsIHVkYXRhKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJh bmQvaHcvbWx4NS9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMNCmlu ZGV4IGFiYWM3MGFkNWM3Yy4uYjFiNDVkYmUyNGE1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pbmZp bmliYW5kL2h3L21seDUvbWFpbi5jDQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9t YWluLmMNCkBAIC02MzA1LDYgKzYzMDUsOCBAQCBzdGF0aWMgaW50IG1seDVfaWJfc3RhZ2VfY2Fw c19pbml0KHN0cnVjdCBtbHg1X2liX2RldiAqZGV2KQ0KIAkgICAgIE1MWDVfQ0FQX0dFTihkZXYt Pm1kZXYsIGRpc2FibGVfbG9jYWxfbGJfbWMpKSkNCiAJCW11dGV4X2luaXQoJmRldi0+bGIubXV0 ZXgpOw0KIA0KKwlkZXYtPmliX2Rldi51c2VfY3FfZGltID0gdHJ1ZTsNCisNCiAJcmV0dXJuIDA7 DQogfQ0KIA0KLS0gDQoyLjIxLjANCg0K