From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [for-next 8/9] linux/dim: Implement rdma_dim Date: Wed, 5 Jun 2019 23:24:50 +0000 Message-ID: <20190605232348.6452-9-saeedm@mellanox.com> References: <20190605232348.6452-1-saeedm@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190605232348.6452-1-saeedm@mellanox.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org To: "David S. Miller" , Jason Gunthorpe , Doug Ledford Cc: Michael Chan , Andy Gospodarek , Tal Gilboa , "linux-rdma@vger.kernel.org" , "netdev@vger.kernel.org" , Yamin Friedman , Max Gurtovoy , Saeed Mahameed List-Id: linux-rdma@vger.kernel.org RnJvbTogWWFtaW4gRnJpZWRtYW4gPHlhbWluZkBtZWxsYW5veC5jb20+DQoNCnJkbWFfZGltIGlt cGxlbWVudHMgYSBkaWZmZXJlbnQgYWxnb3JpdGhtIHRoYW4gbmV0X2RpbSBhbmQgaXMgYmFzZWQg b24NCmNvbXBsZXRpb25zIHdoaWNoIGlzIGhvdyB3ZSBjYW4gaW1wbGVtZW50IGludGVycnVwdCBt b2RlcmF0aW9uIGluIFJETUEuDQpUaGUgYWxnb3JpdGhtIG9wdGltaXplcyBmb3IgbnVtYmVyIG9m IGNvbXBsZXRpb25zIGFuZCByYXRpbyBiZXR3ZWVuDQpjb21wbGV0aW9ucyBhbmQgZXZlbnRzLg0K SXQgYWxzbyBoYXMgYSBmZWF0dXJlIGZvciBmYXN0IHJlZHVjdGlvbiBvZiBtb2RlcmF0aW9uIGxl dmVsIHdoZW4gdGhlDQp0cmFmZmljIGNoYW5nZXMgaW4gc3VjaCBhIHdheSBhcyB0byBubyBsb25n ZXIgcmVxdWlyZSBoaWdoIG1vZGVyYXRpb24gaW4NCm9yZGVyIHRvIGF2b2lkIGxvbmcgbGF0ZW5j aWVzLg0KDQpyZG1hX2RpbS5oIHdpbGwgYmUgY2FsbGVkIGZyb20gdGhlIGliX2NvcmUgbW9kdWxl Lg0KDQpTaWduZWQtb2ZmLWJ5OiBZYW1pbiBGcmllZG1hbiA8eWFtaW5mQG1lbGxhbm94LmNvbT4N ClJldmlld2VkLWJ5OiBNYXggR3VydG92b3kgPG1heGdAbWVsbGFub3guY29tPg0KU2lnbmVkLW9m Zi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+DQotLS0NCiBNQUlOVEFJ TkVSUyAgICAgICAgICAgICAgfCAgIDEgKw0KIGluY2x1ZGUvbGludXgvcmRtYV9kaW0uaCB8ICAy OCArKysrKysrDQogbGliL2RpbS9NYWtlZmlsZSAgICAgICAgIHwgICA3ICstDQogbGliL2RpbS9y ZG1hX2RpbS5jICAgICAgIHwgMTYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKw0KIDQgZmlsZXMgY2hhbmdlZCwgMTk3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkN CiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9yZG1hX2RpbS5oDQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYi9kaW0vcmRtYV9kaW0uYw0KDQpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMg Yi9NQUlOVEFJTkVSUw0KaW5kZXggY2I2MjFkNWNmMjIzLi44NmU0Njk4YWIzOTAgMTAwNjQ0DQot LS0gYS9NQUlOVEFJTkVSUw0KKysrIGIvTUFJTlRBSU5FUlMNCkBAIC01NTg5LDYgKzU1ODksNyBA QCBEWU5BTUlDIElOVEVSUlVQVCBNT0RFUkFUSU9ODQogTToJVGFsIEdpbGJvYSA8dGFsZ2lAbWVs bGFub3guY29tPg0KIFM6CU1haW50YWluZWQNCiBGOglpbmNsdWRlL2xpbnV4L25ldF9kaW0uaA0K K0Y6CWluY2x1ZGUvbGludXgvcmRtYV9kaW0uaA0KIEY6CWluY2x1ZGUvbGludXgvZGltLmgNCiBG OglsaWIvZGltLw0KIA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcmRtYV9kaW0uaCBiL2lu Y2x1ZGUvbGludXgvcmRtYV9kaW0uaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwMC4uMDYyM2VhNWExZTc4DQotLS0gL2Rldi9udWxsDQorKysgYi9pbmNsdWRlL2xpbnV4 L3JkbWFfZGltLmgNCkBAIC0wLDAgKzEsMjggQEANCisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMCBPUiBMaW51eC1PcGVuSUIgKi8NCisvKiBDb3B5cmlnaHQgKGMpIDIwMTkgTWVs bGFub3ggVGVjaG5vbG9naWVzLiAqLw0KKw0KKyNpZm5kZWYgUkRNQV9ESU1fSA0KKyNkZWZpbmUg UkRNQV9ESU1fSA0KKw0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCisjaW5jbHVkZSA8bGlu dXgvZGltLmg+DQorDQorI2RlZmluZSBSRE1BX0RJTV9QQVJBTVNfTlVNX1BST0ZJTEVTIDkNCisj ZGVmaW5lIFJETUFfRElNX1NUQVJUX1BST0ZJTEUgMA0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGltX2NxX21vZGVyDQorcmRtYV9kaW1fcHJvZltSRE1BX0RJTV9QQVJBTVNfTlVNX1BST0ZJTEVT XSA9IHsNCisJezEsICAgMCwgMSwgIDB9LA0KKwl7MSwgICAwLCA0LCAgMH0sDQorCXsyLCAgIDAs IDQsICAwfSwNCisJezIsICAgMCwgOCwgIDB9LA0KKwl7NCwgICAwLCA4LCAgMH0sDQorCXsxNiwg IDAsIDgsICAwfSwNCisJezE2LCAgMCwgMTYsIDB9LA0KKwl7MzIsICAwLCAxNiwgMH0sDQorCXsz MiwgIDAsIDMyLCAwfSwNCit9Ow0KKw0KK3ZvaWQgcmRtYV9kaW0oc3RydWN0IGRpbSAqZGltLCB1 NjQgY29tcGxldGlvbnMpOw0KKw0KKyNlbmRpZiAvKiBSRE1BX0RJTV9IICovDQpkaWZmIC0tZ2l0 IGEvbGliL2RpbS9NYWtlZmlsZSBiL2xpYi9kaW0vTWFrZWZpbGUNCmluZGV4IDE2MGFmZTI4OGRm MC4uNzNkZGQwYzY0NjYxIDEwMDY0NA0KLS0tIGEvbGliL2RpbS9NYWtlZmlsZQ0KKysrIGIvbGli L2RpbS9NYWtlZmlsZQ0KQEAgLTIsOCArMiwxMyBAQA0KICMgRElNIER5bmFtaWMgSW50ZXJydXB0 IE1vZGVyYXRpb24gbGlicmFyeQ0KICMNCiANCi1vYmotJChDT05GSUdfRElNTElCKSA9IG5ldF9k aW0ubw0KK29iai0kKENPTkZJR19ESU1MSUIpICs9IG5ldF9kaW0ubw0KK29iai0kKENPTkZJR19E SU1MSUIpICs9IHJkbWFfZGltLm8NCiANCiBuZXRfZGltLXkgPSBcDQogCWRpbS5vCQlcDQogCW5l dF9kaW0ubw0KKw0KK3JkbWFfZGltLXkgPSBcDQorCWRpbS5vCQlcDQorCXJkbWFfZGltLm8NCmRp ZmYgLS1naXQgYS9saWIvZGltL3JkbWFfZGltLmMgYi9saWIvZGltL3JkbWFfZGltLmMNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjUwMzg4MWVjNTYxNA0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvbGliL2RpbS9yZG1hX2RpbS5jDQpAQCAtMCwwICsxLDE2MiBAQA0KKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIExpbnV4LU9wZW5JQg0KKy8qDQor ICogQ29weXJpZ2h0IChjKSAyMDE5LCBNZWxsYW5veCBUZWNobm9sb2dpZXMgaW5jLiAgQWxsIHJp Z2h0cyByZXNlcnZlZC4NCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvcmRtYV9kaW0uaD4NCisN CisvKioNCisgKiogcmRtYV9kaW1fc3RlcDogLSBNb3ZlcyB0aGUgbW9kZXJhdGlvbiBwcm9maWxl IG9uZSBzdGVwLg0KKyAqKiBAZGltOiBUaGUgbW9kZXJhdGlvbiBzdHJ1Y3QuDQorICoqDQorICoq IERlc2NyaXB0aW9uOiBNb3ZlcyB0aGUgbW9kZXJhdGlvbiBwcm9maWxlIG9mIEBkaW0gYnkgb25l IHN0ZXAuIElmIHdlDQorICoqIGFyZSBhdCB0aGUgZWRnZSBvZiB0aGUgcHJvZmlsZSByYW5nZSBy ZXR1cm5zIERJTV9PTl9FREdFIHdpdGhvdXQNCisgKiogbW92aW5nLg0KKyAqKi8NCitzdGF0aWMg aW50IHJkbWFfZGltX3N0ZXAoc3RydWN0IGRpbSAqZGltKQ0KK3sNCisJc3dpdGNoIChkaW0tPnR1 bmVfc3RhdGUpIHsNCisJY2FzZSBESU1fUEFSS0lOR19PTl9UT1A6DQorCQkvKiBmYWxsIHRocm91 Z2ggKi8NCisJY2FzZSBESU1fUEFSS0lOR19USVJFRDoNCisJCWJyZWFrOw0KKwljYXNlIERJTV9H T0lOR19SSUdIVDoNCisJCWlmIChkaW0tPnByb2ZpbGVfaXggPT0gKFJETUFfRElNX1BBUkFNU19O VU1fUFJPRklMRVMgLSAxKSkNCisJCQlyZXR1cm4gRElNX09OX0VER0U7DQorCQlkaW0tPnByb2Zp bGVfaXgrKzsNCisJCWRpbS0+c3RlcHNfcmlnaHQrKzsNCisJCWJyZWFrOw0KKwljYXNlIERJTV9H T0lOR19MRUZUOg0KKwkJaWYgKGRpbS0+cHJvZmlsZV9peCA9PSAwKQ0KKwkJCXJldHVybiBESU1f T05fRURHRTsNCisJCWRpbS0+cHJvZmlsZV9peC0tOw0KKwkJZGltLT5zdGVwc19sZWZ0Kys7DQor CQlicmVhazsNCisJfQ0KKw0KKwlyZXR1cm4gRElNX1NURVBQRUQ7DQorfQ0KKw0KKy8qKg0KKyAq KiByZG1hX2RpbV9zdGF0c19jb21wYXJlIC0gQ29tcGFyZXMgdGhlIGN1cnJlbnQgc3RhdHMgdG8g dGhlIHByZXZpb3VzIHN0YXRzLg0KKyAqKiBAY3VycjogVGhlIGN1cnJlbnQgZGltIHN0YXRzLg0K KyAqKiBAcHJldjogVGhlIHByZXZpb3VzIGRpbSBzdGF0cy4NCisgKioNCisgKiogRGVzY3JpcHRp b246IENoZWNrcyB0byBzZWUgaWYgd2UgaGF2ZSBzaWduaWZpY2FudGx5IG1vcmUgb3IgbGVzcw0K KyAqKiBjb21wbGV0aW9ucy4NCisgKiogSWYgdGhlIGNvbXBsZXRpb25zIGFyZSBub3QgZ3JlYXRs eSBjaGFuZ2VkIGNoZWNrcyBpZiB0aGUgY29tcGxldGlvbiB0bw0KKyAqKiBldmVudCByYXRpbyBo YXMgc2lnbmlmaWNhbnRseSBjaGFuZ2VkLg0KKyAqKi8NCitzdGF0aWMgaW50IHJkbWFfZGltX3N0 YXRzX2NvbXBhcmUoc3RydWN0IGRpbV9zdGF0cyAqY3VyciwNCisJCQkJICBzdHJ1Y3QgZGltX3N0 YXRzICpwcmV2KQ0KK3sNCisJLyogZmlyc3Qgc3RhdCAqLw0KKwlpZiAoIXByZXYtPmNwbXMpDQor CQlyZXR1cm4gRElNX1NUQVRTX1NBTUU7DQorDQorCWlmIChJU19TSUdOSUZJQ0FOVF9ESUZGKGN1 cnItPmNwbXMsIHByZXYtPmNwbXMpKQ0KKwkJcmV0dXJuIChjdXJyLT5jcG1zID4gcHJldi0+Y3Bt cykgPyBESU1fU1RBVFNfQkVUVEVSIDoNCisJCQkJCQlESU1fU1RBVFNfV09SU0U7DQorDQorCWlm IChJU19TSUdOSUZJQ0FOVF9ESUZGKGN1cnItPmNwZV9yYXRpbywgcHJldi0+Y3BlX3JhdGlvKSkN CisJCXJldHVybiAoY3Vyci0+Y3BlX3JhdGlvID4gcHJldi0+Y3BlX3JhdGlvKSA/IERJTV9TVEFU U19CRVRURVIgOg0KKwkJCQkJCURJTV9TVEFUU19XT1JTRTsNCisNCisJcmV0dXJuIERJTV9TVEFU U19TQU1FOw0KK30NCisNCisvKioNCisgKiogcmRtYV9kaW1fZGVjaXNpb24gLSBEZWNpZGVzIHRo ZSBuZXh0IG1vZGVyYXRpb24gbGV2ZWwuDQorICoqIEBjdXJyX3N0YXRzOiBUaGUgY3VycmVudCBk aW0gc3RhdHMuDQorICoqIEBkaW06IFRoZSBtb2RlcmF0aW9uIHN0cnVjdC4NCisgKioNCisgKiog RGVzY3JpcHRpb246IFVzZXMgcmRtYV9kaW1fc3RhdHNfY29tcGFyZSB0byBkZWNpZGUgd2hhdCB0 aGUgbmV4dCBtb2RlcmF0aW9uDQorICoqIGxldmVsIHNob3VsZCBiZS4gSWYgdGhlIGNvbXBsZXRp b24gdG8gZXZlbnQgcmF0aW8gaXMgbG93IGNvbXBhcmVkIHRvIHRoZQ0KKyAqKiBjdXJyZW50IGxl dmVsIHdlIHJlc2V0IHRoZSBtb2RlcmF0aW9uIHRvIGtlZXAgbGF0ZW5jeSBsb3cuDQorICoqLw0K K3N0YXRpYyBib29sIHJkbWFfZGltX2RlY2lzaW9uKHN0cnVjdCBkaW1fc3RhdHMgKmN1cnJfc3Rh dHMsIHN0cnVjdCBkaW0gKmRpbSkNCit7DQorCWludCBwcmV2X2l4ID0gZGltLT5wcm9maWxlX2l4 Ow0KKwlpbnQgc3RhdHNfcmVzOw0KKwlpbnQgc3RlcF9yZXM7DQorDQorCXN3aXRjaCAoZGltLT50 dW5lX3N0YXRlKSB7DQorCWNhc2UgRElNX1BBUktJTkdfT05fVE9QOg0KKwkJLyogZmFsbCB0aHJv dWdoICovDQorCWNhc2UgRElNX1BBUktJTkdfVElSRUQ6DQorCQlicmVhazsNCisJY2FzZSBESU1f R09JTkdfUklHSFQ6DQorCQkvKiBmYWxsIHRocm91Z2ggKi8NCisJY2FzZSBESU1fR09JTkdfTEVG VDoNCisJCXN0YXRzX3JlcyA9IHJkbWFfZGltX3N0YXRzX2NvbXBhcmUoY3Vycl9zdGF0cywNCisJ CQkJCQkgICAmZGltLT5wcmV2X3N0YXRzKTsNCisNCisJCXN3aXRjaCAoc3RhdHNfcmVzKSB7DQor CQljYXNlIERJTV9TVEFUU19TQU1FOg0KKwkJCWlmIChjdXJyX3N0YXRzLT5jcGVfcmF0aW8gPD0g NTAgKiBwcmV2X2l4KQ0KKwkJCQlkaW0tPnByb2ZpbGVfaXggPSAwOw0KKwkJCWJyZWFrOw0KKwkJ Y2FzZSBESU1fU1RBVFNfV09SU0U6DQorCQkJZGltX3R1cm4oZGltKTsNCisJCQkvKiBmYWxsIHRo cm91Z2ggKi8NCisJCWNhc2UgRElNX1NUQVRTX0JFVFRFUjoNCisJCQlzdGVwX3JlcyA9IHJkbWFf ZGltX3N0ZXAoZGltKTsNCisJCQlpZiAoc3RlcF9yZXMgPT0gRElNX09OX0VER0UpDQorCQkJCWRp bV90dXJuKGRpbSk7DQorCQkJYnJlYWs7DQorCQl9DQorCQlicmVhazsNCisJfQ0KKw0KKwlkaW0t PnByZXZfc3RhdHMgPSAqY3Vycl9zdGF0czsNCisNCisJcmV0dXJuIGRpbS0+cHJvZmlsZV9peCAh PSBwcmV2X2l4Ow0KK30NCisNCisvKioNCisgKiogcmRtYV9kaW0gLSBSdW5zIHRoZSBhZGFwdGl2 ZSBtb2RlcmF0aW9uLg0KKyAqKiBAZGltOiBUaGUgbW9kZXJhdGlvbiBzdHJ1Y3QuDQorICoqIEBj b21wbGV0aW9uczogVGhlIG51bWJlciBvZiBjb21wbGV0aW9ucyBjb2xsZWN0ZWQgaW4gdGhpcyBy b3VuZC4NCisgKioNCisgKiogRGVzY3JpcHRpb246IEVhY2ggY2FsbCB0byByZG1hX2RpbSB0YWtl cyB0aGUgbGF0ZXN0IGFtb3VudCBvZg0KKyAqKiBjb21wbGV0aW9ucyB0aGF0IGhhdmUgYmVlbiBj b2xsZWN0ZWQgYW5kIGNvdW50cyB0aGVtIGFzIGEgbmV3IGV2ZW50Lg0KKyAqKiBPbmNlIGVub3Vn aCBldmVudHMgaGF2ZSBiZWVuIGNvbGxlY3RlZCB0aGUgYWxnb3JpdGhtIGRlY2lkZXMgYSBuZXcN CisgKiogbW9kZXJhdGlvbiBsZXZlbC4NCisgKiovDQordm9pZCByZG1hX2RpbShzdHJ1Y3QgZGlt ICpkaW0sIHU2NCBjb21wbGV0aW9ucykNCit7DQorCXN0cnVjdCBkaW1fc3RhdHMgY3Vycl9zdGF0 czsNCisJdTMyIG5ldmVudHM7DQorCXN0cnVjdCBkaW1fc2FtcGxlICpjdXJyX3NhbXBsZSA9ICZk aW0tPm1lYXN1cmluZ19zYW1wbGU7DQorDQorCWRpbV91cGRhdGVfc2FtcGxlX3dpdGhfY29tcHMo Y3Vycl9zYW1wbGUtPmV2ZW50X2N0ciArIDEsDQorCQkJCSAgICAgY3Vycl9zYW1wbGUtPnBrdF9j dHIsDQorCQkJCSAgICAgY3Vycl9zYW1wbGUtPmJ5dGVfY3RyLA0KKwkJCQkgICAgIGN1cnJfc2Ft cGxlLT5jb21wX2N0ciArIGNvbXBsZXRpb25zLA0KKwkJCQkgICAgICZkaW0tPm1lYXN1cmluZ19z YW1wbGUpOw0KKw0KKwlzd2l0Y2ggKGRpbS0+c3RhdGUpIHsNCisJY2FzZSBESU1fTUVBU1VSRV9J Tl9QUk9HUkVTUzoNCisJCW5ldmVudHMgPSBjdXJyX3NhbXBsZS0+ZXZlbnRfY3RyIC0gZGltLT5z dGFydF9zYW1wbGUuZXZlbnRfY3RyOw0KKwkJaWYgKG5ldmVudHMgPCBESU1fTkVWRU5UUykNCisJ CQlicmVhazsNCisJCWRpbV9jYWxjX3N0YXRzKCZkaW0tPnN0YXJ0X3NhbXBsZSwgY3Vycl9zYW1w bGUsICZjdXJyX3N0YXRzKTsNCisJCWlmIChyZG1hX2RpbV9kZWNpc2lvbigmY3Vycl9zdGF0cywg ZGltKSkgew0KKwkJCWRpbS0+c3RhdGUgPSBESU1fQVBQTFlfTkVXX1BST0ZJTEU7DQorCQkJc2No ZWR1bGVfd29yaygmZGltLT53b3JrKTsNCisJCQlicmVhazsNCisJCX0NCisJCS8qIGZhbGwgdGhy b3VnaCAqLw0KKwljYXNlIERJTV9TVEFSVF9NRUFTVVJFOg0KKwkJZGltLT5zdGF0ZSA9IERJTV9N RUFTVVJFX0lOX1BST0dSRVNTOw0KKwkJZGltX3VwZGF0ZV9zYW1wbGVfd2l0aF9jb21wcyhjdXJy X3NhbXBsZS0+ZXZlbnRfY3RyLA0KKwkJCQkJICAgICBjdXJyX3NhbXBsZS0+cGt0X2N0ciwNCisJ CQkJCSAgICAgY3Vycl9zYW1wbGUtPmJ5dGVfY3RyLA0KKwkJCQkJICAgICBjdXJyX3NhbXBsZS0+ Y29tcF9jdHIsDQorCQkJCQkgICAgICZkaW0tPnN0YXJ0X3NhbXBsZSk7DQorCQlicmVhazsNCisJ Y2FzZSBESU1fQVBQTFlfTkVXX1BST0ZJTEU6DQorCQlicmVhazsNCisJfQ0KK30NCitFWFBPUlRf U1lNQk9MKHJkbWFfZGltKTsNCi0tIA0KMi4yMS4wDQoNCg==