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 C613C6F570 for ; Thu, 22 Oct 2020 09:59:24 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Thu, 22 Oct 2020 11:58:48 +0200 Message-Id: <20201022095907.34225-6-zbigniew.kempczynski@intel.com> In-Reply-To: <20201022095907.34225-1-zbigniew.kempczynski@intel.com> References: <20201022095907.34225-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 05/24] lib/intel_allocator_random: Add random 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 Cc: Chris Wilson List-ID: U29tZXRpbWVzIHdlIHdhbnQgdG8gZXhwZXJpbWVudCB3aXRoIGFkZHJlc3NlcyBzbyByYW5kb21p emluZyBjYW4gaGVscAp1cyBhIGxpdHRsZS4KClNpZ25lZC1vZmYtYnk6IFpiaWduaWV3IEtlbXBj ennFhHNraSA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgpDYzogRG9taW5payBHcnpl Z29yemVrIDxkb21pbmlrLmdyemVnb3J6ZWtAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogbGliL2ludGVsX2FsbG9jYXRvcl9yYW5kb20u YyB8IDIyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5n ZWQsIDIyMyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2ludGVsX2FsbG9j YXRvcl9yYW5kb20uYwoKZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9hbGxvY2F0b3JfcmFuZG9tLmMg Yi9saWIvaW50ZWxfYWxsb2NhdG9yX3JhbmRvbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwLi4yM2NmN2M0ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9pbnRlbF9hbGxvY2F0 b3JfcmFuZG9tLmMKQEAgLTAsMCArMSwyMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAyMCBJ bnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMg c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2Fy ZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdy YXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp b25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZ UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgor ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP VEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZU V0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN0ZGxp Yi5oPgorI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF94ODYuaCIKKyNpbmNsdWRlICJp Z3RfcmFuZC5oIgorI2luY2x1ZGUgImludGVsX2FsbG9jYXRvci5oIgorCitzdHJ1Y3QgaW50ZWxf YWxsb2NhdG9yICppbnRlbF9hbGxvY2F0b3JfcmFuZG9tX2NyZWF0ZShpbnQgZmQsIHVpbnQzMl90 IGN0eCk7CisKK3N0cnVjdCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9tIHsKKwl1aW50NjRfdCBiaWFz OworCXVpbnQzMl90IHBybmc7CisJdWludDY0X3QgZ3R0X3NpemU7CisJdWludDY0X3Qgc3RhcnQ7 CisJdWludDY0X3QgZW5kOworCisJLyogc3RhdGlzdGljcyAqLworCXVpbnQ2NF90IGFsbG9jYXRl ZF9vYmplY3RzOworfTsKKworI2RlZmluZSBHRU44X0hJR0hfQUREUkVTU19CSVQgNDcKK3N0YXRp YyB1aW50NjRfdCBnZW44X2Nhbm9uaWNhbF9hZGRyKHVpbnQ2NF90IGFkZHJlc3MpCit7CisJaW50 IHNoaWZ0ID0gNjMgLSBHRU44X0hJR0hfQUREUkVTU19CSVQ7CisKKwlyZXR1cm4gKGludDY0X3Qp KGFkZHJlc3MgPDwgc2hpZnQpID4+IHNoaWZ0OworfQorCitzdGF0aWMgdWludDY0X3QgZ2V0X2Jp YXMoaW50IGZkKQoreworCSh2b2lkKSBmZDsKKworCXJldHVybiAyNTYgPDwgMTA7Cit9CisKK3N0 YXRpYyB2b2lkIGludGVsX2FsbG9jYXRvcl9yYW5kb21fZ2V0X2FkZHJlc3NfcmFuZ2Uoc3RydWN0 IGludGVsX2FsbG9jYXRvciAqaWFsLAorCQkJCQkJICAgICB1aW50NjRfdCAqc3RhcnRwLAorCQkJ CQkJICAgICB1aW50NjRfdCAqZW5kcCkKK3sKKwlzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yX3JhbmRv bSAqaWFsciA9IGlhbC0+cHJpdjsKKworCWlmIChzdGFydHApCisJCSpzdGFydHAgPSBpYWxyLT5z dGFydDsKKworCWlmIChlbmRwKQorCQkqZW5kcCA9IGlhbHItPmVuZDsKK30KKworc3RhdGljIHVp bnQ2NF90IGludGVsX2FsbG9jYXRvcl9yYW5kb21fYWxsb2Moc3RydWN0IGludGVsX2FsbG9jYXRv ciAqaWFsLAorCQkJCQkgICAgIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgc2l6ZSwKKwkJCQkJ ICAgICB1aW50NjRfdCBhbGlnbm1lbnQpCit7CisJc3RydWN0IGludGVsX2FsbG9jYXRvcl9yYW5k b20gKmlhbHIgPSBpYWwtPnByaXY7CisJdWludDY0X3Qgb2Zmc2V0OworCisJKHZvaWQpIGhhbmRs ZTsKKworCS8qIHJhbmRvbWl6ZSB0aGUgYWRkcmVzcywgd2UgdHJ5IHRvIGF2b2lkIHJlbG9jYXRp b25zICovCisJb2Zmc2V0ID0gaGFyc19wZXRydXNrYV9mNTRfMV9yYW5kb202NCgmaWFsci0+cHJu Zyk7CisJb2Zmc2V0ICs9IGlhbHItPmJpYXM7IC8qIEtlZXAgdGhlIGxvdyAyNTZrIGNsZWFyLCBm b3IgbmVnYXRpdmUgZGVsdGFzICovCisJb2Zmc2V0ICY9IGlhbHItPmd0dF9zaXplIC0gMTsKKwlv ZmZzZXQgJj0gfihhbGlnbm1lbnQgLSAxKTsKKwlvZmZzZXQgPSBnZW44X2Nhbm9uaWNhbF9hZGRy KG9mZnNldCk7CisKKwlpYWxyLT5hbGxvY2F0ZWRfb2JqZWN0cysrOworCisJcmV0dXJuIG9mZnNl dDsKK30KKworc3RhdGljIGJvb2wgaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9mcmVlKHN0cnVjdCBp bnRlbF9hbGxvY2F0b3IgKmlhbCwKKwkJCQkJdWludDMyX3QgaGFuZGxlKQoreworCXN0cnVjdCBp bnRlbF9hbGxvY2F0b3JfcmFuZG9tICppYWxyID0gaWFsLT5wcml2OworCisJKHZvaWQpIGhhbmRs ZTsKKworCWlhbHItPmFsbG9jYXRlZF9vYmplY3RzLS07CisKKwlyZXR1cm4gZmFsc2U7Cit9CisK K3N0YXRpYyBib29sIGludGVsX2FsbG9jYXRvcl9yYW5kb21faXNfYWxsb2NhdGVkKHN0cnVjdCBp bnRlbF9hbGxvY2F0b3IgKmlhbCwKKwkJCQkJCXVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgc2l6 ZSwKKwkJCQkJCXVpbnQ2NF90IG9mZnNldCkKK3sKKwkodm9pZCkgaWFsOworCSh2b2lkKSBoYW5k bGU7CisJKHZvaWQpIHNpemU7CisJKHZvaWQpIG9mZnNldDsKKworCXJldHVybiBmYWxzZTsKK30K Kworc3RhdGljIHZvaWQgaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9kZXN0cm95KHN0cnVjdCBpbnRl bF9hbGxvY2F0b3IgKmlhbCkKK3sKKwlpZ3RfYXNzZXJ0KGlhbCk7CisKKwlmcmVlKGlhbC0+cHJp dik7CisJZnJlZShpYWwpOworfQorCitzdGF0aWMgYm9vbCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9t X3Jlc2VydmUoc3RydWN0IGludGVsX2FsbG9jYXRvciAqaWFsLAorCQkJCQkgICB1aW50MzJfdCBo YW5kbGUsCisJCQkJCSAgIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQpCit7CisJKHZvaWQp IGlhbDsKKwkodm9pZCkgaGFuZGxlOworCSh2b2lkKSBzdGFydDsKKwkodm9pZCkgZW5kOworCisJ cmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9tX3Vu cmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWwsCisJCQkJCSAgICAgdWludDMyX3Qg aGFuZGxlLAorCQkJCQkgICAgIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQpCit7CisJKHZv aWQpIGlhbDsKKwkodm9pZCkgaGFuZGxlOworCSh2b2lkKSBzdGFydDsKKwkodm9pZCkgZW5kOwor CisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9t X2lzX3Jlc2VydmVkKHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlhbCwKKwkJCQkJICAgICAgIHVp bnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQpCit7CisJKHZvaWQpIGlhbDsKKwkodm9pZCkgc3Rh cnQ7CisJKHZvaWQpIGVuZDsKKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgaW50 ZWxfYWxsb2NhdG9yX3JhbmRvbV9wcmludChzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWwsIGJv b2wgZnVsbCkKK3sKKwlzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yX3JhbmRvbSAqaWFsciA9IGlhbC0+ cHJpdjsKKworCSh2b2lkKSBmdWxsOworCisJaWd0X2luZm8oIjxmZDogJWQsIGN0eDogJXU+IGFs bG9jYXRlZCBvYmplY3RzOiAlIiBQUkl4NjQgIlxuIiwKKwkJIGlhbC0+ZmQsIGlhbC0+Y3R4LCBp YWxyLT5hbGxvY2F0ZWRfb2JqZWN0cyk7Cit9CisKK3N0YXRpYyBib29sIGludGVsX2FsbG9jYXRv cl9yYW5kb21faXNfZW1wdHkoc3RydWN0IGludGVsX2FsbG9jYXRvciAqaWFsKQoreworCXN0cnVj dCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9tICppYWxyID0gaWFsLT5wcml2OworCisJcmV0dXJuICFp YWxyLT5hbGxvY2F0ZWRfb2JqZWN0czsKK30KKworc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50 ZWxfYWxsb2NhdG9yX3JhbmRvbV9jcmVhdGUoaW50IGZkLCB1aW50MzJfdCBjdHgpCit7CisJc3Ry dWN0IGludGVsX2FsbG9jYXRvciAqaWFsOworCXN0cnVjdCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9t ICppYWxyOworCisJaWd0X2RlYnVnKCJVc2luZyByYW5kb20gYWxsb2NhdG9yXG4iKTsKKwlpYWwg PSBjYWxsb2MoMSwgc2l6ZW9mKCppYWwpKTsKKwlpZ3RfYXNzZXJ0KGlhbCk7CisKKwlpYWwtPmZk ID0gZmQ7CisJaWFsLT5jdHggPSBjdHg7CisJaWFsLT5nZXRfYWRkcmVzc19yYW5nZSA9IGludGVs X2FsbG9jYXRvcl9yYW5kb21fZ2V0X2FkZHJlc3NfcmFuZ2U7CisJaWFsLT5hbGxvYyA9IGludGVs X2FsbG9jYXRvcl9yYW5kb21fYWxsb2M7CisJaWFsLT5mcmVlID0gaW50ZWxfYWxsb2NhdG9yX3Jh bmRvbV9mcmVlOworCWlhbC0+aXNfYWxsb2NhdGVkID0gaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9p c19hbGxvY2F0ZWQ7CisJaWFsLT5yZXNlcnZlID0gaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9yZXNl cnZlOworCWlhbC0+dW5yZXNlcnZlID0gaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV91bnJlc2VydmU7 CisJaWFsLT5pc19yZXNlcnZlZCA9IGludGVsX2FsbG9jYXRvcl9yYW5kb21faXNfcmVzZXJ2ZWQ7 CisJaWFsLT5kZXN0cm95ID0gaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9kZXN0cm95OworCWlhbC0+ cHJpbnQgPSBpbnRlbF9hbGxvY2F0b3JfcmFuZG9tX3ByaW50OworCWlhbC0+aXNfZW1wdHkgPSBp bnRlbF9hbGxvY2F0b3JfcmFuZG9tX2lzX2VtcHR5OworCisJaWFsciA9IGlhbC0+cHJpdiA9IGNh bGxvYygxLCBzaXplb2YoKmlhbHIpKTsKKwlpZ3RfYXNzZXJ0KGlhbC0+cHJpdik7CisJaWFsci0+ cHJuZyA9ICh1aW50MzJfdCkgdG9fdXNlcl9wb2ludGVyKGlhbCk7CisJaWFsci0+Z3R0X3NpemUg PSBnZW1fYXBlcnR1cmVfc2l6ZShmZCk7CisJaWd0X2RlYnVnKCJHdHQgc2l6ZTogJSIgUFJJZDY0 ICJcbiIsIGlhbHItPmd0dF9zaXplKTsKKwlpZiAoIWdlbV91c2VzX2Z1bGxfcHBndHQoZmQpKQor CQlpYWxyLT5ndHRfc2l6ZSAvPSAyOworCisJaWYgKChpYWxyLT5ndHRfc2l6ZSAtIDEpID4+IDMy KSB7CisJCS8qCisJCSAqIFdlJ3JlIG5vdCBhd2FyZSBvZiBibyBzaXplcywgc28gbGltaXRpbmcg dG8gNDYgYml0IG1ha2UgdXMKKwkJICogc3VyZSB3ZSB3b24ndCBlbnRlciB0byBhZGRyZXNzZXMg d2l0aCA0Ny1iaXQgc2V0CisJCSAqICh3ZSB1c2UgMzItYml0IHNpemUgbm93IHNvIHN0aWxsIHdl IGZpdCA0Ny1iaXQgYWRkcmVzcyBzcGFjZSkuCisJCSAqLworCQlpZiAoaWFsci0+Z3R0X3NpemUg JiAoM3VsbCA8PCA0NykpCisJCQlpYWxyLT5ndHRfc2l6ZSA9ICgxdWxsIDw8IDQ2KTsKKwl9CisJ aWFsci0+YmlhcyA9IGdldF9iaWFzKGZkKTsKKwlpYWxyLT5zdGFydCA9IGlhbHItPmJpYXM7CisJ aWFsci0+ZW5kID0gaWFsci0+Z3R0X3NpemU7CisKKwlpYWxyLT5hbGxvY2F0ZWRfb2JqZWN0cyA9 IDA7CisKKwlyZXR1cm4gaWFsOworfQotLSAKMi4yNi4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXYK