From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [for-next V2 08/10] linux/dim: Implement rdma_dim Date: Tue, 25 Jun 2019 20:57:48 +0000 Message-ID: <20190625205701.17849-9-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+DQoNCnJkbWFfZGltIGlt cGxlbWVudHMgYSBkaWZmZXJlbnQgYWxnb3JpdGhtIHRoYW4gbmV0X2RpbSBhbmQgaXMgYmFzZWQg b24NCmNvbXBsZXRpb25zIHdoaWNoIGlzIGhvdyB3ZSBjYW4gaW1wbGVtZW50IGludGVycnVwdCBt b2RlcmF0aW9uIGluIFJETUEuDQpUaGUgYWxnb3JpdGhtIG9wdGltaXplcyBmb3IgbnVtYmVyIG9m IGNvbXBsZXRpb25zIGFuZCByYXRpbyBiZXR3ZWVuDQpjb21wbGV0aW9ucyBhbmQgZXZlbnRzLg0K SXQgYWxzbyBoYXMgYSBmZWF0dXJlIGZvciBmYXN0IHJlZHVjdGlvbiBvZiBtb2RlcmF0aW9uIGxl dmVsIHdoZW4gdGhlDQp0cmFmZmljIGNoYW5nZXMgaW4gc3VjaCBhIHdheSBhcyB0byBubyBsb25n ZXIgcmVxdWlyZSBoaWdoIG1vZGVyYXRpb24gaW4NCm9yZGVyIHRvIGF2b2lkIGxvbmcgbGF0ZW5j aWVzLg0KDQpyZG1hX2RpbSB3aWxsIGJlIGNhbGxlZCBmcm9tIHRoZSBpYl9jb3JlIG1vZHVsZS4N Cg0KU2lnbmVkLW9mZi1ieTogWWFtaW4gRnJpZWRtYW4gPHlhbWluZkBtZWxsYW5veC5jb20+DQpS ZXZpZXdlZC1ieTogTWF4IEd1cnRvdm95IDxtYXhnQG1lbGxhbm94LmNvbT4NClJldmlld2VkLWJ5 OiBMZW9uIFJvbWFub3Zza3kgPGxlb25yb0BtZWxsYW5veC5jb20+DQpTaWduZWQtb2ZmLWJ5OiBT YWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4NCi0tLQ0KIGluY2x1ZGUvbGludXgv ZGltLmggfCAgMzYgKysrKysrKysrKysrKysNCiBsaWIvZGltL01ha2VmaWxlICAgIHwgICA2ICst LQ0KIGxpYi9kaW0vcmRtYV9kaW0uYyAgfCAxMTIgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysNCiAzIGZpbGVzIGNoYW5nZWQsIDE1MCBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvZGltL3JkbWFfZGltLmMNCg0K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGltLmggYi9pbmNsdWRlL2xpbnV4L2RpbS5oDQpp bmRleCBhYTliZGQ0N2E2NDguLjFhZTMyODM1NzIzYSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGlu dXgvZGltLmgNCisrKyBiL2luY2x1ZGUvbGludXgvZGltLmgNCkBAIC04Miw2ICs4Miw3IEBAIHN0 cnVjdCBkaW1fc3RhdHMgew0KICAqIEBwcmV2X3N0YXRzOiBNZWFzdXJlZCByYXRlcyBmcm9tIHBy ZXZpb3VzIGl0ZXJhdGlvbiAoZm9yIGNvbXBhcmlzb24pDQogICogQHN0YXJ0X3NhbXBsZTogU2Ft cGxlZCBkYXRhIGF0IHN0YXJ0IG9mIGN1cnJlbnQgaXRlcmF0aW9uDQogICogQHdvcms6IFdvcmsg dG8gcGVyZm9ybSBvbiBhY3Rpb24gcmVxdWlyZWQNCisgKiBAZGltX293bmVyOiBBIHBvaW50ZXIg dG8gdGhlIHN0cnVjdCB0aGF0IHBvaW50cyB0byBkaW0NCiAgKiBAcHJvZmlsZV9peDogQ3VycmVu dCBtb2RlcmF0aW9uIHByb2ZpbGUNCiAgKiBAbW9kZTogQ1EgcGVyaW9kIGNvdW50IG1vZGUNCiAg KiBAdHVuZV9zdGF0ZTogQWxnb3JpdGhtIHR1bmluZyBzdGF0ZSAoc2VlIGJlbG93KQ0KQEAgLTk1 LDYgKzk2LDcgQEAgc3RydWN0IGRpbSB7DQogCXN0cnVjdCBkaW1fc2FtcGxlIHN0YXJ0X3NhbXBs ZTsNCiAJc3RydWN0IGRpbV9zYW1wbGUgbWVhc3VyaW5nX3NhbXBsZTsNCiAJc3RydWN0IHdvcmtf c3RydWN0IHdvcms7DQorCXZvaWQgKmRpbV9vd25lcjsNCiAJdTggcHJvZmlsZV9peDsNCiAJdTgg bW9kZTsNCiAJdTggdHVuZV9zdGF0ZTsNCkBAIC0zNjMsNCArMzY1LDM4IEBAIHN0cnVjdCBkaW1f Y3FfbW9kZXIgbmV0X2RpbV9nZXRfZGVmX3R4X21vZGVyYXRpb24odTggY3FfcGVyaW9kX21vZGUp Ow0KICAqLw0KIHZvaWQgbmV0X2RpbShzdHJ1Y3QgZGltICpkaW0sIHN0cnVjdCBkaW1fc2FtcGxl IGVuZF9zYW1wbGUpOw0KIA0KKy8qIFJETUEgRElNICovDQorDQorLyoNCisgKiBSRE1BIERJTSBw cm9maWxlOg0KKyAqIHByb2ZpbGUgc2l6ZSBtdXN0IGJlIG9mIFJETUFfRElNX1BBUkFNU19OVU1f UFJPRklMRVMuDQorICovDQorI2RlZmluZSBSRE1BX0RJTV9QQVJBTVNfTlVNX1BST0ZJTEVTIDkN CisjZGVmaW5lIFJETUFfRElNX1NUQVJUX1BST0ZJTEUgMA0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZGltX2NxX21vZGVyDQorcmRtYV9kaW1fcHJvZltSRE1BX0RJTV9QQVJBTVNfTlVNX1BST0ZJ TEVTXSA9IHsNCisJezEsICAgMCwgMSwgIDB9LA0KKwl7MSwgICAwLCA0LCAgMH0sDQorCXsyLCAg IDAsIDQsICAwfSwNCisJezIsICAgMCwgOCwgIDB9LA0KKwl7NCwgICAwLCA4LCAgMH0sDQorCXsx NiwgIDAsIDgsICAwfSwNCisJezE2LCAgMCwgMTYsIDB9LA0KKwl7MzIsICAwLCAxNiwgMH0sDQor CXszMiwgIDAsIDMyLCAwfSwNCit9Ow0KKw0KKy8qKg0KKyAqIHJkbWFfZGltIC0gUnVucyB0aGUg YWRhcHRpdmUgbW9kZXJhdGlvbi4NCisgKiBAZGltOiBUaGUgbW9kZXJhdGlvbiBzdHJ1Y3QuDQor ICogQGNvbXBsZXRpb25zOiBUaGUgbnVtYmVyIG9mIGNvbXBsZXRpb25zIGNvbGxlY3RlZCBpbiB0 aGlzIHJvdW5kLg0KKyAqDQorICogRWFjaCBjYWxsIHRvIHJkbWFfZGltIHRha2VzIHRoZSBsYXRl c3QgYW1vdW50IG9mIGNvbXBsZXRpb25zIHRoYXQNCisgKiBoYXZlIGJlZW4gY29sbGVjdGVkIGFu ZCBjb3VudHMgdGhlbSBhcyBhIG5ldyBldmVudC4NCisgKiBPbmNlIGVub3VnaCBldmVudHMgaGF2 ZSBiZWVuIGNvbGxlY3RlZCB0aGUgYWxnb3JpdGhtIGRlY2lkZXMgYSBuZXcNCisgKiBtb2RlcmF0 aW9uIGxldmVsLg0KKyAqLw0KK3ZvaWQgcmRtYV9kaW0oc3RydWN0IGRpbSAqZGltLCB1NjQgY29t cGxldGlvbnMpOw0KKw0KICNlbmRpZiAvKiBESU1fSCAqLw0KZGlmZiAtLWdpdCBhL2xpYi9kaW0v TWFrZWZpbGUgYi9saWIvZGltL01ha2VmaWxlDQppbmRleCAxNjBhZmUyODhkZjAuLjFkNjg1OGEx MDhjYiAxMDA2NDQNCi0tLSBhL2xpYi9kaW0vTWFrZWZpbGUNCisrKyBiL2xpYi9kaW0vTWFrZWZp bGUNCkBAIC0yLDggKzIsNiBAQA0KICMgRElNIER5bmFtaWMgSW50ZXJydXB0IE1vZGVyYXRpb24g bGlicmFyeQ0KICMNCiANCi1vYmotJChDT05GSUdfRElNTElCKSA9IG5ldF9kaW0ubw0KK29iai0k KENPTkZJR19ESU1MSUIpICs9IGRpbS5vDQogDQotbmV0X2RpbS15ID0gXA0KLQlkaW0ubwkJXA0K LQluZXRfZGltLm8NCitkaW0teSA6PSBkaW0ubyBuZXRfZGltLm8gcmRtYV9kaW0ubw0KZGlmZiAt LWdpdCBhL2xpYi9kaW0vcmRtYV9kaW0uYyBiL2xpYi9kaW0vcmRtYV9kaW0uYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uMWJmZThmNTQ2YTIwDQotLS0gL2Rldi9u dWxsDQorKysgYi9saWIvZGltL3JkbWFfZGltLmMNCkBAIC0wLDAgKzEsMTEyIEBADQorLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTGludXgtT3BlbklCDQorLyoNCisgKiBD b3B5cmlnaHQgKGMpIDIwMTksIE1lbGxhbm94IFRlY2hub2xvZ2llcyBpbmMuICBBbGwgcmlnaHRz IHJlc2VydmVkLg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9kaW0uaD4NCisNCitzdGF0aWMg aW50IHJkbWFfZGltX3N0ZXAoc3RydWN0IGRpbSAqZGltKQ0KK3sNCisJaWYgKGRpbS0+dHVuZV9z dGF0ZSA9PSBESU1fR09JTkdfUklHSFQpIHsNCisJCWlmIChkaW0tPnByb2ZpbGVfaXggPT0gKFJE TUFfRElNX1BBUkFNU19OVU1fUFJPRklMRVMgLSAxKSkNCisJCQlyZXR1cm4gRElNX09OX0VER0U7 DQorCQlkaW0tPnByb2ZpbGVfaXgrKzsNCisJCWRpbS0+c3RlcHNfcmlnaHQrKzsNCisJfQ0KKwlp ZiAoZGltLT50dW5lX3N0YXRlID09IERJTV9HT0lOR19MRUZUKSB7DQorCQlpZiAoZGltLT5wcm9m aWxlX2l4ID09IDApDQorCQkJcmV0dXJuIERJTV9PTl9FREdFOw0KKwkJZGltLT5wcm9maWxlX2l4 LS07DQorCQlkaW0tPnN0ZXBzX2xlZnQrKzsNCisJfQ0KKw0KKwlyZXR1cm4gRElNX1NURVBQRUQ7 DQorfQ0KKw0KK3N0YXRpYyBpbnQgcmRtYV9kaW1fc3RhdHNfY29tcGFyZShzdHJ1Y3QgZGltX3N0 YXRzICpjdXJyLA0KKwkJCQkgIHN0cnVjdCBkaW1fc3RhdHMgKnByZXYpDQorew0KKwkvKiBmaXJz dCBzdGF0ICovDQorCWlmICghcHJldi0+Y3BtcykNCisJCXJldHVybiBESU1fU1RBVFNfU0FNRTsN CisNCisJaWYgKElTX1NJR05JRklDQU5UX0RJRkYoY3Vyci0+Y3BtcywgcHJldi0+Y3BtcykpDQor CQlyZXR1cm4gKGN1cnItPmNwbXMgPiBwcmV2LT5jcG1zKSA/IERJTV9TVEFUU19CRVRURVIgOg0K KwkJCQkJCURJTV9TVEFUU19XT1JTRTsNCisNCisJaWYgKElTX1NJR05JRklDQU5UX0RJRkYoY3Vy ci0+Y3BlX3JhdGlvLCBwcmV2LT5jcGVfcmF0aW8pKQ0KKwkJcmV0dXJuIChjdXJyLT5jcGVfcmF0 aW8gPiBwcmV2LT5jcGVfcmF0aW8pID8gRElNX1NUQVRTX0JFVFRFUiA6DQorCQkJCQkJRElNX1NU QVRTX1dPUlNFOw0KKw0KKwlyZXR1cm4gRElNX1NUQVRTX1NBTUU7DQorfQ0KKw0KK3N0YXRpYyBi b29sIHJkbWFfZGltX2RlY2lzaW9uKHN0cnVjdCBkaW1fc3RhdHMgKmN1cnJfc3RhdHMsIHN0cnVj dCBkaW0gKmRpbSkNCit7DQorCWludCBwcmV2X2l4ID0gZGltLT5wcm9maWxlX2l4Ow0KKwl1OCBz dGF0ZSA9IGRpbS0+dHVuZV9zdGF0ZTsNCisJaW50IHN0YXRzX3JlczsNCisJaW50IHN0ZXBfcmVz Ow0KKw0KKwlpZiAoc3RhdGUgIT0gRElNX1BBUktJTkdfT05fVE9QICYmIHN0YXRlICE9IERJTV9Q QVJLSU5HX1RJUkVEKSB7DQorCQlzdGF0c19yZXMgPSByZG1hX2RpbV9zdGF0c19jb21wYXJlKGN1 cnJfc3RhdHMsDQorCQkJCQkJICAgJmRpbS0+cHJldl9zdGF0cyk7DQorDQorCQlzd2l0Y2ggKHN0 YXRzX3Jlcykgew0KKwkJY2FzZSBESU1fU1RBVFNfU0FNRToNCisJCQlpZiAoY3Vycl9zdGF0cy0+ Y3BlX3JhdGlvIDw9IDUwICogcHJldl9peCkNCisJCQkJZGltLT5wcm9maWxlX2l4ID0gMDsNCisJ CQlicmVhazsNCisJCWNhc2UgRElNX1NUQVRTX1dPUlNFOg0KKwkJCWRpbV90dXJuKGRpbSk7DQor CQkJLyogZmFsbCB0aHJvdWdoICovDQorCQljYXNlIERJTV9TVEFUU19CRVRURVI6DQorCQkJc3Rl cF9yZXMgPSByZG1hX2RpbV9zdGVwKGRpbSk7DQorCQkJaWYgKHN0ZXBfcmVzID09IERJTV9PTl9F REdFKQ0KKwkJCQlkaW1fdHVybihkaW0pOw0KKwkJCWJyZWFrOw0KKwkJfQ0KKwl9DQorDQorCWRp bS0+cHJldl9zdGF0cyA9ICpjdXJyX3N0YXRzOw0KKw0KKwlyZXR1cm4gZGltLT5wcm9maWxlX2l4 ICE9IHByZXZfaXg7DQorfQ0KKw0KK3ZvaWQgcmRtYV9kaW0oc3RydWN0IGRpbSAqZGltLCB1NjQg Y29tcGxldGlvbnMpDQorew0KKwlzdHJ1Y3QgZGltX3NhbXBsZSAqY3Vycl9zYW1wbGUgPSAmZGlt LT5tZWFzdXJpbmdfc2FtcGxlOw0KKwlzdHJ1Y3QgZGltX3N0YXRzIGN1cnJfc3RhdHM7DQorCXUz MiBuZXZlbnRzOw0KKw0KKwlkaW1fdXBkYXRlX3NhbXBsZV93aXRoX2NvbXBzKGN1cnJfc2FtcGxl LT5ldmVudF9jdHIgKyAxLA0KKwkJCQkgICAgIGN1cnJfc2FtcGxlLT5wa3RfY3RyLA0KKwkJCQkg ICAgIGN1cnJfc2FtcGxlLT5ieXRlX2N0ciwNCisJCQkJICAgICBjdXJyX3NhbXBsZS0+Y29tcF9j dHIgKyBjb21wbGV0aW9ucywNCisJCQkJICAgICAmZGltLT5tZWFzdXJpbmdfc2FtcGxlKTsNCisN CisJc3dpdGNoIChkaW0tPnN0YXRlKSB7DQorCWNhc2UgRElNX01FQVNVUkVfSU5fUFJPR1JFU1M6 DQorCQluZXZlbnRzID0gY3Vycl9zYW1wbGUtPmV2ZW50X2N0ciAtIGRpbS0+c3RhcnRfc2FtcGxl LmV2ZW50X2N0cjsNCisJCWlmIChuZXZlbnRzIDwgRElNX05FVkVOVFMpDQorCQkJYnJlYWs7DQor CQlkaW1fY2FsY19zdGF0cygmZGltLT5zdGFydF9zYW1wbGUsIGN1cnJfc2FtcGxlLCAmY3Vycl9z dGF0cyk7DQorCQlpZiAocmRtYV9kaW1fZGVjaXNpb24oJmN1cnJfc3RhdHMsIGRpbSkpIHsNCisJ CQlkaW0tPnN0YXRlID0gRElNX0FQUExZX05FV19QUk9GSUxFOw0KKwkJCXNjaGVkdWxlX3dvcmso JmRpbS0+d29yayk7DQorCQkJYnJlYWs7DQorCQl9DQorCQkvKiBmYWxsIHRocm91Z2ggKi8NCisJ Y2FzZSBESU1fU1RBUlRfTUVBU1VSRToNCisJCWRpbS0+c3RhdGUgPSBESU1fTUVBU1VSRV9JTl9Q Uk9HUkVTUzsNCisJCWRpbV91cGRhdGVfc2FtcGxlX3dpdGhfY29tcHMoY3Vycl9zYW1wbGUtPmV2 ZW50X2N0ciwNCisJCQkJCSAgICAgY3Vycl9zYW1wbGUtPnBrdF9jdHIsDQorCQkJCQkgICAgIGN1 cnJfc2FtcGxlLT5ieXRlX2N0ciwNCisJCQkJCSAgICAgY3Vycl9zYW1wbGUtPmNvbXBfY3RyLA0K KwkJCQkJICAgICAmZGltLT5zdGFydF9zYW1wbGUpOw0KKwkJYnJlYWs7DQorCWNhc2UgRElNX0FQ UExZX05FV19QUk9GSUxFOg0KKwkJYnJlYWs7DQorCX0NCit9DQorRVhQT1JUX1NZTUJPTChyZG1h X2RpbSk7DQotLSANCjIuMjEuMA0KDQo=