From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 09/38] drm: kselftest for drm_mm_reserve_node() Date: Thu, 22 Dec 2016 08:36:12 +0000 Message-ID: <20161222083641.2691-10-chris@chris-wilson.co.uk> References: <20161222083641.2691-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161222083641.2691-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RXhlcmNpc2UgZHJtX21tX3Jlc2VydmVfbm9kZSgpLCBjaGVjayB0aGF0IHdlIGNhbid0IHJlc2Vy dmUgYW4gYWxyZWFkeQpvY2N1cGllZCByYW5nZSBhbmQgdGhhdCB0aGUgbGlzdHMgYXJlIGNvcnJl Y3QgYWZ0ZXIgcmVzZXJ2aW5nL3JlbW92aW5nLgoKdjI6IENoZWNrIGZvciBpbnZhbGlkIG5vZGUg cmVzZXJ2YXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4KUmV2aWV3ZWQtYnk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVu QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9tbV9z ZWxmdGVzdHMuaCB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21t LmMgICAgICB8IDI3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdl ZCwgMjc2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRl c3RzL2RybV9tbV9zZWxmdGVzdHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21t X3NlbGZ0ZXN0cy5oCmluZGV4IDAyNjVmMDllOTJmYS4uNjkzZDg1Njc3ZTdmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9tbV9zZWxmdGVzdHMuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9tbV9zZWxmdGVzdHMuaApAQCAtOCwzICs4LDQgQEAK IHNlbGZ0ZXN0KHNhbml0eWNoZWNrLCBpZ3Rfc2FuaXR5Y2hlY2spIC8qIGtlZXAgZmlyc3QgKHNl bGZjaGVjayBmb3IgaWd0KSAqLwogc2VsZnRlc3QoaW5pdCwgaWd0X2luaXQpCiBzZWxmdGVzdChk ZWJ1ZywgaWd0X2RlYnVnKQorc2VsZnRlc3QocmVzZXJ2ZSwgaWd0X3Jlc2VydmUpCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMgYi9kcml2ZXJzL2dw dS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKaW5kZXggNDM0MzIwMDYxZDllLi43ODlhODEw ZDY2YWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKQEAgLTgwLDYg KzgwLDU3IEBAIHN0YXRpYyBib29sIGFzc2VydF9vbmVfaG9sZShjb25zdCBzdHJ1Y3QgZHJtX21t ICptbSwgdTY0IHN0YXJ0LCB1NjQgZW5kKQogCXJldHVybiBvazsKIH0KIAorc3RhdGljIGJvb2wg YXNzZXJ0X2NvbnRpbnVvdXMoY29uc3Qgc3RydWN0IGRybV9tbSAqbW0sIHU2NCBzaXplKQorewor CXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgKmNoZWNrLCAqZm91bmQ7CisJdW5zaWduZWQgbG9u ZyBuOworCXU2NCBhZGRyOworCisJaWYgKCFhc3NlcnRfbm9faG9sZXMobW0pKQorCQlyZXR1cm4g ZmFsc2U7CisKKwluID0gMDsKKwlhZGRyID0gMDsKKwlkcm1fbW1fZm9yX2VhY2hfbm9kZShub2Rl LCBtbSkgeworCQlpZiAobm9kZS0+c3RhcnQgIT0gYWRkcikgeworCQkJcHJfZXJyKCJub2RlWyVs ZF0gbGlzdCBvdXQgb2Ygb3JkZXIsIGV4cGVjdGVkICVsbHggZm91bmQgJWxseFxuIiwKKwkJCSAg ICAgICBuLCBhZGRyLCBub2RlLT5zdGFydCk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQlp ZiAobm9kZS0+c2l6ZSAhPSBzaXplKSB7CisJCQlwcl9lcnIoIm5vZGVbJWxkXS5zaXplIGluY29y cmVjdCwgZXhwZWN0ZWQgJWxseCwgZm91bmQgJWxseFxuIiwKKwkJCSAgICAgICBuLCBzaXplLCBu b2RlLT5zaXplKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWlmIChub2RlLT5ob2xlX2Zv bGxvd3MpIHsKKwkJCXByX2Vycigibm9kZVslbGRdIGlzIGZvbGxvd2VkIGJ5IGEgaG9sZSFcbiIs IG4pOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJZm91bmQgPSBOVUxMOworCQlkcm1fbW1f Zm9yX2VhY2hfbm9kZV9pbl9yYW5nZShjaGVjaywgbW0sIGFkZHIsIGFkZHIgKyBzaXplKSB7CisJ CQlpZiAobm9kZSAhPSBjaGVjaykgeworCQkJCXByX2VycigibG9va3VwIHJldHVybiB3cm9uZyBu b2RlLCBleHBlY3RlZCBzdGFydCAlbGx4LCBmb3VuZCAlbGx4XG4iLAorCQkJCSAgICAgICBub2Rl LT5zdGFydCwgY2hlY2stPnN0YXJ0KTsKKwkJCQlyZXR1cm4gZmFsc2U7CisJCQl9CisJCQlmb3Vu ZCA9IGNoZWNrOworCQl9CisJCWlmICghZm91bmQpIHsKKwkJCXByX2VycigibG9va3VwIGZhaWxl ZCBmb3Igbm9kZSAlbGx4ICsgJWxseFxuIiwKKwkJCSAgICAgICBhZGRyLCBzaXplKTsKKwkJCXJl dHVybiBmYWxzZTsKKwkJfQorCisJCWFkZHIgKz0gc2l6ZTsKKwkJbisrOworCX0KKworCXJldHVy biB0cnVlOworfQorCiBzdGF0aWMgaW50IGlndF9pbml0KHZvaWQgKmlnbm9yZWQpCiB7CiAJY29u c3QgdW5zaWduZWQgaW50IHNpemUgPSA0MDk2OwpAQCAtMTc2LDYgKzIyNywyMzAgQEAgc3RhdGlj IGludCBpZ3RfZGVidWcodm9pZCAqaWdub3JlZCkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHN0 cnVjdCBkcm1fbW1fbm9kZSAqc2V0X25vZGUoc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAorCQkJ CSAgICB1NjQgc3RhcnQsIHU2NCBzaXplKQoreworCW5vZGUtPnN0YXJ0ID0gc3RhcnQ7CisJbm9k ZS0+c2l6ZSA9IHNpemU7CisJcmV0dXJuIG5vZGU7Cit9CisKK3N0YXRpYyBib29sIGV4cGVjdF9y ZXNlcnZlX2ZhaWwoc3RydWN0IGRybV9tbSAqbW0sIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkK K3sKKwlpbnQgZXJyOworCisJZXJyID0gZHJtX21tX3Jlc2VydmVfbm9kZShtbSwgbm9kZSk7CisJ aWYgKGxpa2VseShlcnIgPT0gLUVOT1NQQykpCisJCXJldHVybiB0cnVlOworCisJaWYgKCFlcnIp IHsKKwkJcHJfZXJyKCJpbXBvc3NpYmxlIHJlc2VydmUgc3VjY2VlZGVkLCBub2RlICVsbHUgKyAl bGx1XG4iLAorCQkgICAgICAgbm9kZS0+c3RhcnQsIG5vZGUtPnNpemUpOworCQlkcm1fbW1fcmVt b3ZlX25vZGUobm9kZSk7CisJfSBlbHNlIHsKKwkJcHJfZXJyKCJpbXBvc3NpYmxlIHJlc2VydmUg ZmFpbGVkIHdpdGggd3JvbmcgZXJyb3IgJWQgW2V4cGVjdGVkICVkXSwgbm9kZSAlbGx1ICsgJWxs dVxuIiwKKwkJICAgICAgIGVyciwgLUVOT1NQQywgbm9kZS0+c3RhcnQsIG5vZGUtPnNpemUpOwor CX0KKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIGNoZWNrX3Jlc2VydmVfYm91bmRh cmllcyhzdHJ1Y3QgZHJtX21tICptbSwKKwkJCQkgICAgIHVuc2lnbmVkIGludCBjb3VudCwKKwkJ CQkgICAgIHU2NCBzaXplKQoreworCWNvbnN0IHN0cnVjdCBib3VuZGFyeSB7CisJCXU2NCBzdGFy dCwgc2l6ZTsKKwkJY29uc3QgY2hhciAqbmFtZTsKKwl9IGJvdW5kYXJpZXNbXSA9IHsKKyNkZWZp bmUgQihzdCwgc3opIHsgKHN0KSwgKHN6KSwgInsgIiAjc3QgIiwgIiAjc3ogIn0iIH0KKwkJQigw LCAwKSwKKwkJQigtc2l6ZSwgMCksCisJCUIoc2l6ZSwgMCksCisJCUIoc2l6ZSAqIGNvdW50LCAw KSwKKwkJQigtc2l6ZSwgc2l6ZSksCisJCUIoLXNpemUsIC1zaXplKSwKKwkJQigtc2l6ZSwgMipz aXplKSwKKwkJQigwLCAtc2l6ZSksCisJCUIoc2l6ZSwgLXNpemUpLAorCQlCKGNvdW50KnNpemUs IHNpemUpLAorCQlCKGNvdW50KnNpemUsIC1zaXplKSwKKwkJQihjb3VudCpzaXplLCBjb3VudCpz aXplKSwKKwkJQihjb3VudCpzaXplLCAtY291bnQqc2l6ZSksCisJCUIoY291bnQqc2l6ZSwgLShj b3VudCsxKSpzaXplKSwKKwkJQigoY291bnQrMSkqc2l6ZSwgc2l6ZSksCisJCUIoKGNvdW50KzEp KnNpemUsIC1zaXplKSwKKwkJQigoY291bnQrMSkqc2l6ZSwgLTIqc2l6ZSksCisjdW5kZWYgQgor CX07CisJc3RydWN0IGRybV9tbV9ub2RlIHRtcCA9IHt9OworCWludCBuOworCisJZm9yIChuID0g MDsgbiA8IEFSUkFZX1NJWkUoYm91bmRhcmllcyk7IG4rKykgeworCQlpZiAoIWV4cGVjdF9yZXNl cnZlX2ZhaWwobW0sCisJCQkJCSBzZXRfbm9kZSgmdG1wLAorCQkJCQkJICBib3VuZGFyaWVzW25d LnN0YXJ0LAorCQkJCQkJICBib3VuZGFyaWVzW25dLnNpemUpKSkgeworCQkJcHJfZXJyKCJib3Vu ZGFyeVslZDolc10gZmFpbGVkLCBjb3VudD0ldSwgc2l6ZT0lbGxkXG4iLAorCQkJICAgICAgIG4s IGJvdW5kYXJpZXNbbl0ubmFtZSwgY291bnQsIHNpemUpOworCQkJcmV0dXJuIGZhbHNlOworCQl9 CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbnQgX19pZ3RfcmVzZXJ2ZSh1bnNp Z25lZCBpbnQgY291bnQsIHU2NCBzaXplKQoreworCURSTV9STkRfU1RBVEUocHJuZywgcmFuZG9t X3NlZWQpOworCXN0cnVjdCBkcm1fbW0gbW07CisJc3RydWN0IGRybV9tbV9ub2RlIHRtcCwgKm5v ZGVzLCAqbm9kZSwgKm5leHQ7CisJdW5zaWduZWQgaW50ICpvcmRlciwgbiwgbSwgbyA9IDA7CisJ aW50IHJldCwgZXJyOworCisJLyogRm9yIGV4ZXJjaXNpbmcgZHJtX21tX3Jlc2VydmVfbm9kZSgp LCB3ZSB3YW50IHRvIGNoZWNrIHRoYXQKKwkgKiByZXNlcnZhdGlvbnMgb3V0c2lkZSBvZiB0aGUg ZHJtX21tIHJhbmdlIGFyZSByZWplY3RlZCwgYW5kIHRvCisJICogb3ZlcmxhcHBpbmcgYW5kIG90 aGVyd2lzZSBhbHJlYWR5IG9jY3VwaWVkIHJhbmdlcy4gQWZ0ZXJ3YXJkcywKKwkgKiB0aGUgdHJl ZSBhbmQgbm9kZXMgc2hvdWxkIGJlIGludGFjdC4KKwkgKi8KKworCURSTV9NTV9CVUdfT04oIWNv dW50KTsKKwlEUk1fTU1fQlVHX09OKCFzaXplKTsKKworCXJldCA9IC1FTk9NRU07CisJb3JkZXIg PSBkcm1fcmFuZG9tX29yZGVyKGNvdW50LCAmcHJuZyk7CisJaWYgKCFvcmRlcikKKwkJZ290byBl cnI7CisKKwlub2RlcyA9IHZ6YWxsb2Moc2l6ZW9mKCpub2RlcykgKiBjb3VudCk7CisJaWYgKCFu b2RlcykKKwkJZ290byBlcnJfb3JkZXI7CisKKwlyZXQgPSAtRUlOVkFMOworCWRybV9tbV9pbml0 KCZtbSwgMCwgY291bnQgKiBzaXplKTsKKworCWlmICghY2hlY2tfcmVzZXJ2ZV9ib3VuZGFyaWVz KCZtbSwgY291bnQsIHNpemUpKQorCQlnb3RvIG91dDsKKworCWZvciAobiA9IDA7IG4gPCBjb3Vu dDsgbisrKSB7CisJCW5vZGVzW25dLnN0YXJ0ID0gb3JkZXJbbl0gKiBzaXplOworCQlub2Rlc1tu XS5zaXplID0gc2l6ZTsKKworCQllcnIgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZtbSwgJm5vZGVz W25dKTsKKwkJaWYgKGVycikgeworCQkJcHJfZXJyKCJyZXNlcnZlIGZhaWxlZCwgc3RlcCAlZCwg c3RhcnQgJWxsdVxuIiwKKwkJCSAgICAgICBuLCBub2Rlc1tuXS5zdGFydCk7CisJCQlyZXQgPSBl cnI7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWlmICghZHJtX21tX25vZGVfYWxsb2NhdGVkKCZu b2Rlc1tuXSkpIHsKKwkJCXByX2VycigicmVzZXJ2ZWQgbm9kZSBub3QgYWxsb2NhdGVkISBzdGVw ICVkLCBzdGFydCAlbGx1XG4iLAorCQkJICAgICAgIG4sIG5vZGVzW25dLnN0YXJ0KTsKKwkJCWdv dG8gb3V0OworCQl9CisKKwkJaWYgKCFleHBlY3RfcmVzZXJ2ZV9mYWlsKCZtbSwgJm5vZGVzW25d KSkKKwkJCWdvdG8gb3V0OworCX0KKworCS8qIEFmdGVyIHJhbmRvbSBpbnNlcnRpb24gdGhlIG5v ZGVzIHNob3VsZCBiZSBpbiBvcmRlciAqLworCWlmICghYXNzZXJ0X2NvbnRpbnVvdXMoJm1tLCBz aXplKSkKKwkJZ290byBvdXQ7CisKKwkvKiBSZXBlYXRlZCB1c2Ugc2hvdWxkIHRoZW4gZmFpbCAq LworCWRybV9yYW5kb21fcmVvcmRlcihvcmRlciwgY291bnQsICZwcm5nKTsKKwlmb3IgKG4gPSAw OyBuIDwgY291bnQ7IG4rKykgeworCQlpZiAoIWV4cGVjdF9yZXNlcnZlX2ZhaWwoJm1tLAorCQkJ CQkgc2V0X25vZGUoJnRtcCwgb3JkZXJbbl0gKiBzaXplLCAxKSkpCisJCQlnb3RvIG91dDsKKwor CQkvKiBSZW1vdmUgYW5kIHJlaW5zZXJ0IHNob3VsZCB3b3JrICovCisJCWRybV9tbV9yZW1vdmVf bm9kZSgmbm9kZXNbb3JkZXJbbl1dKTsKKwkJZXJyID0gZHJtX21tX3Jlc2VydmVfbm9kZSgmbW0s ICZub2Rlc1tvcmRlcltuXV0pOworCQlpZiAoZXJyKSB7CisJCQlwcl9lcnIoInJlc2VydmUgZmFp bGVkLCBzdGVwICVkLCBzdGFydCAlbGx1XG4iLAorCQkJICAgICAgIG4sIG5vZGVzW25dLnN0YXJ0 KTsKKwkJCXJldCA9IGVycjsKKwkJCWdvdG8gb3V0OworCQl9CisJfQorCisJaWYgKCFhc3NlcnRf Y29udGludW91cygmbW0sIHNpemUpKQorCQlnb3RvIG91dDsKKworCS8qIE92ZXJsYXBwaW5nIHVz ZSBzaG91bGQgdGhlbiBmYWlsICovCisJZm9yIChuID0gMDsgbiA8IGNvdW50OyBuKyspIHsKKwkJ aWYgKCFleHBlY3RfcmVzZXJ2ZV9mYWlsKCZtbSwgc2V0X25vZGUoJnRtcCwgMCwgc2l6ZSpjb3Vu dCkpKQorCQkJZ290byBvdXQ7CisJfQorCWZvciAobiA9IDA7IG4gPCBjb3VudDsgbisrKSB7CisJ CWlmICghZXhwZWN0X3Jlc2VydmVfZmFpbCgmbW0sCisJCQkJCSBzZXRfbm9kZSgmdG1wLAorCQkJ CQkJICBzaXplICogbiwKKwkJCQkJCSAgc2l6ZSAqIChjb3VudCAtIG4pKSkpCisJCQlnb3RvIG91 dDsKKwl9CisKKwkvKiBSZW1vdmUgc2V2ZXJhbCwgcmVpbnNlcnQsIGNoZWNrIGZ1bGwgKi8KKwlm b3JfZWFjaF9wcmltZV9udW1iZXIobiwgbWluKG1heF9wcmltZSwgY291bnQpKSB7CisJCWZvciAo bSA9IDA7IG0gPCBuOyBtKyspIHsKKwkJCW5vZGUgPSAmbm9kZXNbb3JkZXJbKG8gKyBtKSAlIGNv dW50XV07CisJCQlkcm1fbW1fcmVtb3ZlX25vZGUobm9kZSk7CisJCX0KKworCQlmb3IgKG0gPSAw OyBtIDwgbjsgbSsrKSB7CisJCQlub2RlID0gJm5vZGVzW29yZGVyWyhvICsgbSkgJSBjb3VudF1d OworCQkJZXJyID0gZHJtX21tX3Jlc2VydmVfbm9kZSgmbW0sIG5vZGUpOworCQkJaWYgKGVycikg eworCQkJCXByX2VycigicmVzZXJ2ZSBmYWlsZWQsIHN0ZXAgJWQvJWQsIHN0YXJ0ICVsbHVcbiIs CisJCQkJICAgICAgIG0sIG4sIG5vZGUtPnN0YXJ0KTsKKwkJCQlyZXQgPSBlcnI7CisJCQkJZ290 byBvdXQ7CisJCQl9CisJCX0KKworCQlvICs9IG47CisKKwkJaWYgKCFhc3NlcnRfY29udGludW91 cygmbW0sIHNpemUpKQorCQkJZ290byBvdXQ7CisJfQorCisJcmV0ID0gMDsKK291dDoKKwlkcm1f bW1fZm9yX2VhY2hfbm9kZV9zYWZlKG5vZGUsIG5leHQsICZtbSkKKwkJZHJtX21tX3JlbW92ZV9u b2RlKG5vZGUpOworCWRybV9tbV90YWtlZG93bigmbW0pOworCXZmcmVlKG5vZGVzKTsKK2Vycl9v cmRlcjoKKwlrZnJlZShvcmRlcik7CitlcnI6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGlu dCBpZ3RfcmVzZXJ2ZSh2b2lkICppZ25vcmVkKQoreworCWNvbnN0IHVuc2lnbmVkIGludCBjb3Vu dCA9IG1pbl90KHVuc2lnbmVkIGludCwgQklUKDEwKSwgbWF4X2l0ZXJhdGlvbnMpOworCWludCBu LCByZXQ7CisKKwlmb3JfZWFjaF9wcmltZV9udW1iZXJfZnJvbShuLCAxLCA1NCkgeworCQl1NjQg c2l6ZSA9IEJJVF9VTEwobik7CisKKwkJcmV0ID0gX19pZ3RfcmVzZXJ2ZShjb3VudCwgc2l6ZSAt IDEpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKworCQlyZXQgPSBfX2lndF9yZXNlcnZl KGNvdW50LCBzaXplKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0ID0gX19p Z3RfcmVzZXJ2ZShjb3VudCwgc2l6ZSArIDEpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsK Kwl9CisKKwlyZXR1cm4gMDsKK30KKwogI2luY2x1ZGUgImRybV9zZWxmdGVzdC5jIgogCiBzdGF0 aWMgaW50IF9faW5pdCB0ZXN0X2RybV9tbV9pbml0KHZvaWQpCi0tIAoyLjExLjAKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=