From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [PATCH] drm/amdgpu: Optimize recursion in amdgpu_vm_update_level Date: Wed, 12 Jul 2017 12:30:41 +0800 Message-ID: <5965A5F1.80902@amd.com> References: <1499831769-3764-1-git-send-email-Felix.Kuehling@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1499831769-3764-1-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org> 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: Felix Kuehling , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org bmljZSBpbXByb3ZlbWVudCwganVzdCBzb21lIG5pdHBpY2sgaW5saW5lLCBvdGhlcndpc2UgdGhl IHBhdGNoIGlzIApSZXZpZXdlZC1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNv bT4uCgpPbiAyMDE35bm0MDfmnIgxMuaXpSAxMTo1NiwgRmVsaXggS3VlaGxpbmcgd3JvdGU6Cj4g V2hlbiBsb3RzIG9mIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXMgaXMgdXNlZCwgdGhlcmUgY2FuIGJl IHRob3VzYW5kcwo+IG9mIHBhZ2UgdGFibGUgQk9zLiBhbWRncHVfdm1fdXBkYXRlX2xldmVsIGl0 ZXJhdGVzIG92ZXIgYWxsIG9mIHRoZW0KPiByZWN1cnNpdmVseS4gSW4gbWFueSBjYXNlcyBvbmx5 IGEgZmV3IG9yIG5vbmUgYXQgYWxsIG5lZWQgdG8gYmUKPiB1cGRhdGVkLiBNaW5pbWl6ZSB1bm5l Y2Vzc2FyeSBjb2RlIGV4ZWN1dGlvbiBhbmQgbWVtb3J5IHVzYWdlIGluCj4gdGhvc2UgY2FzZXMu Cj4KPiBUaGlzIHNwZWVkcyB1cCBtZW1vcnkgbWFwcGluZyBpbiBhIHN5bnRoZXRpYyBLRkQgbWVt b3J5IG1hcHBpbmcKPiBiZW5jaG1hcmsgYnkgcm91Z2hseSBhIGZhY3RvciB0d28uCj4KPiBTaWdu ZWQtb2ZmLWJ5OiBGZWxpeCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIHwgMTA5ICsrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDU1IGluc2VydGlv bnMoKyksIDU0IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZtLmMKPiBpbmRleCBmZjVkZTNhLi4yM2I4OTliIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZtLmMKPiBAQCAtMTAyNSw3ICsxMDI1LDcgQEAgc3RhdGljIGludCBhbWRn cHVfdm1fdXBkYXRlX2xldmVsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAgewo+ICAg CXN0cnVjdCBhbWRncHVfYm8gKnNoYWRvdzsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcg PSBOVUxMOwo+IC0JdWludDY0X3QgcGRfYWRkciwgc2hhZG93X2FkZHIgPSAwOwo+ICsJdWludDY0 X3QgcGRfYWRkciA9IDAsIHNoYWRvd19hZGRyID0gMDsKPiAgIAl1aW50MzJfdCBpbmNyID0gYW1k Z3B1X3ZtX2JvX3NpemUoYWRldiwgbGV2ZWwgKyAxKTsKPiAgIAl1aW50NjRfdCBsYXN0X3BkZSA9 IH4wLCBsYXN0X3B0ID0gfjAsIGxhc3Rfc2hhZG93ID0gfjA7Cj4gICAJdW5zaWduZWQgY291bnQg PSAwLCBwdF9pZHgsIG5kdyA9IDA7Cj4gQEAgLTEwNDQsNDggKzEwNDQsMTkgQEAgc3RhdGljIGlu dCBhbWRncHVfdm1fdXBkYXRlX2xldmVsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAg Cj4gICAJV0FSTl9PTih2bS0+dXNlX2NwdV9mb3JfdXBkYXRlICYmIHNoYWRvdyk7Cj4gICAJaWYg KHZtLT51c2VfY3B1X2Zvcl91cGRhdGUgJiYgIXNoYWRvdykgewo+IC0JCXIgPSBhbWRncHVfYm9f a21hcChwYXJlbnQtPmJvLCAodm9pZCAqKikmcGRfYWRkcik7Cj4gLQkJaWYgKHIpCj4gLQkJCXJl dHVybiByOwo+IC0JCXIgPSBhbWRncHVfdm1fYm9fd2FpdChhZGV2LCBwYXJlbnQtPmJvKTsKPiAt CQlpZiAodW5saWtlbHkocikpIHsKPiAtCQkJYW1kZ3B1X2JvX2t1bm1hcChwYXJlbnQtPmJvKTsK PiAtCQkJcmV0dXJuIHI7Cj4gLQkJfQo+ICsJCS8qIERlZmVyIGttYXBwaW5nIHVudGlsIGl0J3Mg YWN0dWFsbHkgbmVlZGVkLiBTb21lCj4gKwkJICogUERCcyBtYXkgbmVlZCBubyB1cGRhdGUgYXQg YWxsCj4gKwkJICovCj4gICAJCXBhcmFtcy5mdW5jID0gYW1kZ3B1X3ZtX2NwdV9zZXRfcHRlczsK PiArCQlwYXJhbXMuaWIgPSAodm9pZCAqKShsb25nKS0xOwo+ICAgCX0gZWxzZSB7Cj4gLQkJaWYg KHNoYWRvdykgewo+IC0JCQlyID0gYW1kZ3B1X3R0bV9iaW5kKCZzaGFkb3ctPnRibywgJnNoYWRv dy0+dGJvLm1lbSk7Cj4gLQkJCWlmIChyKQo+IC0JCQkJcmV0dXJuIHI7Cj4gLQkJfQo+IC0JCXJp bmcgPSBjb250YWluZXJfb2Yodm0tPmVudGl0eS5zY2hlZCwgc3RydWN0IGFtZGdwdV9yaW5nLAo+ IC0JCQkJICAgIHNjaGVkKTsKPiAtCj4gLQkJLyogcGFkZGluZywgZXRjLiAqLwo+IC0JCW5kdyA9 IDY0Owo+IC0KPiAtCQkvKiBhc3N1bWUgdGhlIHdvcnN0IGNhc2UgKi8KPiAtCQluZHcgKz0gcGFy ZW50LT5sYXN0X2VudHJ5X3VzZWQgKiA2Owo+IC0KPiAtCQlwZF9hZGRyID0gYW1kZ3B1X2JvX2dw dV9vZmZzZXQocGFyZW50LT5ibyk7Cj4gLQo+IC0JCWlmIChzaGFkb3cpIHsKPiAtCQkJc2hhZG93 X2FkZHIgPSBhbWRncHVfYm9fZ3B1X29mZnNldChzaGFkb3cpOwo+IC0JCQluZHcgKj0gMjsKPiAt CQl9IGVsc2Ugewo+IC0JCQlzaGFkb3dfYWRkciA9IDA7Cj4gLQkJfQo+IC0KPiAtCQlyID0gYW1k Z3B1X2pvYl9hbGxvY193aXRoX2liKGFkZXYsIG5kdyAqIDQsICZqb2IpOwo+IC0JCWlmIChyKQo+ IC0JCQlyZXR1cm4gcjsKPiAtCj4gLQkJcGFyYW1zLmliID0gJmpvYi0+aWJzWzBdOwo+ICsJCS8q IERlZmVyIElCIGFsbG9jYXRpb24gdW50aWwgaXQncyBhY3R1YWxseQo+ICsJCSAqIG5lZWRlZC4g U29tZSBQREJzIG1heSBuZWVkIG5vIHVwZGF0ZSBhdCBhbGwKPiArCQkgKi8KPiArCQlwYXJhbXMu aWIgPSBOVUxMOwo+ICAgCQlwYXJhbXMuZnVuYyA9IGFtZGdwdV92bV9kb19zZXRfcHRlczsKPiAg IAl9Cj4gICAKPiAtCj4gICAJLyogd2FsayBvdmVyIHRoZSBhZGRyZXNzIHNwYWNlIGFuZCB1cGRh dGUgdGhlIGRpcmVjdG9yeSAqLwo+ICAgCWZvciAocHRfaWR4ID0gMDsgcHRfaWR4IDw9IHBhcmVu dC0+bGFzdF9lbnRyeV91c2VkOyArK3B0X2lkeCkgewo+ICAgCQlzdHJ1Y3QgYW1kZ3B1X2JvICpi byA9IHBhcmVudC0+ZW50cmllc1twdF9pZHhdLmJvOwo+IEBAIC0xMDk0LDIyICsxMDY1LDUzIEBA IHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX3VwZGF0ZV9sZXZlbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwKPiAgIAkJaWYgKGJvID09IE5VTEwpCj4gICAJCQljb250aW51ZTsKPiAgIAo+IC0JCWlm IChiby0+c2hhZG93KSB7Cj4gLQkJCXN0cnVjdCBhbWRncHVfYm8gKnB0X3NoYWRvdyA9IGJvLT5z aGFkb3c7Cj4gLQo+IC0JCQlyID0gYW1kZ3B1X3R0bV9iaW5kKCZwdF9zaGFkb3ctPnRibywKPiAt CQkJCQkgICAgJnB0X3NoYWRvdy0+dGJvLm1lbSk7Cj4gLQkJCWlmIChyKQo+IC0JCQkJcmV0dXJu IHI7Cj4gLQkJfQo+IC0KPiAtCQlwdCA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0KGJvKTsKPiAtCQlw dCA9IGFtZGdwdV9nYXJ0X2dldF92bV9wZGUoYWRldiwgcHQpOwo+ICsJCXB0ID0gYW1kZ3B1X2dh cnRfZ2V0X3ZtX3BkZShhZGV2LCBiby0+dGJvLm9mZnNldCk7CkdldHRpbmcgb2Zmc2V0IGZyb20g YW1kZ3B1X2JvX2dwdV9vZmZzZXQoYm8pICBpcyBiZXR0ZXIgSSB0aGluaywgCmFsdGhvdWdoIHdl IGNhbiBhc3N1bWUgcHQgYm8gaXMgYSBrbm93biBkb21haW4uCgo+ICAgCQlpZiAocGFyZW50LT5l bnRyaWVzW3B0X2lkeF0uYWRkciA9PSBwdCkKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gICAJCXBh cmVudC0+ZW50cmllc1twdF9pZHhdLmFkZHIgPSBwdDsKPiAgIAo+ICsJCWlmICghcGFyYW1zLmli KSB7Cj4gKwkJCWlmIChzaGFkb3cpIHsKPiArCQkJCXIgPSBhbWRncHVfdHRtX2JpbmQoJnNoYWRv dy0+dGJvLAo+ICsJCQkJCQkgICAgJnNoYWRvdy0+dGJvLm1lbSk7Cj4gKwkJCQlpZiAocikKPiAr CQkJCQlyZXR1cm4gcjsKPiArCQkJfQo+ICsKPiArCQkJcmluZyA9IGNvbnRhaW5lcl9vZih2bS0+ ZW50aXR5LnNjaGVkLAo+ICsJCQkJCSAgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcsIHNjaGVkKTsKPiAr Cj4gKwkJCS8qIHBhZGRpbmcsIGV0Yy4gKi8KPiArCQkJbmR3ID0gNjQ7Cj4gKwo+ICsJCQkvKiBh c3N1bWUgdGhlIHdvcnN0IGNhc2UgKi8KPiArCQkJbmR3ICs9IChwYXJlbnQtPmxhc3RfZW50cnlf dXNlZCAtIHB0X2lkeCkgKiA2Owo+ICsKPiArCQkJcGRfYWRkciA9IHBhcmVudC0+Ym8tPnRiby5v ZmZzZXQ7Cj4gKwo+ICsJCQlpZiAoc2hhZG93KSB7Cj4gKwkJCQlzaGFkb3dfYWRkciA9IHNoYWRv dy0+dGJvLm9mZnNldDsKPiArCQkJCW5kdyAqPSAyOwo+ICsJCQl9IGVsc2Ugewo+ICsJCQkJc2hh ZG93X2FkZHIgPSAwOwo+ICsJCQl9Cj4gKwkJCXIgPSBhbWRncHVfam9iX2FsbG9jX3dpdGhfaWIo YWRldiwgbmR3ICogNCwgJmpvYik7Cj4gKwkJCWlmIChyKQo+ICsJCQkJcmV0dXJuIHI7Cj4gKwo+ ICsJCQlwYXJhbXMuaWIgPSAmam9iLT5pYnNbMF07Cj4gKwkJfSBlbHNlIGlmICghcGRfYWRkcikg ewo+ICsJCQlyID0gYW1kZ3B1X2JvX2ttYXAocGFyZW50LT5ibywgKHZvaWQgKiopJnBkX2FkZHIp Owo+ICsJCQlpZiAocikKPiArCQkJCXJldHVybiByOwo+ICsJCQlyID0gYW1kZ3B1X3ZtX2JvX3dh aXQoYWRldiwgcGFyZW50LT5ibyk7Cj4gKwkJCWlmICh1bmxpa2VseShyKSkgewo+ICsJCQkJYW1k Z3B1X2JvX2t1bm1hcChwYXJlbnQtPmJvKTsKPiArCQkJCXJldHVybiByOwo+ICsJCQl9Cj4gKwkJ fQo+ICsKPiAgIAkJcGRlID0gcGRfYWRkciArIHB0X2lkeCAqIDg7Cj4gICAJCWlmICgoKGxhc3Rf cGRlICsgOCAqIGNvdW50KSAhPSBwZGUpIHx8Cj4gICAJCSAgICAoKGxhc3RfcHQgKyBpbmNyICog Y291bnQpICE9IHB0KSB8fAo+IEBAIC0xMTQ4LDkgKzExNTAsOSBAQCBzdGF0aWMgaW50IGFtZGdw dV92bV91cGRhdGVfbGV2ZWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAKPiAgIAlp ZiAocGFyYW1zLmZ1bmMgPT0gYW1kZ3B1X3ZtX2NwdV9zZXRfcHRlcykKPiAgIAkJYW1kZ3B1X2Jv X2t1bm1hcChwYXJlbnQtPmJvKTsKPiAtCWVsc2UgaWYgKHBhcmFtcy5pYi0+bGVuZ3RoX2R3ID09 IDApIHsKPiArCWVsc2UgaWYgKHBhcmFtcy5pYiAmJiBwYXJhbXMuaWItPmxlbmd0aF9kdyA9PSAw KSB7Cj4gICAJCWFtZGdwdV9qb2JfZnJlZShqb2IpOwo+IC0JfSBlbHNlIHsKPiArCX0gZWxzZSBp ZiAocGFyYW1zLmliKSB7Cj4gICAJCWFtZGdwdV9yaW5nX3BhZF9pYihyaW5nLCBwYXJhbXMuaWIp Owo+ICAgCQlhbWRncHVfc3luY19yZXN2KGFkZXYsICZqb2ItPnN5bmMsIHBhcmVudC0+Ym8tPnRi by5yZXN2LAo+ICAgCQkJCSBBTURHUFVfRkVOQ0VfT1dORVJfVk0pOwo+IEBAIC0xMTY2LDggKzEx NjgsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV91cGRhdGVfbGV2ZWwoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCj4gICAKPiAgIAkJYW1kZ3B1X2JvX2ZlbmNlKHBhcmVudC0+Ym8sIGZlbmNl LCB0cnVlKTsKPiAgIAkJZG1hX2ZlbmNlX3B1dCh2bS0+bGFzdF9kaXJfdXBkYXRlKTsKPiAtCQl2 bS0+bGFzdF9kaXJfdXBkYXRlID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7Cj4gLQkJZG1hX2ZlbmNl X3B1dChmZW5jZSk7Cj4gKwkJdm0tPmxhc3RfZGlyX3VwZGF0ZSA9IGZlbmNlOwpIZXJlIEkgcHJl ZmVyIHRvIGtlZXAgcHJldmlvdXMgY29kZSwgdGhlIGxvZ2ljIGlzIG1vcmUgY2xlYXIuOikKPiAg IAl9Cj4gICAJLyoKPiAgIAkgKiBSZWN1cnNlIGludG8gdGhlIHN1YmRpcmVjdG9yaWVzLiBUaGlz IHJlY3Vyc2lvbiBpcyBoYXJtbGVzcyBiZWNhdXNlCj4gQEAgLTExNzYsNyArMTE3Nyw3IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X3ZtX3VwZGF0ZV9sZXZlbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiAgIAlmb3IgKHB0X2lkeCA9IDA7IHB0X2lkeCA8PSBwYXJlbnQtPmxhc3RfZW50cnlfdXNl ZDsgKytwdF9pZHgpIHsKPiAgIAkJc3RydWN0IGFtZGdwdV92bV9wdCAqZW50cnkgPSAmcGFyZW50 LT5lbnRyaWVzW3B0X2lkeF07Cj4gICAKPiAtCQlpZiAoIWVudHJ5LT5ibykKPiArCQlpZiAoIWVu dHJ5LT5ibyB8fCAhZW50cnktPmVudHJpZXMpCkluIGZhY3QsICFlbnRyeS0+ZW50cmllcyB3b3Vs ZCBiZSBjaGVja2VkIGF0IHRoZSBiZWdpbiBvZiB0aGlzIGZ1bmN0aW9uIAppbiBuZXh0IGxvb3As IGJ1dCBlaXRoZXIgd2F5IGlzIG9rIHRvIG1lIGhlcmUuCgpSZWdhcmRzLApEYXZpZCBaaG91Cj4g ICAJCQljb250aW51ZTsKPiAgIAo+ICAgCQlyID0gYW1kZ3B1X3ZtX3VwZGF0ZV9sZXZlbChhZGV2 LCB2bSwgZW50cnksIGxldmVsICsgMSk7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngK