From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id D38DF6E45C for ; Mon, 22 Mar 2021 12:38:11 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Mon, 22 Mar 2021 13:37:20 +0100 Message-Id: <20210322123750.94772-7-zbigniew.kempczynski@intel.com> In-Reply-To: <20210322123750.94772-1-zbigniew.kempczynski@intel.com> References: <20210322123750.94772-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v28 06/36] lib/intel_allocator_reloc: Add reloc allocator List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: QXMgcmVsb2NhdGlvbnMgd29uJ3QgYmUgYWNjZXNzaWJsZSBvbiBkaXNjcmV0ZSB3ZSBuZWVkIHRv IHN1cHBvcnQKSUdUIHdpdGggYW4gYWxsb2NhdG9yLiBTbyB0ZXN0cyB3aGljaCBoYXZlIHRvIGNv dmVyIGFsbCBnZW5lcmF0aW9ucwpoYXZlIHRvIGRpdmVyZ2UgdGhlIGNvZGUgYW5kIHVzZSBjb25k aXRpb25hbCBjb25zdHJ1Y3RzLgpPbiB0aGUgbG9uZyB0ZXJtIHRoaXMgY2FuIGJlIGN1bWJlcnNv bWUgYW5kIGNvbmZ1c2luZy4gU28gd2UgY2FuCnRyeSB0byBhdm9pZCBzdWNoIGFuZCB1c2UgcHNl dWRvLXJlbG9jIGFsbG9jYXRvciB3aGljaCBtYWluIHRhc2sKaXMgdG8gcmV0dXJuIGluY3JlbWVu dGVkIG9mZnNldHMuIFRoaXMgd2F5IHdlIGNhbiBza2lwIG1lbnRpb25lZApjb25kaXRpb25hbHMg YW5kIGp1c3QgYWNxdWlyZSBvZmZzZXRzIGZyb20gYW4gYWxsb2NhdG9yLgoKU2lnbmVkLW9mZi1i eTogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRlbC5jb20+ ClN1Z2dlc3RlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkFj a2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgotLS0KIGxpYi9p bnRlbF9hbGxvY2F0b3JfcmVsb2MuYyB8IDE5MCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOTAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGxpYi9pbnRlbF9hbGxvY2F0b3JfcmVsb2MuYwoKZGlmZiAtLWdpdCBhL2xpYi9pbnRl bF9hbGxvY2F0b3JfcmVsb2MuYyBiL2xpYi9pbnRlbF9hbGxvY2F0b3JfcmVsb2MuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmFiZjljMzBjZAotLS0gL2Rldi9udWxsCisr KyBiL2xpYi9pbnRlbF9hbGxvY2F0b3JfcmVsb2MuYwpAQCAtMCwwICsxLDE5MCBAQAorLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDIxIEludGVs IENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN0 ZGxpYi5oPgorI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF94ODYuaCIKKyNpbmNsdWRl ICJpZ3RfcmFuZC5oIgorI2luY2x1ZGUgImludGVsX2FsbG9jYXRvci5oIgorCitzdHJ1Y3QgaW50 ZWxfYWxsb2NhdG9yICppbnRlbF9hbGxvY2F0b3JfcmVsb2NfY3JlYXRlKGludCBmZCk7CisKK3N0 cnVjdCBpbnRlbF9hbGxvY2F0b3JfcmVsb2MgeworCXVpbnQ2NF90IGJpYXM7CisJdWludDMyX3Qg cHJuZzsKKwl1aW50NjRfdCBndHRfc2l6ZTsKKwl1aW50NjRfdCBzdGFydDsKKwl1aW50NjRfdCBl bmQ7CisJdWludDY0X3Qgb2Zmc2V0OworCisJLyogc3RhdGlzdGljcyAqLworCXVpbnQ2NF90IGFs bG9jYXRlZF9vYmplY3RzOworfTsKKworc3RhdGljIHVpbnQ2NF90IGdldF9iaWFzKGludCBmZCkK K3sKKwkodm9pZCkgZmQ7CisKKwlyZXR1cm4gMjU2IDw8IDEwOworfQorCitzdGF0aWMgdm9pZCBp bnRlbF9hbGxvY2F0b3JfcmVsb2NfZ2V0X2FkZHJlc3NfcmFuZ2Uoc3RydWN0IGludGVsX2FsbG9j YXRvciAqaWFsLAorCQkJCQkJICAgIHVpbnQ2NF90ICpzdGFydHAsCisJCQkJCQkgICAgdWludDY0 X3QgKmVuZHApCit7CisJc3RydWN0IGludGVsX2FsbG9jYXRvcl9yZWxvYyAqaWFsciA9IGlhbC0+ cHJpdjsKKworCWlmIChzdGFydHApCisJCSpzdGFydHAgPSBpYWxyLT5zdGFydDsKKworCWlmIChl bmRwKQorCQkqZW5kcCA9IGlhbHItPmVuZDsKK30KKworc3RhdGljIHVpbnQ2NF90IGludGVsX2Fs bG9jYXRvcl9yZWxvY19hbGxvYyhzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWwsCisJCQkJCSAg ICB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90IHNpemUsCisJCQkJCSAgICB1aW50NjRfdCBhbGln bm1lbnQpCit7CisJc3RydWN0IGludGVsX2FsbG9jYXRvcl9yZWxvYyAqaWFsciA9IGlhbC0+cHJp djsKKwl1aW50NjRfdCBvZmZzZXQsIGFsaWduZWRfb2Zmc2V0OworCisJKHZvaWQpIGhhbmRsZTsK KworCWFsaWdubWVudCA9IG1heChhbGlnbm1lbnQsIDQwOTYpOworCWFsaWduZWRfb2Zmc2V0ID0g QUxJR04oaWFsci0+b2Zmc2V0LCBhbGlnbm1lbnQpOworCisJLyogQ2hlY2sgd2Ugd29uJ3QgZXhj ZWVkIGVuZCAqLworCWlmIChhbGlnbmVkX29mZnNldCArIHNpemUgPiBpYWxyLT5lbmQpCisJCWFs aWduZWRfb2Zmc2V0ID0gQUxJR04oaWFsci0+c3RhcnQsIGFsaWdubWVudCk7CisKKwlvZmZzZXQg PSBhbGlnbmVkX29mZnNldDsKKwlpYWxyLT5vZmZzZXQgPSBvZmZzZXQgKyBzaXplOworCWlhbHIt PmFsbG9jYXRlZF9vYmplY3RzKys7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCitzdGF0aWMgYm9v bCBpbnRlbF9hbGxvY2F0b3JfcmVsb2NfZnJlZShzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWws CisJCQkJICAgICAgIHVpbnQzMl90IGhhbmRsZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9y X3JlbG9jICppYWxyID0gaWFsLT5wcml2OworCisJKHZvaWQpIGhhbmRsZTsKKworCWlhbHItPmFs bG9jYXRlZF9vYmplY3RzLS07CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIGlu dGVsX2FsbG9jYXRvcl9yZWxvY19pc19hbGxvY2F0ZWQoc3RydWN0IGludGVsX2FsbG9jYXRvciAq aWFsLAorCQkJCQkgICAgICAgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBzaXplLAorCQkJCQkg ICAgICAgdWludDY0X3Qgb2Zmc2V0KQoreworCSh2b2lkKSBpYWw7CisJKHZvaWQpIGhhbmRsZTsK Kwkodm9pZCkgc2l6ZTsKKwkodm9pZCkgb2Zmc2V0OworCisJcmV0dXJuIGZhbHNlOworfQorCitz dGF0aWMgdm9pZCBpbnRlbF9hbGxvY2F0b3JfcmVsb2NfZGVzdHJveShzdHJ1Y3QgaW50ZWxfYWxs b2NhdG9yICppYWwpCit7CisJaWd0X2Fzc2VydChpYWwpOworCisJZnJlZShpYWwtPnByaXYpOwor CWZyZWUoaWFsKTsKK30KKworc3RhdGljIGJvb2wgaW50ZWxfYWxsb2NhdG9yX3JlbG9jX3Jlc2Vy dmUoc3RydWN0IGludGVsX2FsbG9jYXRvciAqaWFsLAorCQkJCQkgIHVpbnQzMl90IGhhbmRsZSwK KwkJCQkJICB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kKQoreworCSh2b2lkKSBpYWw7CisJ KHZvaWQpIGhhbmRsZTsKKwkodm9pZCkgc3RhcnQ7CisJKHZvaWQpIGVuZDsKKworCXJldHVybiBm YWxzZTsKK30KKworc3RhdGljIGJvb2wgaW50ZWxfYWxsb2NhdG9yX3JlbG9jX3VucmVzZXJ2ZShz dHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWwsCisJCQkJCSAgICB1aW50MzJfdCBoYW5kbGUsCisJ CQkJCSAgICB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kKQoreworCSh2b2lkKSBpYWw7CisJ KHZvaWQpIGhhbmRsZTsKKwkodm9pZCkgc3RhcnQ7CisJKHZvaWQpIGVuZDsKKworCXJldHVybiBm YWxzZTsKK30KKworc3RhdGljIGJvb2wgaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2lzX3Jlc2VydmVk KHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlhbCwKKwkJCQkJICAgICAgdWludDY0X3Qgc3RhcnQs IHVpbnQ2NF90IGVuZCkKK3sKKwkodm9pZCkgaWFsOworCSh2b2lkKSBzdGFydDsKKwkodm9pZCkg ZW5kOworCisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9hbGxvY2F0b3Jf cmVsb2NfcHJpbnQoc3RydWN0IGludGVsX2FsbG9jYXRvciAqaWFsLCBib29sIGZ1bGwpCit7CisJ c3RydWN0IGludGVsX2FsbG9jYXRvcl9yZWxvYyAqaWFsciA9IGlhbC0+cHJpdjsKKworCSh2b2lk KSBmdWxsOworCisJaWd0X2luZm8oIjxpYWw6ICVwLCBmZDogJWQ+IGFsbG9jYXRlZCBvYmplY3Rz OiAlIiBQUkl4NjQgIlxuIiwKKwkJIGlhbCwgaWFsLT5mZCwgaWFsci0+YWxsb2NhdGVkX29iamVj dHMpOworfQorCitzdGF0aWMgYm9vbCBpbnRlbF9hbGxvY2F0b3JfcmVsb2NfaXNfZW1wdHkoc3Ry dWN0IGludGVsX2FsbG9jYXRvciAqaWFsKQoreworCXN0cnVjdCBpbnRlbF9hbGxvY2F0b3JfcmVs b2MgKmlhbHIgPSBpYWwtPnByaXY7CisKKwlyZXR1cm4gIWlhbHItPmFsbG9jYXRlZF9vYmplY3Rz OworfQorCisjZGVmaW5lIFJFU0VSVkVEIDQwOTYKK3N0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlu dGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoaW50IGZkKQoreworCXN0cnVjdCBpbnRlbF9hbGxv Y2F0b3IgKmlhbDsKKwlzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yX3JlbG9jICppYWxyOworCisJaWd0 X2RlYnVnKCJVc2luZyByZWxvYyBhbGxvY2F0b3JcbiIpOworCWlhbCA9IGNhbGxvYygxLCBzaXpl b2YoKmlhbCkpOworCWlndF9hc3NlcnQoaWFsKTsKKworCWlhbC0+ZmQgPSBmZDsKKwlpYWwtPmdl dF9hZGRyZXNzX3JhbmdlID0gaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2dldF9hZGRyZXNzX3Jhbmdl OworCWlhbC0+YWxsb2MgPSBpbnRlbF9hbGxvY2F0b3JfcmVsb2NfYWxsb2M7CisJaWFsLT5mcmVl ID0gaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2ZyZWU7CisJaWFsLT5pc19hbGxvY2F0ZWQgPSBpbnRl bF9hbGxvY2F0b3JfcmVsb2NfaXNfYWxsb2NhdGVkOworCWlhbC0+cmVzZXJ2ZSA9IGludGVsX2Fs bG9jYXRvcl9yZWxvY19yZXNlcnZlOworCWlhbC0+dW5yZXNlcnZlID0gaW50ZWxfYWxsb2NhdG9y X3JlbG9jX3VucmVzZXJ2ZTsKKwlpYWwtPmlzX3Jlc2VydmVkID0gaW50ZWxfYWxsb2NhdG9yX3Jl bG9jX2lzX3Jlc2VydmVkOworCWlhbC0+ZGVzdHJveSA9IGludGVsX2FsbG9jYXRvcl9yZWxvY19k ZXN0cm95OworCWlhbC0+cHJpbnQgPSBpbnRlbF9hbGxvY2F0b3JfcmVsb2NfcHJpbnQ7CisJaWFs LT5pc19lbXB0eSA9IGludGVsX2FsbG9jYXRvcl9yZWxvY19pc19lbXB0eTsKKworCWlhbHIgPSBp YWwtPnByaXYgPSBjYWxsb2MoMSwgc2l6ZW9mKCppYWxyKSk7CisJaWd0X2Fzc2VydChpYWwtPnBy aXYpOworCWlhbHItPnBybmcgPSAodWludDMyX3QpIHRvX3VzZXJfcG9pbnRlcihpYWwpOworCWlh bHItPmd0dF9zaXplID0gZ2VtX2FwZXJ0dXJlX3NpemUoZmQpOworCWlndF9kZWJ1ZygiR3R0IHNp emU6ICUiIFBSSWQ2NCAiXG4iLCBpYWxyLT5ndHRfc2l6ZSk7CisJaWYgKCFnZW1fdXNlc19mdWxs X3BwZ3R0KGZkKSkKKwkJaWFsci0+Z3R0X3NpemUgLz0gMjsKKworCWlhbHItPmJpYXMgPSBpYWxy LT5vZmZzZXQgPSBnZXRfYmlhcyhmZCk7CisJaWFsci0+c3RhcnQgPSBpYWxyLT5iaWFzOworCWlh bHItPmVuZCA9IGlhbHItPmd0dF9zaXplIC0gUkVTRVJWRUQ7CisKKwlpYWxyLT5hbGxvY2F0ZWRf b2JqZWN0cyA9IDA7CisKKwlyZXR1cm4gaWFsOworfQotLSAKMi4yNi4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdApp Z3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK