From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yang, Philip" Subject: [PATCH] drm/amdgpu: use new HMM APIs and helpers Date: Thu, 30 May 2019 14:41:14 +0000 Message-ID: <20190530144049.1996-1-Philip.Yang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Yang, Philip" SE1NIHByb3ZpZGVzIG5ldyBBUElzIGFuZCBoZWxwcyBpbiBrZXJuZWwgNS4yLXJjMSB0byBzaW1w bGlmeSBkcml2ZXINCnBhdGguIFRoZSBvbGQgaG1tIEFQSXMgYXJlIGRlcHJlY2F0ZWQgYW5kIHdp bGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUuDQoNCkJlbG93IGFyZSBjaGFuZ2VzIGluIGRyaXZlcjoN Cg0KMS4gQ2hhbmdlIGhtbV92bWFfZmF1bHQgdG8gaG1tX3JhbmdlX3JlZ2lzdGVyIGFuZCBobW1f cmFuZ2VfZmF1bHQgd2hpY2gNCnN1cHBvcnRzIHJhbmdlIHdpdGggbXVsdGlwbGUgdm1hcywgcmVt b3ZlIHRoZSBtdWx0aXBsZSB2bWFzIGhhbmRsZSBwYXRoDQphbmQgZGF0YSBzdHJ1Y3R1cmUuDQoy LiBDaGFuZ2UgaG1tX3ZtYV9yYW5nZV9kb25lIHRvIGhtbV9yYW5nZV91bnJlZ2lzdGVyLg0KMy4g VXNlIGRlZmF1bHQgZmxhZ3MgdG8gYXZvaWQgcHJlLWZpbGwgcGZuIGFycmF5cy4NCjQuIFVzZSBu ZXcgaG1tX2RldmljZV8gaGVscGVycy4NCg0KQ2hhbmdlLUlkOiBJMWEwMGY4ODQ1OWYzYjk2Yzk1 MzY5MzNlOWExN2ViMWViYWE3ODExMw0KU2lnbmVkLW9mZi1ieTogUGhpbGlwIFlhbmcgPFBoaWxp cC5ZYW5nQGFtZC5jb20+DQotLS0NCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf bW4uYyAgfCAgIDEgLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyB8 IDE0MCArKysrKysrKystLS0tLS0tLS0tLS0tLS0NCiAyIGZpbGVzIGNoYW5nZWQsIDUzIGluc2Vy dGlvbnMoKyksIDg4IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X21uLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfbW4uYw0KaW5kZXggNDFjY2VlNDlhMjI0Li5lMGJiNDdjZTU3MGIgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYw0KKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21uLmMNCkBAIC01MTksNyArNTE5LDYgQEAgdm9pZCBhbWRn cHVfaG1tX2luaXRfcmFuZ2Uoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpDQogCQlyYW5nZS0+Zmxh Z3MgPSBobW1fcmFuZ2VfZmxhZ3M7DQogCQlyYW5nZS0+dmFsdWVzID0gaG1tX3JhbmdlX3ZhbHVl czsNCiAJCXJhbmdlLT5wZm5fc2hpZnQgPSBQQUdFX1NISUZUOw0KLQkJcmFuZ2UtPnBmbnMgPSBO VUxMOw0KIAkJSU5JVF9MSVNUX0hFQUQoJnJhbmdlLT5saXN0KTsNCiAJfQ0KIH0NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMNCmluZGV4IDcxMzhkYzFkZDFmNC4uMjVhOWZj YjQwOWM2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMNCkBAIC03 MTEsOCArNzExLDcgQEAgc3RydWN0IGFtZGdwdV90dG1fdHQgew0KIAlzdHJ1Y3QgdGFza19zdHJ1 Y3QJKnVzZXJ0YXNrOw0KIAl1aW50MzJfdAkJdXNlcmZsYWdzOw0KICNpZiBJU19FTkFCTEVEKENP TkZJR19EUk1fQU1ER1BVX1VTRVJQVFIpDQotCXN0cnVjdCBobW1fcmFuZ2UJKnJhbmdlczsNCi0J aW50CQkJbnJfcmFuZ2VzOw0KKwlzdHJ1Y3QgaG1tX3JhbmdlCSpyYW5nZTsNCiAjZW5kaWYNCiB9 Ow0KIA0KQEAgLTcyNSw1NyArNzI0LDMzIEBAIHN0cnVjdCBhbWRncHVfdHRtX3R0IHsNCiAgKi8N CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0FNREdQVV9VU0VSUFRSKQ0KIA0KLS8qIFN1cHBv cnQgVXNlcnB0ciBwYWdlcyBjcm9zcyBtYXggMTYgdm1hcyAqLw0KLSNkZWZpbmUgTUFYX05SX1ZN QVMJKDE2KQ0KLQ0KIGludCBhbWRncHVfdHRtX3R0X2dldF91c2VyX3BhZ2VzKHN0cnVjdCB0dG1f dHQgKnR0bSwgc3RydWN0IHBhZ2UgKipwYWdlcykNCiB7DQogCXN0cnVjdCBhbWRncHVfdHRtX3R0 ICpndHQgPSAodm9pZCAqKXR0bTsNCiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBndHQtPnVzZXJ0 YXNrLT5tbTsNCiAJdW5zaWduZWQgbG9uZyBzdGFydCA9IGd0dC0+dXNlcnB0cjsNCi0JdW5zaWdu ZWQgbG9uZyBlbmQgPSBzdGFydCArIHR0bS0+bnVtX3BhZ2VzICogUEFHRV9TSVpFOw0KLQlzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IE5VTEwsICp2bWFzW01BWF9OUl9WTUFTXTsNCi0Jc3Ry dWN0IGhtbV9yYW5nZSAqcmFuZ2VzOw0KLQl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBpOw0KLQl1 aW50NjRfdCAqcGZucywgZjsNCisJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7DQorCXN0cnVj dCBobW1fcmFuZ2UgKnJhbmdlOw0KKwl1bnNpZ25lZCBsb25nIGk7DQorCXVpbnQ2NF90ICpwZm5z Ow0KIAlpbnQgciA9IDA7DQogDQogCWlmICghbW0pIC8qIEhhcHBlbnMgZHVyaW5nIHByb2Nlc3Mg c2h1dGRvd24gKi8NCiAJCXJldHVybiAtRVNSQ0g7DQogDQotCWRvd25fcmVhZCgmbW0tPm1tYXBf c2VtKTsNCi0NCi0JLyogdXNlciBwYWdlcyBtYXkgY3Jvc3MgbXVsdGlwbGUgVk1BcyAqLw0KLQln dHQtPm5yX3JhbmdlcyA9IDA7DQotCWRvIHsNCi0JCXVuc2lnbmVkIGxvbmcgdm1fc3RhcnQ7DQot DQotCQlpZiAoZ3R0LT5ucl9yYW5nZXMgPj0gTUFYX05SX1ZNQVMpIHsNCi0JCQlEUk1fRVJST1Io IlRvbyBtYW55IFZNQXMgaW4gdXNlcnB0ciByYW5nZVxuIik7DQotCQkJciA9IC1FRkFVTFQ7DQot CQkJZ290byBvdXQ7DQotCQl9DQotDQotCQl2bV9zdGFydCA9IHZtYSA/IHZtYS0+dm1fZW5kIDog c3RhcnQ7DQotCQl2bWEgPSBmaW5kX3ZtYShtbSwgdm1fc3RhcnQpOw0KLQkJaWYgKHVubGlrZWx5 KCF2bWEgfHwgdm1fc3RhcnQgPCB2bWEtPnZtX3N0YXJ0KSkgew0KLQkJCXIgPSAtRUZBVUxUOw0K LQkJCWdvdG8gb3V0Ow0KLQkJfQ0KLQkJdm1hc1tndHQtPm5yX3JhbmdlcysrXSA9IHZtYTsNCi0J fSB3aGlsZSAoZW5kID4gdm1hLT52bV9lbmQpOw0KLQ0KLQlEUk1fREVCVUdfRFJJVkVSKCIweCVs eCBucl9yYW5nZXMgJWQgcGFnZXMgMHglbHhcbiIsDQotCQlzdGFydCwgZ3R0LT5ucl9yYW5nZXMs IHR0bS0+bnVtX3BhZ2VzKTsNCi0NCisJdm1hID0gZmluZF92bWEobW0sIHN0YXJ0KTsNCisJaWYg KHVubGlrZWx5KCF2bWEgfHwgc3RhcnQgPCB2bWEtPnZtX3N0YXJ0KSkgew0KKwkJciA9IC1FRkFV TFQ7DQorCQlnb3RvIG91dDsNCisJfQ0KIAlpZiAodW5saWtlbHkoKGd0dC0+dXNlcmZsYWdzICYg QU1ER1BVX0dFTV9VU0VSUFRSX0FOT05PTkxZKSAmJg0KLQkJdm1hc1swXS0+dm1fZmlsZSkpIHsN CisJCXZtYS0+dm1fZmlsZSkpIHsNCiAJCXIgPSAtRVBFUk07DQogCQlnb3RvIG91dDsNCiAJfQ0K IA0KLQlyYW5nZXMgPSBrdm1hbGxvY19hcnJheShndHQtPm5yX3Jhbmdlcywgc2l6ZW9mKCpyYW5n ZXMpLCBHRlBfS0VSTkVMKTsNCi0JaWYgKHVubGlrZWx5KCFyYW5nZXMpKSB7DQorCXJhbmdlID0g a3ZtYWxsb2Moc2l6ZW9mKCpyYW5nZSksIEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKTsNCisJaWYg KHVubGlrZWx5KCFyYW5nZSkpIHsNCiAJCXIgPSAtRU5PTUVNOw0KIAkJZ290byBvdXQ7DQogCX0N CkBAIC03ODYsNjEgKzc2MSw1MiBAQCBpbnQgYW1kZ3B1X3R0bV90dF9nZXRfdXNlcl9wYWdlcyhz dHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCBwYWdlICoqcGFnZXMpDQogCQlnb3RvIG91dF9mcmVl X3JhbmdlczsNCiAJfQ0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgZ3R0LT5ucl9yYW5nZXM7IGkrKykN Ci0JCWFtZGdwdV9obW1faW5pdF9yYW5nZSgmcmFuZ2VzW2ldKTsNCisJYW1kZ3B1X2htbV9pbml0 X3JhbmdlKHJhbmdlKTsNCisJcmFuZ2UtPmRlZmF1bHRfZmxhZ3MgPSByYW5nZS0+ZmxhZ3NbSE1N X1BGTl9WQUxJRF07DQorCXJhbmdlLT5kZWZhdWx0X2ZsYWdzIHw9IGFtZGdwdV90dG1fdHRfaXNf cmVhZG9ubHkodHRtKSA/DQorCQkJCTAgOiByYW5nZS0+ZmxhZ3NbSE1NX1BGTl9XUklURV07DQor CXJhbmdlLT5wZm5fZmxhZ3NfbWFzayA9IDA7DQorCXJhbmdlLT5wZm5zID0gcGZuczsNCisJaG1t X3JhbmdlX3JlZ2lzdGVyKHJhbmdlLCBtbSwgc3RhcnQsDQorCQkJICAgc3RhcnQgKyB0dG0tPm51 bV9wYWdlcyAqIFBBR0VfU0laRSwgUEFHRV9TSElGVCk7DQogDQotCWYgPSByYW5nZXNbMF0uZmxh Z3NbSE1NX1BGTl9WQUxJRF07DQotCWYgfD0gYW1kZ3B1X3R0bV90dF9pc19yZWFkb25seSh0dG0p ID8NCi0JCQkJMCA6IHJhbmdlc1swXS5mbGFnc1tITU1fUEZOX1dSSVRFXTsNCi0JbWVtc2V0NjQo cGZucywgZiwgdHRtLT5udW1fcGFnZXMpOw0KLQ0KLQlmb3IgKG5yX3BhZ2VzID0gMCwgaSA9IDA7 IGkgPCBndHQtPm5yX3JhbmdlczsgaSsrKSB7DQotCQlyYW5nZXNbaV0udm1hID0gdm1hc1tpXTsN Ci0JCXJhbmdlc1tpXS5zdGFydCA9IG1heChzdGFydCwgdm1hc1tpXS0+dm1fc3RhcnQpOw0KLQkJ cmFuZ2VzW2ldLmVuZCA9IG1pbihlbmQsIHZtYXNbaV0tPnZtX2VuZCk7DQotCQlyYW5nZXNbaV0u cGZucyA9IHBmbnMgKyBucl9wYWdlczsNCi0JCW5yX3BhZ2VzICs9IChyYW5nZXNbaV0uZW5kIC0g cmFuZ2VzW2ldLnN0YXJ0KSAvIFBBR0VfU0laRTsNCisJLyoNCisJICogSnVzdCB3YWl0IGZvciBy YW5nZSB0byBiZSB2YWxpZCwgc2FmZSB0byBpZ25vcmUgcmV0dXJuIHZhbHVlIGFzIHdlDQorCSAq IHdpbGwgdXNlIHRoZSByZXR1cm4gdmFsdWUgb2YgaG1tX3JhbmdlX2ZhdWx0KCkgYmVsb3cgdW5k ZXIgdGhlDQorCSAqIG1tYXBfc2VtIHRvIGFzY2VydGFpbiB0aGUgdmFsaWRpdHkgb2YgdGhlIHJh bmdlLg0KKwkqLw0KKwlobW1fcmFuZ2Vfd2FpdF91bnRpbF92YWxpZChyYW5nZSwgSE1NX1JBTkdF X0RFRkFVTFRfVElNRU9VVCk7DQogDQotCQlyID0gaG1tX3ZtYV9mYXVsdCgmcmFuZ2VzW2ldLCB0 cnVlKTsNCi0JCWlmICh1bmxpa2VseShyKSkNCi0JCQlicmVhazsNCi0JfQ0KLQlpZiAodW5saWtl bHkocikpIHsNCi0JCXdoaWxlIChpLS0pDQotCQkJaG1tX3ZtYV9yYW5nZV9kb25lKCZyYW5nZXNb aV0pOw0KKwlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7DQogDQotCQlnb3RvIG91dF9mcmVlX3Bm bnM7DQotCX0NCisJciA9IGhtbV9yYW5nZV9mYXVsdChyYW5nZSwgdHJ1ZSk7DQogDQogCXVwX3Jl YWQoJm1tLT5tbWFwX3NlbSk7DQogDQorCWlmICh1bmxpa2VseShyIDwgMCkpDQorCQlnb3RvIG91 dF9mcmVlX3BmbnM7DQorDQogCWZvciAoaSA9IDA7IGkgPCB0dG0tPm51bV9wYWdlczsgaSsrKSB7 DQotCQlwYWdlc1tpXSA9IGhtbV9wZm5fdG9fcGFnZSgmcmFuZ2VzWzBdLCBwZm5zW2ldKTsNCi0J CWlmICghcGFnZXNbaV0pIHsNCisJCXBhZ2VzW2ldID0gaG1tX2RldmljZV9lbnRyeV90b19wYWdl KHJhbmdlLCBwZm5zW2ldKTsNCisJCWlmICh1bmxpa2VseSghcGFnZXNbaV0pKSB7DQogCQkJcHJf ZXJyKCJQYWdlIGZhdWx0IGZhaWxlZCBmb3IgcGZuWyVsdV0gPSAweCVsbHhcbiIsDQogCQkJICAg ICAgIGksIHBmbnNbaV0pOw0KLQkJCWdvdG8gb3V0X2ludmFsaWRfcGZuOw0KKwkJCXIgPSAtRU5P TUVNOw0KKw0KKwkJCWdvdG8gb3V0X2ZyZWVfcGZuczsNCiAJCX0NCiAJfQ0KLQlndHQtPnJhbmdl cyA9IHJhbmdlczsNCisJZ3R0LT5yYW5nZSA9IHJhbmdlOw0KIA0KIAlyZXR1cm4gMDsNCiANCiBv dXRfZnJlZV9wZm5zOg0KKwlobW1fcmFuZ2VfdW5yZWdpc3RlcihyYW5nZSk7DQogCWt2ZnJlZShw Zm5zKTsNCiBvdXRfZnJlZV9yYW5nZXM6DQotCWt2ZnJlZShyYW5nZXMpOw0KKwlrdmZyZWUocmFu Z2UpOw0KIG91dDoNCi0JdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsNCi0NCiAJcmV0dXJuIHI7DQot DQotb3V0X2ludmFsaWRfcGZuOg0KLQlmb3IgKGkgPSAwOyBpIDwgZ3R0LT5ucl9yYW5nZXM7IGkr KykNCi0JCWhtbV92bWFfcmFuZ2VfZG9uZSgmcmFuZ2VzW2ldKTsNCi0Ja3ZmcmVlKHBmbnMpOw0K LQlrdmZyZWUocmFuZ2VzKTsNCi0JcmV0dXJuIC1FTk9NRU07DQogfQ0KIA0KIC8qKg0KQEAgLTg1 MywyMyArODE5LDIzIEBAIGJvb2wgYW1kZ3B1X3R0bV90dF9nZXRfdXNlcl9wYWdlc19kb25lKHN0 cnVjdCB0dG1fdHQgKnR0bSkNCiB7DQogCXN0cnVjdCBhbWRncHVfdHRtX3R0ICpndHQgPSAodm9p ZCAqKXR0bTsNCiAJYm9vbCByID0gZmFsc2U7DQotCWludCBpOw0KIA0KIAlpZiAoIWd0dCB8fCAh Z3R0LT51c2VycHRyKQ0KIAkJcmV0dXJuIGZhbHNlOw0KIA0KLQlEUk1fREVCVUdfRFJJVkVSKCJ1 c2VyX3BhZ2VzX2RvbmUgMHglbGx4IG5yX3JhbmdlcyAlZCBwYWdlcyAweCVseFxuIiwNCi0JCWd0 dC0+dXNlcnB0ciwgZ3R0LT5ucl9yYW5nZXMsIHR0bS0+bnVtX3BhZ2VzKTsNCisJRFJNX0RFQlVH X0RSSVZFUigidXNlcl9wYWdlc19kb25lIDB4JWxseCBwYWdlcyAweCVseFxuIiwNCisJCWd0dC0+ dXNlcnB0ciwgdHRtLT5udW1fcGFnZXMpOw0KIA0KLQlXQVJOX09OQ0UoIWd0dC0+cmFuZ2VzIHx8 ICFndHQtPnJhbmdlc1swXS5wZm5zLA0KKwlXQVJOX09OQ0UoIWd0dC0+cmFuZ2UgfHwgIWd0dC0+ cmFuZ2UtPnBmbnMsDQogCQkiTm8gdXNlciBwYWdlcyB0byBjaGVja1xuIik7DQogDQotCWlmIChn dHQtPnJhbmdlcykgew0KLQkJZm9yIChpID0gMDsgaSA8IGd0dC0+bnJfcmFuZ2VzOyBpKyspDQot CQkJciB8PSBobW1fdm1hX3JhbmdlX2RvbmUoJmd0dC0+cmFuZ2VzW2ldKTsNCi0JCWt2ZnJlZShn dHQtPnJhbmdlc1swXS5wZm5zKTsNCi0JCWt2ZnJlZShndHQtPnJhbmdlcyk7DQotCQlndHQtPnJh bmdlcyA9IE5VTEw7DQorCWlmIChndHQtPnJhbmdlKSB7DQorCQlyID0gaG1tX3JhbmdlX3ZhbGlk KGd0dC0+cmFuZ2UpOw0KKwkJaG1tX3JhbmdlX3VucmVnaXN0ZXIoZ3R0LT5yYW5nZSk7DQorDQor CQlrdmZyZWUoZ3R0LT5yYW5nZS0+cGZucyk7DQorCQlrdmZyZWUoZ3R0LT5yYW5nZSk7DQorCQln dHQtPnJhbmdlID0gTlVMTDsNCiAJfQ0KIA0KIAlyZXR1cm4gcjsNCkBAIC05NTMsOSArOTE5LDkg QEAgc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV90dF91bnBpbl91c2VycHRyKHN0cnVjdCB0dG1fdHQg KnR0bSkNCiAJc2dfZnJlZV90YWJsZSh0dG0tPnNnKTsNCiANCiAjaWYgSVNfRU5BQkxFRChDT05G SUdfRFJNX0FNREdQVV9VU0VSUFRSKQ0KLQlpZiAoZ3R0LT5yYW5nZXMgJiYNCi0JICAgIHR0bS0+ cGFnZXNbMF0gPT0gaG1tX3Bmbl90b19wYWdlKCZndHQtPnJhbmdlc1swXSwNCi0JCQkJCSAgICAg Z3R0LT5yYW5nZXNbMF0ucGZuc1swXSkpDQorCWlmIChndHQtPnJhbmdlICYmDQorCSAgICB0dG0t PnBhZ2VzWzBdID09IGhtbV9kZXZpY2VfZW50cnlfdG9fcGFnZShndHQtPnJhbmdlLA0KKwkJCQkJ CSAgICAgIGd0dC0+cmFuZ2UtPnBmbnNbMF0pKQ0KIAkJV0FSTl9PTkNFKDEsICJNaXNzaW5nIGdl dF91c2VyX3BhZ2VfZG9uZVxuIik7DQogI2VuZGlmDQogfQ0KLS0gDQoyLjE3LjENCg0KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5n IGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4