From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 16/38] drm: kselftest for drm_mm and top-down allocation Date: Thu, 22 Dec 2016 08:36:19 +0000 Message-ID: <20161222083641.2691-17-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 Q2hlY2sgdGhhdCBpZiB3ZSByZXF1ZXN0IHRvcC1kb3duIGFsbG9jYXRpb24gZnJvbSBkcm1fbW1f aW5zZXJ0X25vZGUoKQp3ZSByZWNlaXZlIHRoZSBuZXh0IGF2YWlsYWJsZSBob2xlIGZyb20gdGhl IHRvcC4KCnYyOiBGbGlwIHNpZ24gb24gY29uZGl0aW9uYWwgYXNzZXJ0LgoKU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBK b29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1fbW1fc2VsZnRlc3RzLmggfCAgIDEgKwogZHJpdmVy cy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jICAgICAgfCAxMTkgKysrKysrKysrKysr KysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1fbW1fc2VsZnRlc3RzLmggYi9k cml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9tbV9zZWxmdGVzdHMuaAppbmRleCA5NjVhY2E2 NWMxNjAuLmNkNTA4ZTNkNjUzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0 cy9kcm1fbW1fc2VsZnRlc3RzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1f bW1fc2VsZnRlc3RzLmgKQEAgLTE3LDMgKzE3LDQgQEAgc2VsZnRlc3QoYWxpZ24zMiwgaWd0X2Fs aWduMzIpCiBzZWxmdGVzdChhbGlnbjY0LCBpZ3RfYWxpZ242NCkKIHNlbGZ0ZXN0KGV2aWN0LCBp Z3RfZXZpY3QpCiBzZWxmdGVzdChldmljdF9yYW5nZSwgaWd0X2V2aWN0X3JhbmdlKQorc2VsZnRl c3QodG9wZG93biwgaWd0X3RvcGRvd24pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2Vs ZnRlc3RzL3Rlc3QtZHJtX21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJt X21tLmMKaW5kZXggZDQ5MTE1MTg2OTY3Li5kM2Q0ZTRmMzkwNDIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v c2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKQEAgLTE1NTIsNiArMTU1MiwxMjUgQEAgc3RhdGljIGlu dCBpZ3RfZXZpY3RfcmFuZ2Uodm9pZCAqaWdub3JlZCkKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0 aWMgdW5zaWduZWQgaW50IG5vZGVfaW5kZXgoY29uc3Qgc3RydWN0IGRybV9tbV9ub2RlICpub2Rl KQoreworCXJldHVybiBkaXY2NF91NjQobm9kZS0+c3RhcnQsIG5vZGUtPnNpemUpOworfQorCitz dGF0aWMgaW50IGlndF90b3Bkb3duKHZvaWQgKmlnbm9yZWQpCit7CisJY29uc3Qgc3RydWN0IGlu c2VydF9tb2RlICp0b3Bkb3duID0gJmluc2VydF9tb2Rlc1tUT1BET1dOXTsKKwlEUk1fUk5EX1NU QVRFKHBybmcsIHJhbmRvbV9zZWVkKTsKKwljb25zdCB1bnNpZ25lZCBpbnQgY291bnQgPSA4MTky OworCXVuc2lnbmVkIGludCBzaXplOworCXVuc2lnbmVkIGxvbmcgKmJpdG1hcCA9IE5VTEw7CisJ c3RydWN0IGRybV9tbSBtbTsKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGVzLCAqbm9kZSwgKm5l eHQ7CisJdW5zaWduZWQgaW50ICpvcmRlciwgbiwgbSwgbyA9IDA7CisJaW50IHJldDsKKworCS8q IFdoZW4gYWxsb2NhdGluZyB0b3AtZG93biwgd2UgZXhwZWN0IHRvIGJlIHJldHVybmVkIGEgbm9k ZQorCSAqIGZyb20gYSBzdWl0YWJsZSBob2xlIGF0IHRoZSB0b3Agb2YgdGhlIGRybV9tbS4gV2Ug Y2hlY2sgdGhhdAorCSAqIHRoZSByZXR1cm5lZCBub2RlIGRvZXMgbWF0Y2ggdGhlIGhpZ2hlc3Qg YXZhaWxhYmxlIHNsb3QuCisJICovCisKKwlyZXQgPSAtRU5PTUVNOworCW5vZGVzID0gdnphbGxv Yyhjb3VudCAqIHNpemVvZigqbm9kZXMpKTsKKwlpZiAoIW5vZGVzKQorCQlnb3RvIGVycjsKKwor CWJpdG1hcCA9IGt6YWxsb2MoY291bnQgLyBCSVRTX1BFUl9MT05HICogc2l6ZW9mKHVuc2lnbmVk IGxvbmcpLAorCQkJIEdGUF9URU1QT1JBUlkpOworCWlmICghYml0bWFwKQorCQlnb3RvIGVycl9u b2RlczsKKworCW9yZGVyID0gZHJtX3JhbmRvbV9vcmRlcihjb3VudCwgJnBybmcpOworCWlmICgh b3JkZXIpCisJCWdvdG8gZXJyX2JpdG1hcDsKKworCXJldCA9IC1FSU5WQUw7CisJZm9yIChzaXpl ID0gMTsgc2l6ZSA8PSA2NDsgc2l6ZSA8PD0gMSkgeworCQlkcm1fbW1faW5pdCgmbW0sIDAsIHNp emUqY291bnQpOworCQlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykgeworCQkJaWYgKCFleHBl Y3RfaW5zZXJ0KCZtbSwgJm5vZGVzW25dLAorCQkJCQkgICBzaXplLCAwLCBuLAorCQkJCQkgICB0 b3Bkb3duKSkgeworCQkJCXByX2VycigiaW5zZXJ0IGZhaWxlZCwgc2l6ZSAldSBzdGVwICVkXG4i LCBzaXplLCBuKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJaWYgKG5vZGVzW25dLmhvbGVf Zm9sbG93cykgeworCQkJCXByX2VycigiaG9sZSBhZnRlciB0b3Bkb3duIGluc2VydCAlZCwgc3Rh cnQ9JWxseFxuLCBzaXplPSV1IiwKKwkJCQkgICAgICAgbiwgbm9kZXNbbl0uc3RhcnQsIHNpemUp OworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQlpZiAoIWFzc2VydF9vbmVfaG9sZSgmbW0sIDAs IHNpemUqKGNvdW50IC0gbiAtIDEpKSkKKwkJCQlnb3RvIG91dDsKKwkJfQorCisJCWlmICghYXNz ZXJ0X2NvbnRpbnVvdXMoJm1tLCBzaXplKSkKKwkJCWdvdG8gb3V0OworCisJCWRybV9yYW5kb21f cmVvcmRlcihvcmRlciwgY291bnQsICZwcm5nKTsKKwkJZm9yX2VhY2hfcHJpbWVfbnVtYmVyX2Zy b20obiwgMSwgbWluKGNvdW50LCBtYXhfcHJpbWUpKSB7CisJCQlmb3IgKG0gPSAwOyBtIDwgbjsg bSsrKSB7CisJCQkJbm9kZSA9ICZub2Rlc1tvcmRlclsobyArIG0pICUgY291bnRdXTsKKwkJCQlk cm1fbW1fcmVtb3ZlX25vZGUobm9kZSk7CisJCQkJX19zZXRfYml0KG5vZGVfaW5kZXgobm9kZSks IGJpdG1hcCk7CisJCQl9CisKKwkJCWZvciAobSA9IDA7IG0gPCBuOyBtKyspIHsKKwkJCQl1bnNp Z25lZCBpbnQgbGFzdDsKKworCQkJCW5vZGUgPSAmbm9kZXNbb3JkZXJbKG8gKyBtKSAlIGNvdW50 XV07CisJCQkJaWYgKCFleHBlY3RfaW5zZXJ0KCZtbSwgbm9kZSwKKwkJCQkJCSAgIHNpemUsIDAs IDAsCisJCQkJCQkgICB0b3Bkb3duKSkgeworCQkJCQlwcl9lcnIoImluc2VydCBmYWlsZWQsIHN0 ZXAgJWQvJWRcbiIsIG0sIG4pOworCQkJCQlnb3RvIG91dDsKKwkJCQl9CisKKwkJCQlpZiAobm9k ZS0+aG9sZV9mb2xsb3dzKSB7CisJCQkJCXByX2VycigiaG9sZSBhZnRlciB0b3Bkb3duIGluc2Vy dCAlZC8lZCwgc3RhcnQ9JWxseFxuIiwKKwkJCQkJICAgICAgIG0sIG4sIG5vZGUtPnN0YXJ0KTsK KwkJCQkJZ290byBvdXQ7CisJCQkJfQorCisJCQkJbGFzdCA9IGZpbmRfbGFzdF9iaXQoYml0bWFw LCBjb3VudCk7CisJCQkJaWYgKG5vZGVfaW5kZXgobm9kZSkgIT0gbGFzdCkgeworCQkJCQlwcl9l cnIoIm5vZGUgJWQvJWQsIHNpemUgJWQsIG5vdCBpbnNlcnRlZCBpbnRvIHVwbW9zdCBob2xlLCBl eHBlY3RlZCAlZCwgZm91bmQgJWRcbiIsCisJCQkJCSAgICAgICBtLCBuLCBzaXplLCBsYXN0LCBu b2RlX2luZGV4KG5vZGUpKTsKKwkJCQkJZ290byBvdXQ7CisJCQkJfQorCisJCQkJX19jbGVhcl9i aXQobGFzdCwgYml0bWFwKTsKKwkJCX0KKworCQkJRFJNX01NX0JVR19PTihmaW5kX2ZpcnN0X2Jp dChiaXRtYXAsIGNvdW50KSAhPSBjb3VudCk7CisKKwkJCW8gKz0gbjsKKwkJfQorCisJCWRybV9t bV9mb3JfZWFjaF9ub2RlX3NhZmUobm9kZSwgbmV4dCwgJm1tKQorCQkJZHJtX21tX3JlbW92ZV9u b2RlKG5vZGUpOworCQlEUk1fTU1fQlVHX09OKCFkcm1fbW1fY2xlYW4oJm1tKSk7CisJfQorCisJ cmV0ID0gMDsKK291dDoKKwlkcm1fbW1fZm9yX2VhY2hfbm9kZV9zYWZlKG5vZGUsIG5leHQsICZt bSkKKwkJZHJtX21tX3JlbW92ZV9ub2RlKG5vZGUpOworCWRybV9tbV90YWtlZG93bigmbW0pOwor CWtmcmVlKG9yZGVyKTsKK2Vycl9iaXRtYXA6CisJa2ZyZWUoYml0bWFwKTsKK2Vycl9ub2RlczoK Kwl2ZnJlZShub2Rlcyk7CitlcnI6CisJcmV0dXJuIHJldDsKK30KKwogI2luY2x1ZGUgImRybV9z ZWxmdGVzdC5jIgogCiBzdGF0aWMgaW50IF9faW5pdCB0ZXN0X2RybV9tbV9pbml0KHZvaWQpCi0t IAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=