From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 2/8] drm/amdgpu: use leaf iterator for allocating PD/PT Date: Wed, 12 Sep 2018 10:54:39 +0200 Message-ID: <20180912085445.3245-2-christian.koenig@amd.com> References: <20180912085445.3245-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180912085445.3245-1-christian.koenig-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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org TGVzcyBjb2RlIGFuZCBhbGxvd3MgZm9yIGVhc2llciBlcnJvciBoYW5kbGluZy4KClNpZ25lZC1v ZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KUmV2aWV3 ZWQtYnk6IEZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5LdWVobGluZ0BhbWQuY29tPgpSZXZpZXdlZC1i eTogSnVud2VpIFpoYW5nIDxKZXJyeS5aaGFuZ0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIHwgMTU2ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDEwMSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCmluZGV4IDc4N2EyMDBjZjc5 Ni4uMmNjMzRkMWI4N2UwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwpA QCAtODQ0LDEwMyArODQ0LDYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3ZtX2JvX3BhcmFtKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKIAkJYnAtPnJlc3Yg PSB2bS0+cm9vdC5iYXNlLmJvLT50Ym8ucmVzdjsKIH0KIAotLyoqCi0gKiBhbWRncHVfdm1fYWxs b2NfbGV2ZWxzIC0gYWxsb2NhdGUgdGhlIFBEL1BUIGxldmVscwotICoKLSAqIEBhZGV2OiBhbWRn cHVfZGV2aWNlIHBvaW50ZXIKLSAqIEB2bTogcmVxdWVzdGVkIHZtCi0gKiBAcGFyZW50OiBwYXJl bnQgUFQKLSAqIEBzYWRkcjogc3RhcnQgb2YgdGhlIGFkZHJlc3MgcmFuZ2UKLSAqIEBlYWRkcjog ZW5kIG9mIHRoZSBhZGRyZXNzIHJhbmdlCi0gKiBAbGV2ZWw6IFZNUFQgbGV2ZWwKLSAqIEBhdHM6 IGluZGljYXRlIEFUUyBzdXBwb3J0IGZyb20gUFRFCi0gKgotICogTWFrZSBzdXJlIHRoZSBwYWdl IGRpcmVjdG9yaWVzIGFuZCBwYWdlIHRhYmxlcyBhcmUgYWxsb2NhdGVkCi0gKgotICogUmV0dXJu czoKLSAqIDAgb24gc3VjY2VzcywgZXJybm8gb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgaW50IGFt ZGdwdV92bV9hbGxvY19sZXZlbHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJICBz dHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKLQkJCQkgIHN0cnVjdCBhbWRncHVfdm1fcHQgKnBhcmVudCwK LQkJCQkgIHVpbnQ2NF90IHNhZGRyLCB1aW50NjRfdCBlYWRkciwKLQkJCQkgIHVuc2lnbmVkIGxl dmVsLCBib29sIGF0cykKLXsKLQl1bnNpZ25lZCBzaGlmdCA9IGFtZGdwdV92bV9sZXZlbF9zaGlm dChhZGV2LCBsZXZlbCk7Ci0Jc3RydWN0IGFtZGdwdV9ib19wYXJhbSBicDsKLQl1bnNpZ25lZCBw dF9pZHgsIGZyb20sIHRvOwotCWludCByOwotCi0JaWYgKCFwYXJlbnQtPmVudHJpZXMpIHsKLQkJ dW5zaWduZWQgbnVtX2VudHJpZXMgPSBhbWRncHVfdm1fbnVtX2VudHJpZXMoYWRldiwgbGV2ZWwp OwotCi0JCXBhcmVudC0+ZW50cmllcyA9IGt2bWFsbG9jX2FycmF5KG51bV9lbnRyaWVzLAotCQkJ CQkJICAgc2l6ZW9mKHN0cnVjdCBhbWRncHVfdm1fcHQpLAotCQkJCQkJICAgR0ZQX0tFUk5FTCB8 IF9fR0ZQX1pFUk8pOwotCQlpZiAoIXBhcmVudC0+ZW50cmllcykKLQkJCXJldHVybiAtRU5PTUVN OwotCX0KLQotCWZyb20gPSBzYWRkciA+PiBzaGlmdDsKLQl0byA9IGVhZGRyID4+IHNoaWZ0Owot CWlmIChmcm9tID49IGFtZGdwdV92bV9udW1fZW50cmllcyhhZGV2LCBsZXZlbCkgfHwKLQkgICAg dG8gPj0gYW1kZ3B1X3ZtX251bV9lbnRyaWVzKGFkZXYsIGxldmVsKSkKLQkJcmV0dXJuIC1FSU5W QUw7Ci0KLQkrK2xldmVsOwotCXNhZGRyID0gc2FkZHIgJiAoKDEgPDwgc2hpZnQpIC0gMSk7Ci0J ZWFkZHIgPSBlYWRkciAmICgoMSA8PCBzaGlmdCkgLSAxKTsKLQotCWFtZGdwdV92bV9ib19wYXJh bShhZGV2LCB2bSwgbGV2ZWwsICZicCk7Ci0KLQkvKiB3YWxrIG92ZXIgdGhlIGFkZHJlc3Mgc3Bh Y2UgYW5kIGFsbG9jYXRlIHRoZSBwYWdlIHRhYmxlcyAqLwotCWZvciAocHRfaWR4ID0gZnJvbTsg cHRfaWR4IDw9IHRvOyArK3B0X2lkeCkgewotCQlzdHJ1Y3QgYW1kZ3B1X3ZtX3B0ICplbnRyeSA9 ICZwYXJlbnQtPmVudHJpZXNbcHRfaWR4XTsKLQkJc3RydWN0IGFtZGdwdV9ibyAqcHQ7Ci0KLQkJ aWYgKCFlbnRyeS0+YmFzZS5ibykgewotCQkJciA9IGFtZGdwdV9ib19jcmVhdGUoYWRldiwgJmJw LCAmcHQpOwotCQkJaWYgKHIpCi0JCQkJcmV0dXJuIHI7Ci0KLQkJCXIgPSBhbWRncHVfdm1fY2xl YXJfYm8oYWRldiwgdm0sIHB0LCBsZXZlbCwgYXRzKTsKLQkJCWlmIChyKSB7Ci0JCQkJYW1kZ3B1 X2JvX3VucmVmKCZwdC0+c2hhZG93KTsKLQkJCQlhbWRncHVfYm9fdW5yZWYoJnB0KTsKLQkJCQly ZXR1cm4gcjsKLQkJCX0KLQotCQkJaWYgKHZtLT51c2VfY3B1X2Zvcl91cGRhdGUpIHsKLQkJCQly ID0gYW1kZ3B1X2JvX2ttYXAocHQsIE5VTEwpOwotCQkJCWlmIChyKSB7Ci0JCQkJCWFtZGdwdV9i b191bnJlZigmcHQtPnNoYWRvdyk7Ci0JCQkJCWFtZGdwdV9ib191bnJlZigmcHQpOwotCQkJCQly ZXR1cm4gcjsKLQkJCQl9Ci0JCQl9Ci0KLQkJCS8qIEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIHJv b3QgZGlyZWN0b3J5IHRvIGF2b2lkCi0JCQkqIGZyZWVpbmcgdGhlbSB1cCBpbiB0aGUgd3Jvbmcg b3JkZXIuCi0JCQkqLwotCQkJcHQtPnBhcmVudCA9IGFtZGdwdV9ib19yZWYocGFyZW50LT5iYXNl LmJvKTsKLQotCQkJYW1kZ3B1X3ZtX2JvX2Jhc2VfaW5pdCgmZW50cnktPmJhc2UsIHZtLCBwdCk7 Ci0JCX0KLQotCQlpZiAobGV2ZWwgPCBBTURHUFVfVk1fUFRCKSB7Ci0JCQl1aW50NjRfdCBzdWJf c2FkZHIgPSAocHRfaWR4ID09IGZyb20pID8gc2FkZHIgOiAwOwotCQkJdWludDY0X3Qgc3ViX2Vh ZGRyID0gKHB0X2lkeCA9PSB0bykgPyBlYWRkciA6Ci0JCQkJKCgxIDw8IHNoaWZ0KSAtIDEpOwot CQkJciA9IGFtZGdwdV92bV9hbGxvY19sZXZlbHMoYWRldiwgdm0sIGVudHJ5LCBzdWJfc2FkZHIs Ci0JCQkJCQkgICBzdWJfZWFkZHIsIGxldmVsLCBhdHMpOwotCQkJaWYgKHIpCi0JCQkJcmV0dXJu IHI7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogLyoqCiAgKiBhbWRncHVfdm1fYWxsb2Nf cHRzIC0gQWxsb2NhdGUgcGFnZSB0YWJsZXMuCiAgKgpAQCAtOTQ5LDcgKzg1Miw3IEBAIHN0YXRp YyBpbnQgYW1kZ3B1X3ZtX2FsbG9jX2xldmVscyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK ICAqIEBzYWRkcjogU3RhcnQgYWRkcmVzcyB3aGljaCBuZWVkcyB0byBiZSBhbGxvY2F0ZWQKICAq IEBzaXplOiBTaXplIGZyb20gc3RhcnQgYWRkcmVzcyB3ZSBuZWVkLgogICoKLSAqIE1ha2Ugc3Vy ZSB0aGUgcGFnZSB0YWJsZXMgYXJlIGFsbG9jYXRlZC4KKyAqIE1ha2Ugc3VyZSB0aGUgcGFnZSBk aXJlY3RvcmllcyBhbmQgcGFnZSB0YWJsZXMgYXJlIGFsbG9jYXRlZAogICoKICAqIFJldHVybnM6 CiAgKiAwIG9uIHN1Y2Nlc3MsIGVycm5vIG90aGVyd2lzZS4KQEAgLTk1OCw4ICs4NjEsMTEgQEAg aW50IGFtZGdwdV92bV9hbGxvY19wdHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQlz dHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKIAkJCXVpbnQ2NF90IHNhZGRyLCB1aW50NjRfdCBzaXplKQog ewotCXVpbnQ2NF90IGVhZGRyOworCXN0cnVjdCBhbWRncHVfdm1fcHRfY3Vyc29yIGN1cnNvcjsK KwlzdHJ1Y3QgYW1kZ3B1X2JvICpwdDsKIAlib29sIGF0cyA9IGZhbHNlOworCXVpbnQ2NF90IGVh ZGRyOworCWludCByOwogCiAJLyogdmFsaWRhdGUgdGhlIHBhcmFtZXRlcnMgKi8KIAlpZiAoc2Fk ZHIgJiBBTURHUFVfR1BVX1BBR0VfTUFTSyB8fCBzaXplICYgQU1ER1BVX0dQVV9QQUdFX01BU0sp CkBAIC05NzksOCArODg1LDU2IEBAIGludCBhbWRncHVfdm1fYWxsb2NfcHRzKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlyZXR1cm4gYW1kZ3B1 X3ZtX2FsbG9jX2xldmVscyhhZGV2LCB2bSwgJnZtLT5yb290LCBzYWRkciwgZWFkZHIsCi0JCQkJ ICAgICAgYWRldi0+dm1fbWFuYWdlci5yb290X2xldmVsLCBhdHMpOworCWZvcl9lYWNoX2FtZGdw dV92bV9wdF9sZWFmKGFkZXYsIHZtLCBzYWRkciwgZWFkZHIsIGN1cnNvcikgeworCQlzdHJ1Y3Qg YW1kZ3B1X3ZtX3B0ICplbnRyeSA9IGN1cnNvci5lbnRyeTsKKwkJc3RydWN0IGFtZGdwdV9ib19w YXJhbSBicDsKKworCQlpZiAoY3Vyc29yLmxldmVsIDwgQU1ER1BVX1ZNX1BUQikgeworCQkJdW5z aWduZWQgbnVtX2VudHJpZXM7CisKKwkJCW51bV9lbnRyaWVzID0gYW1kZ3B1X3ZtX251bV9lbnRy aWVzKGFkZXYsIGN1cnNvci5sZXZlbCk7CisJCQllbnRyeS0+ZW50cmllcyA9IGt2bWFsbG9jX2Fy cmF5KG51bV9lbnRyaWVzLAorCQkJCQkJCXNpemVvZigqZW50cnktPmVudHJpZXMpLAorCQkJCQkJ CUdGUF9LRVJORUwgfAorCQkJCQkJCV9fR0ZQX1pFUk8pOworCQkJaWYgKCFlbnRyeS0+ZW50cmll cykKKwkJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisKKwkJaWYgKGVudHJ5LT5iYXNlLmJvKQor CQkJY29udGludWU7CisKKwkJYW1kZ3B1X3ZtX2JvX3BhcmFtKGFkZXYsIHZtLCBjdXJzb3IubGV2 ZWwsICZicCk7CisKKwkJciA9IGFtZGdwdV9ib19jcmVhdGUoYWRldiwgJmJwLCAmcHQpOworCQlp ZiAocikKKwkJCXJldHVybiByOworCisJCXIgPSBhbWRncHVfdm1fY2xlYXJfYm8oYWRldiwgdm0s IHB0LCBjdXJzb3IubGV2ZWwsIGF0cyk7CisJCWlmIChyKQorCQkJZ290byBlcnJvcl9mcmVlX3B0 OworCisJCWlmICh2bS0+dXNlX2NwdV9mb3JfdXBkYXRlKSB7CisJCQlyID0gYW1kZ3B1X2JvX2tt YXAocHQsIE5VTEwpOworCQkJaWYgKHIpCisJCQkJZ290byBlcnJvcl9mcmVlX3B0OworCQl9CisK KwkJLyogS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBkaXJlY3RvcnkgdG8gYXZvaWQKKwkJ KiBmcmVlaW5nIHRoZW0gdXAgaW4gdGhlIHdyb25nIG9yZGVyLgorCQkqLworCQlwdC0+cGFyZW50 ID0gYW1kZ3B1X2JvX3JlZihjdXJzb3IucGFyZW50LT5iYXNlLmJvKTsKKworCQlhbWRncHVfdm1f Ym9fYmFzZV9pbml0KCZlbnRyeS0+YmFzZSwgdm0sIHB0KTsKKwl9CisKKwlyZXR1cm4gMDsKKwor ZXJyb3JfZnJlZV9wdDoKKwlhbWRncHVfYm9fdW5yZWYoJnB0LT5zaGFkb3cpOworCWFtZGdwdV9i b191bnJlZigmcHQpOworCXJldHVybiByOwogfQogCiAvKioKLS0gCjIuMTQuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxp c3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==