From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: [PATCH v3 4/5] drm/amdgpu: use bulk moves for efficient VM LRU handling (v3) Date: Mon, 13 Aug 2018 17:58:50 +0800 Message-ID: <1534154331-11810-5-git-send-email-ray.huang@amd.com> References: <1534154331-11810-1-git-send-email-ray.huang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1534154331-11810-1-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Huang Rui , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org SSBjb250aW51ZSB0byB3b3JrIGZvciBidWxrIG1vdmluZyB0aGF0IGJhc2VkIG9uIHRoZSBwcm9w b3NhbCBieSBDaHJpc3RpYW4uCgpCYWNrZ3JvdW5kOgphbWRncHUgZHJpdmVyIHdpbGwgbW92ZSBh bGwgUEQvUFQgYW5kIFBlclZNIEJPcyBpbnRvIGlkbGUgbGlzdC4gVGhlbiBtb3ZlIGFsbCBvZgp0 aGVtIG9uIHRoZSBlbmQgb2YgTFJVIGxpc3Qgb25lIGJ5IG9uZS4gVGh1cywgdGhhdCBjYXVzZSBz byBtYW55IEJPcyBtb3ZlZCB0bwp0aGUgZW5kIG9mIHRoZSBMUlUsIGFuZCBpbXBhY3QgcGVyZm9y bWFuY2Ugc2VyaW91c2x5LgoKVGhlbiBDaHJpc3RpYW4gcHJvdmlkZWQgYSB3b3JrYXJvdW5kIHRv IG5vdCBtb3ZlIFBEL1BUIEJPcyBvbiBMUlUgd2l0aCBiZWxvdwpwYXRjaDoKImRybS9hbWRncHU6 IGJhbmQgYWlkIHZhbGlkYXRpbmcgVk0gUFRzIgpDb21taXQgMGJiZjMyMDI2Y2Y1YmE0MWU5OTIy YjMwZTI2ZTFiZWQxZWNkMzhhZQoKSG93ZXZlciwgdGhlIGZpbmFsIHNvbHV0aW9uIHNob3VsZCBi dWxrIG1vdmUgYWxsIFBEL1BUIGFuZCBQZXJWTSBCT3Mgb24gdGhlIExSVQppbnN0ZWFkIG9mIG9u ZSBieSBvbmUuCgpXaGVuZXZlciBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKCkgaXMgY2FsbGVk IGFuZCB3ZSBoYXZlIEJPcyB3aGljaCBuZWVkIHRvIGJlCnZhbGlkYXRlZCB3ZSBtb3ZlIGFsbCBC T3MgdG9nZXRoZXIgdG8gdGhlIGVuZCBvZiB0aGUgTFJVIHdpdGhvdXQgZHJvcHBpbmcgdGhlCmxv Y2sgZm9yIHRoZSBMUlUuCgpXaGlsZSBkb2luZyBzbyB3ZSBub3RlIHRoZSBiZWdpbm5pbmcgYW5k IGVuZCBvZiB0aGlzIGJsb2NrIGluIHRoZSBMUlUgbGlzdC4KCk5vdyB3aGVuIGFtZGdwdV92bV92 YWxpZGF0ZV9wdF9ib3MoKSBpcyBjYWxsZWQgYW5kIHdlIGRvbid0IGhhdmUgYW55dGhpbmcgdG8g ZG8sCndlIGRvbid0IG1vdmUgZXZlcnkgQk8gb25lIGJ5IG9uZSwgYnV0IGluc3RlYWQgY3V0IHRo ZSBMUlUgbGlzdCBpbnRvIHBpZWNlcyBzbwp0aGF0IHdlIGJ1bGsgbW92ZSBldmVyeXRoaW5nIHRv IHRoZSBlbmQgaW4ganVzdCBvbmUgb3BlcmF0aW9uLgoKVGVzdCBkYXRhOgorLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKwp8ICAgICAgICAgICAgICB8VGhlIFRhbG9zICAgICAgICB8Q2xwZWFr KE9DTCl8QnVzU3BlZWRSZWFkYmFjayhPQ0wpICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAg ICAgICB8UHJpbmNpcGxlKFZ1bGthbil8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8MC4zMTkgbXMoMWspIDAuMzE0 IG1zKDJLKSAwLjMwOCBtcyg0SykgfAp8IE9yaWdpbmFsICAgICB8ICAxNDcuNyBGUFMgICAgICB8 ICA3Ni44NiB1cyB8MC4zMDcgbXMoOEspIDAuMzEwIG1zKDE2SykgICAgICAgICAgICAgfAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IE9yaWduaWFsICsgV0F8ICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICB8MC4yNTQgbXMoMUspIDAuMjQxIG1zKDJLKSAgICAgICAgICAgICAgfAp8 KGRvbid0IG1vdmUgICB8ICAxNjIuMSBGUFMgICAgICB8ICA0Mi4xNSB1cyB8MC4yMzAgbXMoNEsp IDAuMjIzIG1zKDhLKSAwLjIwNCBtcygxNkspfAp8UFQgQk9zIG9uIExSVSl8ICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IEJ1bGsgbW92ZSAgICB8ICAxNjMuMSBG UFMgICAgICB8ICA0MC41MiB1cyB8MC4yNDQgbXMoMUspIDAuMjUyIG1zKDJLKSAwLjIxMyBtcyg0 SykgfAp8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8MC4yMTQg bXMoOEspIDAuMjI1IG1zKDE2SykgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKwoKQWZ0ZXIgdGVzdCB0aGVtIHdpdGggYWJvdmUgdGhyZWUgYmVuY2htYXJrcyBpbmNs dWRlIHZ1bGthbiBhbmQgb3BlbmNsLiBXZSBjYW4Kc2VlIHRoZSB2aXNpYmxlIGltcHJvdmVtZW50 IHRoYW4gb3JpZ2luYWwsIGFuZCBldmVuIGJldHRlciB0aGFuIG9yaWdpbmFsIHdpdGgKd29ya2Fy b3VuZC4KCnYyOiBtb3ZlIGFsbCBCT3MgaW5jbHVkZSBpZGxlLCByZWxvY2F0ZWQsIGFuZCBtb3Zl ZCBsaXN0IHRvIHRoZSBlbmQgb2YgTFJVIGFuZApwdXQgdGhlbSB0b2dldGhlci4KdjM6IHJlbW92 ZSB1bnVzZWQgcGFyYW1ldGVyIGFuZCB1c2UgbGlzdF9mb3JfZWFjaF9lbnRyeSBpbnN0ZWFkIG9m IHRoZSBvbmUgd2l0aApzYXZlIGVudHJ5LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5p ZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJh eS5odWFuZ0BhbWQuY29tPgpUZXN0ZWQtYnk6IE1pa2UgTG90aGlhbiA8bWlrZUBmaXJlYnVybi5j by51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyB8IDczICsr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92bS5oIHwgIDQgKysKIDIgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygr KSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwpp bmRleCA5Yzg0NzcwLi5lZTFhZjUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dm0uYwpAQCAtMjY4LDYgKzI2OCw1MyBAQCB2b2lkIGFtZGdwdV92bV9nZXRfcGRfYm8oc3RydWN0 IGFtZGdwdV92bSAqdm0sCiB9CiAKIC8qKgorICogYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwg LSBtb3ZlIG9uZSBsaXN0IG9mIEJPcyB0byBlbmQgb2YgTFJVCisgKgorICogQHZtOiB2bSBwcm92 aWRpbmcgdGhlIEJPcworICogQGxpc3Q6IHRoZSBsaXN0IHRoYXQgc3RvcmVkIEJPcworICoKKyAq IE1vdmUgb25lIGxpc3Qgb2YgQk9zIHRvIHRoZSBlbmQgb2YgTFJVIGFuZCB1cGRhdGUgdGhlIHBv c2l0aW9ucy4KKyAqLworc3RhdGljIHZvaWQKK2FtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsX2J5 X2xpc3Qoc3RydWN0IGFtZGdwdV92bSAqdm0sIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCit7CisJ c3RydWN0IGFtZGdwdV92bV9ib19iYXNlICpib19iYXNlOworCisJbGlzdF9mb3JfZWFjaF9lbnRy eShib19iYXNlLCBsaXN0LCB2bV9zdGF0dXMpIHsKKwkJc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBi b19iYXNlLT5ibzsKKworCQlpZiAoIWJvLT5wYXJlbnQpCisJCQljb250aW51ZTsKKworCQl0dG1f Ym9fbW92ZV90b19scnVfdGFpbCgmYm8tPnRibywgJnZtLT5scnVfYnVsa19tb3ZlKTsKKwkJaWYg KGJvLT5zaGFkb3cpCisJCQl0dG1fYm9fbW92ZV90b19scnVfdGFpbCgmYm8tPnNoYWRvdy0+dGJv LAorCQkJCQkJJnZtLT5scnVfYnVsa19tb3ZlKTsKKwl9Cit9CisKKy8qKgorICogYW1kZ3B1X3Zt X21vdmVfdG9fbHJ1X3RhaWwgLSBtb3ZlIGFsbCBCT3MgdG8gdGhlIGVuZCBvZiBMUlUKKyAqCisg KiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCisgKiBAdm06IHZtIHByb3ZpZGluZyB0aGUg Qk9zCisgKgorICogTW92ZSBhbGwgQk9zIHRvIHRoZSBlbmQgb2YgTFJVIGFuZCByZW1lbWJlciB0 aGVpciBwb3NpdGlvbnMgdG8gcHV0IHRoZW0KKyAqIHRvZ2V0aGVyLgorICovCitzdGF0aWMgdm9p ZAorYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IHN0cnVjdCBhbWRncHVfdm0gKnZtKQoreworCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0g YWRldi0+bW1hbi5iZGV2Lmdsb2I7CisKKwlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKKwlh bWRncHVfdm1fbW92ZV90b19scnVfdGFpbF9ieV9saXN0KHZtLCAmdm0tPmlkbGUpOworCWFtZGdw dV92bV9tb3ZlX3RvX2xydV90YWlsX2J5X2xpc3Qodm0sICZ2bS0+cmVsb2NhdGVkKTsKKwlhbWRn cHVfdm1fbW92ZV90b19scnVfdGFpbF9ieV9saXN0KHZtLCAmdm0tPm1vdmVkKTsKKwlzcGluX3Vu bG9jaygmZ2xvYi0+bHJ1X2xvY2spOworfQorCisvKioKICAqIGFtZGdwdV92bV92YWxpZGF0ZV9w dF9ib3MgLSB2YWxpZGF0ZSB0aGUgcGFnZSB0YWJsZSBCT3MKICAqCiAgKiBAYWRldjogYW1kZ3B1 IGRldmljZSBwb2ludGVyCkBAIC0yODYsNiArMzMzLDcgQEAgaW50IGFtZGdwdV92bV92YWxpZGF0 ZV9wdF9ib3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZt LAogewogCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYWRldi0+bW1hbi5iZGV2Lmdsb2I7 CiAJc3RydWN0IGFtZGdwdV92bV9ib19iYXNlICpib19iYXNlLCAqdG1wOworCWJvb2wgdmFsaWRh dGVkID0gZmFsc2U7CiAJaW50IHIgPSAwOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJv X2Jhc2UsIHRtcCwgJnZtLT5ldmljdGVkLCB2bV9zdGF0dXMpIHsKQEAgLTI5NSwxNCArMzQzLDkg QEAgaW50IGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAogCQkJciA9IHZhbGlkYXRlKHBhcmFtLCBibyk7CiAJ CQlpZiAocikKIAkJCQlicmVhazsKLQotCQkJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7Ci0J CQl0dG1fYm9fbW92ZV90b19scnVfdGFpbCgmYm8tPnRibywgTlVMTCk7Ci0JCQlpZiAoYm8tPnNo YWRvdykKLQkJCQl0dG1fYm9fbW92ZV90b19scnVfdGFpbCgmYm8tPnNoYWRvdy0+dGJvLCBOVUxM KTsKLQkJCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7CiAJCX0KIAorCQl2YWxpZGF0ZWQg PSB0cnVlOwogCQlpZiAoYm8tPnRiby50eXBlICE9IHR0bV9ib190eXBlX2tlcm5lbCkgewogCQkJ c3Bpbl9sb2NrKCZ2bS0+bW92ZWRfbG9jayk7CiAJCQlsaXN0X21vdmUoJmJvX2Jhc2UtPnZtX3N0 YXR1cywgJnZtLT5tb3ZlZCk7CkBAIC0zMTIsMTggKzM1NSwxNiBAQCBpbnQgYW1kZ3B1X3ZtX3Zh bGlkYXRlX3B0X2JvcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92 bSAqdm0sCiAJCX0KIAl9CiAKLQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKLQlsaXN0X2Zv cl9lYWNoX2VudHJ5KGJvX2Jhc2UsICZ2bS0+aWRsZSwgdm1fc3RhdHVzKSB7Ci0JCXN0cnVjdCBh bWRncHVfYm8gKmJvID0gYm9fYmFzZS0+Ym87CisJaWYgKCF2YWxpZGF0ZWQpIHsKKwkJc3Bpbl9s b2NrKCZnbG9iLT5scnVfbG9jayk7CisJCXR0bV9ib19idWxrX21vdmVfbHJ1X3RhaWwoJnZtLT5s cnVfYnVsa19tb3ZlKTsKKwkJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKKwkJcmV0dXJu IDA7CisJfQogCi0JCWlmICghYm8tPnBhcmVudCkKLQkJCWNvbnRpbnVlOworCW1lbXNldCgmdm0t PmxydV9idWxrX21vdmUsIDAsIHNpemVvZih2bS0+bHJ1X2J1bGtfbW92ZSkpOwogCi0JCXR0bV9i b19tb3ZlX3RvX2xydV90YWlsKCZiby0+dGJvLCBOVUxMKTsKLQkJaWYgKGJvLT5zaGFkb3cpCi0J CQl0dG1fYm9fbW92ZV90b19scnVfdGFpbCgmYm8tPnNoYWRvdy0+dGJvLCBOVUxMKTsKLQl9Ci0J c3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKKwlhbWRncHVfdm1fbW92ZV90b19scnVfdGFp bChhZGV2LCB2bSk7CiAKIAlyZXR1cm4gcjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZtLmgKaW5kZXggNjdhMTVkNC4uOTI3MjVhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3ZtLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9yYnRyZWUu aD4KICNpbmNsdWRlIDxkcm0vZ3B1X3NjaGVkdWxlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmls ZS5oPgorI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgogCiAjaW5jbHVkZSAiYW1k Z3B1X3N5bmMuaCIKICNpbmNsdWRlICJhbWRncHVfcmluZy5oIgpAQCAtMjI2LDYgKzIyNyw5IEBA IHN0cnVjdCBhbWRncHVfdm0gewogCiAJLyogU29tZSBiYXNpYyBpbmZvIGFib3V0IHRoZSB0YXNr ICovCiAJc3RydWN0IGFtZGdwdV90YXNrX2luZm8gdGFza19pbmZvOworCisJLyogU3RvcmUgcG9z aXRpb25zIG9mIGdyb3VwIG9mIEJPcyAqLworCXN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSBscnVf YnVsa19tb3ZlOwogfTsKIAogc3RydWN0IGFtZGdwdV92bV9tYW5hZ2VyIHsKLS0gCjIuNy40Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1h aWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK