From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 1/2] [WIP]drm/ttm: add waiter list to prevent allocation not in order Date: Fri, 26 Jan 2018 18:22:46 +0800 Message-ID: <20180126102247.17923-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Chunming Zhou , thomas-4+hqylr40dJg9hUCZPvPmw@public.gmane.org, christian.koenig-5C7GfCeVMHo@public.gmane.org List-Id: dri-devel@lists.freedesktop.org dGhlcmUgaXMgYSBzY2hlZHVsaW5nIGJhbGFuY2UgaXNzdWUgYWJvdXQgZ2V0IG5vZGUgbGlrZToK YS4gcHJvY2VzcyBBIGFsbG9jYXRlcyBmdWxsIG1lbW9yeSBhbmQgdXNlIGl0IGZvciBzdWJtaXNz aW9uLgpiLiBwcm9jZXNzIEIgdHJpZXMgdG8gYWxsb2NhdGVzIG1lbW9yeSwgd2lsbCB3YWl0IGZv ciBwcm9jZXNzIEEgQk8gaWRsZSBpbiBldmljdGlvbi4KYy4gcHJvY2VzcyBBIGNvbXBsZXRlcyB0 aGUgam9iLCBwcm9jZXNzIEIgZXZpY3Rpb24gd2lsbCBwdXQgcHJvY2VzcyBBIEJPIG5vZGUsCmJ1 dCBpbiB0aGUgbWVhbnRpbWUsIHByb2Nlc3MgQyBpcyBjb21taW5nIHRvIGFsbG9jYXRlIEJPLCB3 aGlsbCBkaXJlY3RseSBnZXQgbm9kZSBzdWNjZXNzZnVsbHksIGFuZCBkbyBzdWJtaXNzaW9uLApw cm9jZXNzIEIgd2lsbCBhZ2FpbiB3YWl0IGZvciBwcm9jZXNzIEMgQk8gaWRsZS4KZC4gcmVwZWF0 IHRoZSBhYm92ZSBzZXRwcywgcHJvY2VzcyBCIGNvdWxkIGJlIGRlbGF5ZWQgbXVjaCBtb3JlLgoK bGF0ZXIgYWxsb2NhdGlvbiBtdXN0IG5vdCBiZSBhaGVhZCBvZiBmcm9udCBpbiBzYW1lIHBsYWNl LgoKQ2hhbmdlLUlkOiBJM2RhYTg5MmU1MGY4MjIyNmM1NTJjYzAwOGEyOWU1NTg5NGE5OGYxOApT aWduZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgfCA2OSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQogaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAgICB8ICA3 ICsrKysrCiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oIHwgIDcgKysrKysKIDMgZmls ZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym8uYwppbmRleCBkMzNhNmJiNzQyYTEuLjU1OGVjMmNmNDY1ZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5j CkBAIC04NDEsNiArODQxLDU4IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2FkZF9tb3ZlX2ZlbmNlKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lk IHR0bV9tYW5faW5pdF93YWl0ZXIoc3RydWN0IHR0bV9ib193YWl0ZXIgKndhaXRlciwKKwkJCQlz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAorCQkJCWNvbnN0IHN0cnVjdCB0dG1fcGxhY2Ug KnBsYWNlKQoreworCXdhaXRlci0+dGJvID0gYm87CisJbWVtY3B5KCh2b2lkICopJndhaXRlci0+ cGxhY2UsICh2b2lkICopcGxhY2UsIHNpemVvZigqcGxhY2UpKTsKKwlJTklUX0xJU1RfSEVBRCgm d2FpdGVyLT5saXN0KTsKK30KKworc3RhdGljIHZvaWQgdHRtX21hbl9hZGRfd2FpdGVyKHN0cnVj dCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAorCQkJICAgICAgIHN0cnVjdCB0dG1fYm9fd2Fp dGVyICp3YWl0ZXIpCit7CisJaWYgKCF3YWl0ZXIpCisJCXJldHVybjsKKwlzcGluX2xvY2soJm1h bi0+d2FpdF9sb2NrKTsKKwlsaXN0X2FkZF90YWlsKCZ3YWl0ZXItPmxpc3QsICZtYW4tPndhaXRl cl9saXN0KTsKKwlzcGluX3VubG9jaygmbWFuLT53YWl0X2xvY2spOworfQorCitzdGF0aWMgdm9p ZCB0dG1fbWFuX2RlbF93YWl0ZXIoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCisJ CQkgICAgICAgc3RydWN0IHR0bV9ib193YWl0ZXIgKndhaXRlcikKK3sKKwlpZiAoIXdhaXRlcikK KwkJcmV0dXJuOworCXNwaW5fbG9jaygmbWFuLT53YWl0X2xvY2spOworCWlmICghbGlzdF9lbXB0 eSgmd2FpdGVyLT5saXN0KSkKKwkJbGlzdF9kZWwoJndhaXRlci0+bGlzdCk7CisJc3Bpbl91bmxv Y2soJm1hbi0+d2FpdF9sb2NrKTsKKwlrZnJlZSh3YWl0ZXIpOworfQorCitpbnQgdHRtX21hbl9j aGVja19ibyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKKwkJICAgICBzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAorCQkgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBs YWNlKQoreworCXN0cnVjdCB0dG1fYm9fd2FpdGVyICp3YWl0ZXIsICp0bXA7CisKKwlzcGluX2xv Y2soJm1hbi0+d2FpdF9sb2NrKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUod2FpdGVyLCB0 bXAsICZtYW4tPndhaXRlcl9saXN0LCBsaXN0KSB7CisJCWlmICgoYm8gIT0gd2FpdGVyLT50Ym8p ICYmCisJCSAgICAoKHBsYWNlLT5mcGZuID49IHdhaXRlci0+cGxhY2UuZnBmbiAmJgorCQkgICAg ICBwbGFjZS0+ZnBmbiA8PSB3YWl0ZXItPnBsYWNlLmxwZm4pIHx8CisJCSAgICAgKHBsYWNlLT5s cGZuIDw9IHdhaXRlci0+cGxhY2UubHBmbiAmJiBwbGFjZS0+bHBmbiA+PQorCQkgICAgICB3YWl0 ZXItPnBsYWNlLmZwZm4pKSkKKwkJICAgIGdvdG8gbGF0ZXJfYm87CisJfQorCXNwaW5fdW5sb2Nr KCZtYW4tPndhaXRfbG9jayk7CisJcmV0dXJuIHRydWU7CitsYXRlcl9ibzoKKwlzcGluX3VubG9j aygmbWFuLT53YWl0X2xvY2spOworCXJldHVybiBmYWxzZTsKK30KIC8qKgogICogUmVwZWF0ZWRs eSBldmljdCBtZW1vcnkgZnJvbSB0aGUgTFJVIGZvciBAbWVtX3R5cGUgdW50aWwgd2UgY3JlYXRl IGVub3VnaAogICogc3BhY2UsIG9yIHdlJ3ZlIGV2aWN0ZWQgZXZlcnl0aGluZyBhbmQgdGhlcmUg aXNuJ3QgZW5vdWdoIHNwYWNlLgpAQCAtODUzLDE3ICs5MDUsMjYgQEAgc3RhdGljIGludCB0dG1f Ym9fbWVtX2ZvcmNlX3NwYWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiB7CiAJc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKIAlzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbiA9ICZiZGV2LT5tYW5bbWVtX3R5cGVdOworCXN0cnVjdCB0dG1fYm9fd2Fp dGVyIHdhaXRlcjsKIAlpbnQgcmV0OwogCisJdHRtX21hbl9pbml0X3dhaXRlcigmd2FpdGVyLCBi bywgcGxhY2UpOworCXR0bV9tYW5fYWRkX3dhaXRlcihtYW4sICZ3YWl0ZXIpOwogCWRvIHsKIAkJ cmV0ID0gKCptYW4tPmZ1bmMtPmdldF9ub2RlKShtYW4sIGJvLCBwbGFjZSwgbWVtKTsKLQkJaWYg KHVubGlrZWx5KHJldCAhPSAwKSkKKwkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgeworCQkJdHRt X21hbl9kZWxfd2FpdGVyKG1hbiwgJndhaXRlcik7CiAJCQlyZXR1cm4gcmV0OwotCQlpZiAobWVt LT5tbV9ub2RlKQorCQl9CisJCWlmIChtZW0tPm1tX25vZGUpIHsKKwkJCXR0bV9tYW5fZGVsX3dh aXRlcihtYW4sICZ3YWl0ZXIpOwogCQkJYnJlYWs7CisJCX0KIAkJcmV0ID0gdHRtX21lbV9ldmlj dF9maXJzdChiZGV2LCBtZW1fdHlwZSwgcGxhY2UsIGN0eCk7Ci0JCWlmICh1bmxpa2VseShyZXQg IT0gMCkpCisJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKKwkJCXR0bV9tYW5fZGVsX3dhaXRl cihtYW4sICZ3YWl0ZXIpOwogCQkJcmV0dXJuIHJldDsKKwkJfQogCX0gd2hpbGUgKDEpOwogCW1l bS0+bWVtX3R5cGUgPSBtZW1fdHlwZTsKIAlyZXR1cm4gdHRtX2JvX2FkZF9tb3ZlX2ZlbmNlKGJv LCBtYW4sIG1lbSk7CkBAIC0xNDUwLDYgKzE1MTEsOCBAQCBpbnQgdHRtX2JvX2luaXRfbW0oc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIHR5cGUsCiAJbWFuLT51c2VfaW9fcmVz ZXJ2ZV9scnUgPSBmYWxzZTsKIAltdXRleF9pbml0KCZtYW4tPmlvX3Jlc2VydmVfbXV0ZXgpOwog CXNwaW5fbG9ja19pbml0KCZtYW4tPm1vdmVfbG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJm1hbi0+ d2FpdF9sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmbWFuLT53YWl0ZXJfbGlzdCk7CiAJSU5JVF9M SVNUX0hFQUQoJm1hbi0+aW9fcmVzZXJ2ZV9scnUpOwogCiAJcmV0ID0gYmRldi0+ZHJpdmVyLT5p bml0X21lbV90eXBlKGJkZXYsIHR5cGUsIG1hbik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90 dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAppbmRleCAyY2Qw MjVjMmFiZTcuLjBmY2U0ZGJkMDJlNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19hcGkuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCkBAIC00MCw2ICs0MCw3 IEBACiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KICNp bmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNl bWVudC5oPgogCiBzdHJ1Y3QgdHRtX2JvX2RldmljZTsKIApAQCAtMjMyLDYgKzIzMywxMiBAQCBz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgewogCXN0cnVjdCBtdXRleCB3dV9tdXRleDsKIH07CiAK K3N0cnVjdCB0dG1fYm9fd2FpdGVyIHsKKwlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibzsK KwlzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlOworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKK307CisK IC8qKgogICogc3RydWN0IHR0bV9ib19rbWFwX29iagogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5o CmluZGV4IDliNDE3ZWIyZGYyMC4uZGM2YjhiNGM5ZTA2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Ry bS90dG0vdHRtX2JvX2RyaXZlci5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVy LmgKQEAgLTI5Myw2ICsyOTMsMTAgQEAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIHsKIAli b29sIGlvX3Jlc2VydmVfZmFzdHBhdGg7CiAJc3BpbmxvY2tfdCBtb3ZlX2xvY2s7CiAKKwkvKiB3 YWl0ZXJzIGluIGxpc3QgKi8KKwlzcGlubG9ja190IHdhaXRfbG9jazsKKwlzdHJ1Y3QgbGlzdF9o ZWFkIHdhaXRlcl9saXN0OworCiAJLyoKIAkgKiBQcm90ZWN0ZWQgYnkgQGlvX3Jlc2VydmVfbXV0 ZXg6CiAJICovCkBAIC03NDgsNiArNzUyLDkgQEAgaW50IHR0bV9ib19tZW1fc3BhY2Uoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwK IAkJICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7CiAKK2ludCB0dG1fbWFuX2No ZWNrX2JvKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAorCQkgICAgIHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sCisJCSAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxh Y2UpOwogdm9pZCB0dG1fYm9fbWVtX3B1dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBz dHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSk7CiB2b2lkIHR0bV9ib19tZW1fcHV0X2xvY2tlZChzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0p OwotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK