From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: [PATCH 4/9] drm/amdkfd: Add kfd gtt sub-allocator functions Date: Wed, 31 Dec 2014 15:39:22 +0200 Message-ID: <1420033167-15565-5-git-send-email-oded.gabbay@amd.com> References: <1420033167-15565-1-git-send-email-oded.gabbay@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0132.outbound.protection.outlook.com [157.56.111.132]) by gabe.freedesktop.org (Postfix) with ESMTP id BAD276E23F for ; Wed, 31 Dec 2014 05:42:23 -0800 (PST) In-Reply-To: <1420033167-15565-1-git-send-email-oded.gabbay@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, Alexander.Deucher@amd.com Cc: Christian Koenig List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIG5ldyBrZmQgZ3R0IHN1Yi1hbGxvY2F0b3IgZnVuY3Rpb25zIHRoYXQg c2VydmljZSB0aGUgYW1ka2ZkCmRyaXZlciB3aGVuIGl0IHdhbnRzIHRvIHVzZSBndHQgbWVtb3J5 LgoKVGhlIHN1Yi1hbGxvY2F0b3IgdXNlcyBhIGJpdG1hcCB0byBoYW5kbGUgdGhlIG1lbW9yeSBh cmVhIHRoYXQgd2FzIHRyYW5zZmVycmVkCnRvIGl0IGR1cmluZyBpbml0LiBJdCBkaXZpZGVzIHRo ZSBtZW1vcnkgYXJlYSBpbnRvIGNodW5rcywgYWNjb3JkaW5nIHRvIGNodW5rCnNpemUgcGFyYW1l dGVyLgoKVGhlIGFsbG9jYXRpb24gZnVuY3Rpb24gd2lsbCBhbGxvY2F0ZSBjb250aWd1b3VzIGNo dW5rcyBmcm9tIHRoYXQgbWVtb3J5IGFyZWEsCmFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIHNp emUuIElmIHRoZSByZXF1ZXN0ZWQgc2l6ZSBpcyBzbWFsbGVyIHRoYW4gdGhlCmNodW5rIHNpemUs IGEgc2luZ2xlIGNodW5rIHdpbGwgYmUgYWxsb2NhdGVkLgoKUmV2aWV3ZWQtYnk6IEFsZXhleSBT a2lkYW5vdiA8QWxleGV5LnNraWRhbm92QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IE9kZWQgR2Fi YmF5IDxvZGVkLmdhYmJheUBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9kZXZpY2UuYyB8IDE3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaCAgIHwgICA3ICsrCiAyIGZpbGVzIGNo YW5nZWQsIDE4NiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2Rl dmljZS5jCmluZGV4IDQzODg0ZWIuLmMxZWMxNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfZGV2aWNlLmMKQEAgLTY2LDYgKzY2LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2Zk X2RldmljZWlkIHN1cHBvcnRlZF9kZXZpY2VzW10gPSB7CiAJeyAweDEzMUQsICZrYXZlcmlfZGV2 aWNlX2luZm8gfSwJLyogS2F2ZXJpICovCiB9OwogCitzdGF0aWMgaW50IGtmZF9ndHRfc2FfaW5p dChzdHJ1Y3Qga2ZkX2RldiAqa2ZkLCB1bnNpZ25lZCBpbnQgYnVmX3NpemUsCisJCQkJdW5zaWdu ZWQgaW50IGNodW5rX3NpemUpOworc3RhdGljIHZvaWQga2ZkX2d0dF9zYV9maW5pKHN0cnVjdCBr ZmRfZGV2ICprZmQpOworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyAqbG9v a3VwX2RldmljZV9pbmZvKHVuc2lnbmVkIHNob3J0IGRpZCkKIHsKIAlzaXplX3QgaTsKQEAgLTMw NiwzICszMTAsMTc4IEBAIHZvaWQga2dkMmtmZF9pbnRlcnJ1cHQoc3RydWN0IGtmZF9kZXYgKmtm ZCwgY29uc3Qgdm9pZCAqaWhfcmluZ19lbnRyeSkKIAkJc3Bpbl91bmxvY2soJmtmZC0+aW50ZXJy dXB0X2xvY2spOwogCX0KIH0KKworc3RhdGljIGludCBrZmRfZ3R0X3NhX2luaXQoc3RydWN0IGtm ZF9kZXYgKmtmZCwgdW5zaWduZWQgaW50IGJ1Zl9zaXplLAorCQkJCXVuc2lnbmVkIGludCBjaHVu a19zaXplKQoreworCUJVR19PTigha2ZkKTsKKwlCVUdfT04oIWtmZC0+Z3R0X21lbSk7CisJQlVH X09OKGJ1Zl9zaXplIDwgY2h1bmtfc2l6ZSk7CisKKwlrZmQtPmd0dF9zYV9jaHVua19zaXplID0g Y2h1bmtfc2l6ZTsKKwlrZmQtPmd0dF9zYV9udW1fb2ZfY2h1bmtzID0gYnVmX3NpemUgLyBjaHVu a19zaXplOworCWtmZC0+Z3R0X3NhX2JpdG1hcCA9IGt6YWxsb2Moa2ZkLT5ndHRfc2FfbnVtX29m X2NodW5rcyAvIEJJVFNfUEVSX0JZVEUsCisJCQkJCUdGUF9LRVJORUwpOworCisJaWYgKCFrZmQt Pmd0dF9zYV9iaXRtYXApCisJCXJldHVybiAtRU5PTUVNOworCisJcHJfZGVidWcoImtmZDogZ3R0 X3NhX251bV9vZl9jaHVua3MgPSAlZCwgZ3R0X3NhX2JpdG1hcCA9ICVwXG4iLAorCQkJa2ZkLT5n dHRfc2FfbnVtX29mX2NodW5rcywga2ZkLT5ndHRfc2FfYml0bWFwKTsKKworCW11dGV4X2luaXQo JmtmZC0+Z3R0X3NhX2xvY2spOworCisJcmV0dXJuIDA7CisKK30KKworc3RhdGljIHZvaWQga2Zk X2d0dF9zYV9maW5pKHN0cnVjdCBrZmRfZGV2ICprZmQpCit7CisJbXV0ZXhfZGVzdHJveSgma2Zk LT5ndHRfc2FfbG9jayk7CisJa2ZyZWUoa2ZkLT5ndHRfc2FfYml0bWFwKTsKK30KKworc3RhdGlj IGlubGluZSB1aW50NjRfdCBrZmRfZ3R0X3NhX2NhbGNfZ3B1X2FkZHIodWludDY0X3Qgc3RhcnRf YWRkciwKKwkJCQkJCXVuc2lnbmVkIGludCBiaXRfbnVtLAorCQkJCQkJdW5zaWduZWQgaW50IGNo dW5rX3NpemUpCit7CisJcmV0dXJuIHN0YXJ0X2FkZHIgKyBiaXRfbnVtICogY2h1bmtfc2l6ZTsK K30KKworc3RhdGljIGlubGluZSB1aW50MzJfdCAqa2ZkX2d0dF9zYV9jYWxjX2NwdV9hZGRyKHZv aWQgKnN0YXJ0X2FkZHIsCisJCQkJCQl1bnNpZ25lZCBpbnQgYml0X251bSwKKwkJCQkJCXVuc2ln bmVkIGludCBjaHVua19zaXplKQoreworCXJldHVybiAodWludDMyX3QgKikgKCh1aW50NjRfdCkg c3RhcnRfYWRkciArIGJpdF9udW0gKiBjaHVua19zaXplKTsKK30KKworaW50IGtmZF9ndHRfc2Ff YWxsb2NhdGUoc3RydWN0IGtmZF9kZXYgKmtmZCwgdW5zaWduZWQgaW50IHNpemUsCisJCQlzdHJ1 Y3Qga2ZkX21lbV9vYmogKiptZW1fb2JqKQoreworCXVuc2lnbmVkIGludCBmb3VuZCwgc3RhcnRf c2VhcmNoLCBjdXJfc2l6ZTsKKworCUJVR19PTigha2ZkKTsKKworCWlmIChzaXplID09IDApCisJ CXJldHVybiAtRUlOVkFMOworCisJaWYgKHNpemUgPiBrZmQtPmd0dF9zYV9udW1fb2ZfY2h1bmtz ICoga2ZkLT5ndHRfc2FfY2h1bmtfc2l6ZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkqbWVtX29i aiA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBrZmRfbWVtX29iaiksIEdGUF9LRVJORUwpOworCWlm ICgoKm1lbV9vYmopID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJcHJfZGVidWcoImtm ZDogYWxsb2NhdGVkIG1lbV9vYmogPSAlcCBmb3Igc2l6ZSA9ICVkXG4iLCAqbWVtX29iaiwgc2l6 ZSk7CisKKwlzdGFydF9zZWFyY2ggPSAwOworCisJbXV0ZXhfbG9jaygma2ZkLT5ndHRfc2FfbG9j ayk7CisKK2tmZF9ndHRfcmVzdGFydF9zZWFyY2g6CisJLyogRmluZCB0aGUgZmlyc3QgY2h1bmsg dGhhdCBpcyBmcmVlICovCisJZm91bmQgPSBmaW5kX25leHRfemVyb19iaXQoa2ZkLT5ndHRfc2Ff Yml0bWFwLAorCQkJCQlrZmQtPmd0dF9zYV9udW1fb2ZfY2h1bmtzLAorCQkJCQlzdGFydF9zZWFy Y2gpOworCisJcHJfZGVidWcoImtmZDogZm91bmQgPSAlZFxuIiwgZm91bmQpOworCisJLyogSWYg dGhlcmUgd2Fzbid0IGFueSBmcmVlIGNodW5rLCBiYWlsIG91dCAqLworCWlmIChmb3VuZCA9PSBr ZmQtPmd0dF9zYV9udW1fb2ZfY2h1bmtzKQorCQlnb3RvIGtmZF9ndHRfbm9fZnJlZV9jaHVuazsK KworCS8qIFVwZGF0ZSBmaWVsZHMgb2YgbWVtX29iaiAqLworCSgqbWVtX29iaiktPnJhbmdlX3N0 YXJ0ID0gZm91bmQ7CisJKCptZW1fb2JqKS0+cmFuZ2VfZW5kID0gZm91bmQ7CisJKCptZW1fb2Jq KS0+Z3B1X2FkZHIgPSBrZmRfZ3R0X3NhX2NhbGNfZ3B1X2FkZHIoCisJCQkJCWtmZC0+Z3R0X3N0 YXJ0X2dwdV9hZGRyLAorCQkJCQlmb3VuZCwKKwkJCQkJa2ZkLT5ndHRfc2FfY2h1bmtfc2l6ZSk7 CisJKCptZW1fb2JqKS0+Y3B1X3B0ciA9IGtmZF9ndHRfc2FfY2FsY19jcHVfYWRkcigKKwkJCQkJ a2ZkLT5ndHRfc3RhcnRfY3B1X3B0ciwKKwkJCQkJZm91bmQsCisJCQkJCWtmZC0+Z3R0X3NhX2No dW5rX3NpemUpOworCisJcHJfZGVidWcoImtmZDogZ3B1X2FkZHIgPSAlcCwgY3B1X2FkZHIgPSAl cFxuIiwKKwkJCSh1aW50NjRfdCAqKSAoKm1lbV9vYmopLT5ncHVfYWRkciwgKCptZW1fb2JqKS0+ Y3B1X3B0cik7CisKKwkvKiBJZiB3ZSBuZWVkIG9ubHkgb25lIGNodW5rLCBtYXJrIGl0IGFzIGFs bG9jYXRlZCBhbmQgZ2V0IG91dCAqLworCWlmIChzaXplIDw9IGtmZC0+Z3R0X3NhX2NodW5rX3Np emUpIHsKKwkJcHJfZGVidWcoImtmZDogc2luZ2xlIGJpdFxuIik7CisJCXNldF9iaXQoZm91bmQs IGtmZC0+Z3R0X3NhX2JpdG1hcCk7CisJCWdvdG8ga2ZkX2d0dF9vdXQ7CisJfQorCisJLyogT3Ro ZXJ3aXNlLCB0cnkgdG8gc2VlIGlmIHdlIGhhdmUgZW5vdWdoIGNvbnRpZ3VvdXMgY2h1bmtzICov CisJY3VyX3NpemUgPSBzaXplIC0ga2ZkLT5ndHRfc2FfY2h1bmtfc2l6ZTsKKwlkbyB7CisJCSgq bWVtX29iaiktPnJhbmdlX2VuZCA9CisJCQlmaW5kX25leHRfemVyb19iaXQoa2ZkLT5ndHRfc2Ff Yml0bWFwLAorCQkJCQlrZmQtPmd0dF9zYV9udW1fb2ZfY2h1bmtzLCArK2ZvdW5kKTsKKwkJLyoK KwkJICogSWYgbmV4dCBmcmVlIGNodW5rIGlzIG5vdCBjb250aWd1b3VzIHRoYW4gd2UgbmVlZCB0 bworCQkgKiByZXN0YXJ0IG91ciBzZWFyY2ggZnJvbSB0aGUgbGFzdCBmcmVlIGNodW5rIHdlIGZv dW5kICh3aGljaAorCQkgKiB3YXNuJ3QgY29udGlndW91cyB0byB0aGUgcHJldmlvdXMgb25lcwor CQkgKi8KKwkJaWYgKCgqbWVtX29iaiktPnJhbmdlX2VuZCAhPSBmb3VuZCkgeworCQkJc3RhcnRf c2VhcmNoID0gZm91bmQ7CisJCQlnb3RvIGtmZF9ndHRfcmVzdGFydF9zZWFyY2g7CisJCX0KKwor CQkvKgorCQkgKiBJZiB3ZSByZWFjaGVkIGVuZCBvZiBidWZmZXIsIGJhaWwgb3V0IHdpdGggZXJy b3IKKwkJICovCisJCWlmIChmb3VuZCA9PSBrZmQtPmd0dF9zYV9udW1fb2ZfY2h1bmtzKQorCQkJ Z290byBrZmRfZ3R0X25vX2ZyZWVfY2h1bms7CisKKwkJLyogQ2hlY2sgaWYgd2UgZG9uJ3QgbmVl ZCBhbm90aGVyIGNodW5rICovCisJCWlmIChjdXJfc2l6ZSA8PSBrZmQtPmd0dF9zYV9jaHVua19z aXplKQorCQkJY3VyX3NpemUgPSAwOworCQllbHNlCisJCQljdXJfc2l6ZSAtPSBrZmQtPmd0dF9z YV9jaHVua19zaXplOworCisJfSB3aGlsZSAoY3VyX3NpemUgPiAwKTsKKworCXByX2RlYnVnKCJr ZmQ6IHJhbmdlX3N0YXJ0ID0gJWQsIHJhbmdlX2VuZCA9ICVkXG4iLAorCQkoKm1lbV9vYmopLT5y YW5nZV9zdGFydCwgKCptZW1fb2JqKS0+cmFuZ2VfZW5kKTsKKworCS8qIE1hcmsgdGhlIGNodW5r cyBhcyBhbGxvY2F0ZWQgKi8KKwlmb3IgKGZvdW5kID0gKCptZW1fb2JqKS0+cmFuZ2Vfc3RhcnQ7 CisJCWZvdW5kIDw9ICgqbWVtX29iaiktPnJhbmdlX2VuZDsKKwkJZm91bmQrKykKKwkJc2V0X2Jp dChmb3VuZCwga2ZkLT5ndHRfc2FfYml0bWFwKTsKKwora2ZkX2d0dF9vdXQ6CisJbXV0ZXhfdW5s b2NrKCZrZmQtPmd0dF9zYV9sb2NrKTsKKwlyZXR1cm4gMDsKKwora2ZkX2d0dF9ub19mcmVlX2No dW5rOgorCXByX2RlYnVnKCJrZmQ6IGFsbG9jYXRpb24gZmFpbGVkIHdpdGggbWVtX29iaiA9ICVw XG4iLCBtZW1fb2JqKTsKKwltdXRleF91bmxvY2soJmtmZC0+Z3R0X3NhX2xvY2spOworCWtmcmVl KG1lbV9vYmopOworCXJldHVybiAtRU5PTUVNOworfQorCitpbnQga2ZkX2d0dF9zYV9mcmVlKHN0 cnVjdCBrZmRfZGV2ICprZmQsIHN0cnVjdCBrZmRfbWVtX29iaiAqbWVtX29iaikKK3sKKwl1bnNp Z25lZCBpbnQgYml0OworCisJQlVHX09OKCFrZmQpOworCUJVR19PTighbWVtX29iaik7CisKKwlw cl9kZWJ1Zygia2ZkOiBmcmVlIG1lbV9vYmogPSAlcCwgcmFuZ2Vfc3RhcnQgPSAlZCwgcmFuZ2Vf ZW5kID0gJWRcbiIsCisJCQltZW1fb2JqLCBtZW1fb2JqLT5yYW5nZV9zdGFydCwgbWVtX29iai0+ cmFuZ2VfZW5kKTsKKworCW11dGV4X2xvY2soJmtmZC0+Z3R0X3NhX2xvY2spOworCisJLyogTWFy ayB0aGUgY2h1bmtzIGFzIGZyZWUgKi8KKwlmb3IgKGJpdCA9IG1lbV9vYmotPnJhbmdlX3N0YXJ0 OworCQliaXQgPD0gbWVtX29iai0+cmFuZ2VfZW5kOworCQliaXQrKykKKwkJY2xlYXJfYml0KGJp dCwga2ZkLT5ndHRfc2FfYml0bWFwKTsKKworCW11dGV4X3VubG9jaygma2ZkLT5ndHRfc2FfbG9j ayk7CisKKwlrZnJlZShtZW1fb2JqKTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcml2LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfcHJpdi5oCmluZGV4IDY4NWU0ZTEuLjJlMzliMWMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcml2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX3ByaXYuaApAQCAtNTEwLDYgKzUxMCwxMyBAQCB1bnNpZ25lZCBpbnQga2Zk X3F1ZXVlX2lkX3RvX2Rvb3JiZWxsKHN0cnVjdCBrZmRfZGV2ICprZmQsCiAJCQkJCXN0cnVjdCBr ZmRfcHJvY2VzcyAqcHJvY2VzcywKIAkJCQkJdW5zaWduZWQgaW50IHF1ZXVlX2lkKTsKIAorLyog R1RUIFN1Yi1BbGxvY2F0b3IgKi8KKworaW50IGtmZF9ndHRfc2FfYWxsb2NhdGUoc3RydWN0IGtm ZF9kZXYgKmtmZCwgdW5zaWduZWQgaW50IHNpemUsCisJCQlzdHJ1Y3Qga2ZkX21lbV9vYmogKipt ZW1fb2JqKTsKKworaW50IGtmZF9ndHRfc2FfZnJlZShzdHJ1Y3Qga2ZkX2RldiAqa2ZkLCBzdHJ1 Y3Qga2ZkX21lbV9vYmogKm1lbV9vYmopOworCiBleHRlcm4gc3RydWN0IGRldmljZSAqa2ZkX2Rl dmljZTsKIAogLyogVG9wb2xvZ3kgKi8KLS0gCjIuMS4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=