From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2 29/38] drm/i915: Exercise filling and removing random ranges from the live GTT Date: Thu, 19 Jan 2017 11:41:49 +0000 Message-ID: <20170119114158.17941-30-chris@chris-wilson.co.uk> References: <20170119114158.17941-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wj0-x242.google.com (mail-wj0-x242.google.com [IPv6:2a00:1450:400c:c01::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A5AD6EA24 for ; Thu, 19 Jan 2017 11:42:35 +0000 (UTC) Received: by mail-wj0-x242.google.com with SMTP id i7so497086wjf.2 for ; Thu, 19 Jan 2017 03:42:35 -0800 (PST) In-Reply-To: <20170119114158.17941-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGVzdCB0aGUgbG93LWxldmVsIGk5MTVfYWRkcmVzc19zcGFjZSBpbnRlcmZhY2VzIHRvIHNhbml0 eSBjaGVjayB0aGUKbGl2ZSBpbnNlcnRpb24vcmVtb3ZhbCBvZiBhZGRyZXNzIHJhbmdlcy4KClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYyB8IDE1MSArKysr KysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE1MSBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCmluZGV4 IDgxYWEyYWJkZGI2OC4uMjg5MTVlNDIyNWUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGlu dXgvcHJpbWVfbnVtYmVycy5oPgogCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgorI2luY2x1 ZGUgImk5MTVfcmFuZG9tLmgiCiAjaW5jbHVkZSAibW9ja19kcm0uaCIKICNpbmNsdWRlICJodWdl X2dlbV9vYmplY3QuaCIKIApAQCAtMjgwLDYgKzI4MSw4NiBAQCBzdGF0aWMgaW50IHdhbGtfaG9s ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0 aWMgaW50IGZpbGxfcmFuZG9tX2hvbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJ CQkgICAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCQkgICAgdTY0IGhvbGVfc3Rh cnQsIHU2NCBob2xlX2VuZCwKKwkJCSAgICB1bnNpZ25lZCBsb25nIGVuZF90aW1lKQoreworCUk5 MTVfUk5EX1NUQVRFKHNlZWRfcHJuZyk7CisJdW5zaWduZWQgaW50IHNpemU7CisKKwkvKiBLZWVw IGNyZWF0aW5nIGxhcmdlciBvYmplY3RzIHVudGlsIG9uZSBjYW5ub3QgZml0IGludG8gdGhlIGhv bGUgKi8KKwlmb3IgKHNpemUgPSAxMjsgKGhvbGVfZW5kIC0gaG9sZV9zdGFydCkgPj4gc2l6ZTsg c2l6ZSsrKSB7CisJCUk5MTVfUk5EX1NVQlNUQVRFKHBybmcsIHNlZWRfcHJuZyk7CisJCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJCXVuc2lnbmVkIGludCAqb3JkZXIsIGNvdW50 LCBuOworCQl1NjQgaG9sZV9zaXplOworCisJCWhvbGVfc2l6ZSA9IChob2xlX2VuZCAtIGhvbGVf c3RhcnQpID4+IHNpemU7CisJCWlmIChob2xlX3NpemUgPiBLTUFMTE9DX01BWF9TSVpFIC8gc2l6 ZW9mKHUzMikpCisJCQlob2xlX3NpemUgPSBLTUFMTE9DX01BWF9TSVpFIC8gc2l6ZW9mKHUzMik7 CisJCWNvdW50ID0gaG9sZV9zaXplOworCQlkbyB7CisJCQljb3VudCA+Pj0gMTsKKwkJCW9yZGVy ID0gaTkxNV9yYW5kb21fb3JkZXIoY291bnQsICZwcm5nKTsKKwkJfSB3aGlsZSAoIW9yZGVyICYm IGNvdW50KTsKKwkJaWYgKCFvcmRlcikKKwkJCWJyZWFrOworCisJCS8qIElnbm9yZSBhbGxvY2F0 aW9uIGZhaWx1cmVzIChpLmUuIGRvbid0IHJlcG9ydCB0aGVtIGFzCisJCSAqIGEgdGVzdCBmYWls dXJlKSBhcyB3ZSBhcmUgcHVycG9zZWZ1bGx5IGFsbG9jYXRpbmcgdmVyeQorCQkgKiBsYXJnZXIg b2JqZWN0cyB3aXRob3V0IGNoZWNraW5nIHRoYXQgd2UgaGF2ZSBzdWZmaWNpZW50CisJCSAqIG1l bW9yeS4gV2UgZXhwZWN0IHRvIGhpdCBFTk9NRU0uCisJCSAqLworCisJCW9iaiA9IGh1Z2VfZ2Vt X29iamVjdChpOTE1LCBQQUdFX1NJWkUsIEJJVF9VTEwoc2l6ZSkpOworCQlpZiAoSVNfRVJSKG9i aikpIHsKKwkJCWtmcmVlKG9yZGVyKTsKKwkJCWJyZWFrOworCQl9CisKKwkJR0VNX0JVR19PTihv YmotPmJhc2Uuc2l6ZSAhPSBCSVRfVUxMKHNpemUpKTsKKworCQlpZiAoaTkxNV9nZW1fb2JqZWN0 X3Bpbl9wYWdlcyhvYmopKSB7CisJCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJCQlrZnJl ZShvcmRlcik7CisJCQlicmVhazsKKwkJfQorCisJCWZvciAobiA9IDA7IG4gPCBjb3VudDsgbisr KSB7CisJCQlpZiAodm0tPmFsbG9jYXRlX3ZhX3JhbmdlICYmCisJCQkgICAgdm0tPmFsbG9jYXRl X3ZhX3JhbmdlKHZtLAorCQkJCQkJICBvcmRlcltuXSAqIEJJVF9VTEwoc2l6ZSksCisJCQkJCQkg IEJJVF9VTEwoc2l6ZSkpKQorCQkJCWJyZWFrOworCisJCQl2bS0+aW5zZXJ0X2VudHJpZXModm0s IG9iai0+bW0ucGFnZXMsCisJCQkJCSAgIG9yZGVyW25dICogQklUX1VMTChzaXplKSwKKwkJCQkJ ICAgSTkxNV9DQUNIRV9OT05FLCAwKTsKKwkJCWlmIChpZ3RfdGltZW91dChlbmRfdGltZSwKKwkJ CQkJIiVzIHRpbWVkIG91dCBhZnRlciAlZC8lZFxuIiwKKwkJCQkJX19mdW5jX18sIG4sIGNvdW50 KSkgeworCQkJCWhvbGVfc3RhcnQgPSBob2xlX2VuZDsgLyogcXVpdCAqLworCQkJCWJyZWFrOwor CQkJfQorCQl9CisJCWNvdW50ID0gbjsKKworCQlpOTE1X3JhbmRvbV9yZW9yZGVyKG9yZGVyLCBj b3VudCwgJnBybmcpOworCQlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykKKwkJCXZtLT5jbGVh cl9yYW5nZSh2bSwKKwkJCQkJb3JkZXJbbl0qIEJJVF9VTEwoc2l6ZSksCisJCQkJCUJJVF9VTEwo c2l6ZSkpOworCisJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOworCQlpOTE1X2dl bV9vYmplY3RfcHV0KG9iaik7CisKKwkJa2ZyZWUob3JkZXIpOworCX0KKworCXJldHVybiAwOwor fQorCiBzdGF0aWMgaW50IGlndF9wcGd0dF9maWxsKHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBhcmc7CkBAIC0zNTIsNiArNDMzLDQ0IEBAIHN0YXRp YyBpbnQgaWd0X3BwZ3R0X3dhbGsodm9pZCAqYXJnKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRp YyBpbnQgaWd0X3BwZ3R0X2RydW5rKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBhcmc7CisJc3RydWN0IGRybV9maWxlICpmaWxlOworCXN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpwcGd0dDsKKwlJR1RfVElNRU9VVChlbmRfdGltZSk7CisJaW50IGVycjsK KworCS8qIFRyeSBiaW5kaW5nIG1hbnkgVk1BIGluIGEgcmFuZG9tIHBhdHRlcm4gd2l0aGluIHRo ZSBwcGd0dCAqLworCisJaWYgKCFVU0VTX0ZVTExfUFBHVFQoZGV2X3ByaXYpKQorCQlyZXR1cm4g MDsKKworCWZpbGUgPSBtb2NrX2ZpbGUoZGV2X3ByaXYpOworCWlmIChJU19FUlIoZmlsZSkpCisJ CXJldHVybiBQVFJfRVJSKGZpbGUpOworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1 Y3RfbXV0ZXgpOworCXBwZ3R0ID0gaTkxNV9wcGd0dF9jcmVhdGUoZGV2X3ByaXYsIGZpbGUtPmRy aXZlcl9wcml2LCAibW9jayIpOworCWlmIChJU19FUlIocHBndHQpKSB7CisJCWVyciA9IFBUUl9F UlIocHBndHQpOworCQlnb3RvIGVycl91bmxvY2s7CisJfQorCUdFTV9CVUdfT04ob2Zmc2V0X2lu X3BhZ2UocHBndHQtPmJhc2UudG90YWwpKTsKKworCWVyciA9IGZpbGxfcmFuZG9tX2hvbGUoZGV2 X3ByaXYsICZwcGd0dC0+YmFzZSwKKwkJCSAgICAgICAwLCBwcGd0dC0+YmFzZS50b3RhbCwKKwkJ CSAgICAgICBlbmRfdGltZSk7CisKKwlpOTE1X3BwZ3R0X2Nsb3NlKCZwcGd0dC0+YmFzZSk7CisJ aTkxNV9wcGd0dF9wdXQocHBndHQpOworZXJyX3VubG9jazoKKwltdXRleF91bmxvY2soJmRldl9w cml2LT5kcm0uc3RydWN0X211dGV4KTsKKworCW1vY2tfZmlsZV9mcmVlKGRldl9wcml2LCBmaWxl KTsKKwlyZXR1cm4gZXJyOworfQorCiBzdGF0aWMgaW50IGlndF9nZ3R0X2ZpbGwodm9pZCAqYXJn KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwpAQCAtNDEyLDEyICs1 MzEsNDQgQEAgc3RhdGljIGludCBpZ3RfZ2d0dF93YWxrKHZvaWQgKmFyZykKIAlyZXR1cm4gZXJy OwogfQogCitzdGF0aWMgaW50IGlndF9nZ3R0X2RydW5rKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0g Jmk5MTUtPmdndHQ7CisJdTY0IGhvbGVfc3RhcnQsIGhvbGVfZW5kOworCXN0cnVjdCBkcm1fbW1f bm9kZSAqbm9kZTsKKwlJR1RfVElNRU9VVChlbmRfdGltZSk7CisJaW50IGVycjsKKworCS8qIFRy eSBiaW5kaW5nIG1hbnkgVk1BIGluIGEgcmFuZG9tIHBhdHRlcm4gd2l0aGluIHRoZSBnZ3R0ICov CisKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlkcm1fbW1fZm9yX2Vh Y2hfaG9sZShub2RlLCAmZ2d0dC0+YmFzZS5tbSwgaG9sZV9zdGFydCwgaG9sZV9lbmQpIHsKKwkJ aWYgKGdndHQtPmJhc2UubW0uY29sb3JfYWRqdXN0KQorCQkJZ2d0dC0+YmFzZS4gbW0uY29sb3Jf YWRqdXN0KG5vZGUsIDAsCisJCQkJCQkgICAgJmhvbGVfc3RhcnQsICZob2xlX2VuZCk7CisJCWlm IChob2xlX3N0YXJ0ID49IGhvbGVfZW5kKQorCQkJY29udGludWU7CisKKwkJZXJyID0gZmlsbF9y YW5kb21faG9sZShpOTE1LCAmZ2d0dC0+YmFzZSwKKwkJCQkgICAgICAgaG9sZV9zdGFydCwgaG9s ZV9lbmQsCisJCQkJICAgICAgIGVuZF90aW1lKTsKKwkJaWYgKGVycikKKwkJCWJyZWFrOworCX0K KwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0dXJuIGVycjsK K30KKwogaW50IGk5MTVfZ2VtX2d0dF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1td ID0gewogCQlTVUJURVNUKGlndF9wcGd0dF9hbGxvYyksCisJCVNVQlRFU1QoaWd0X3BwZ3R0X2Ry dW5rKSwKIAkJU1VCVEVTVChpZ3RfcHBndHRfd2FsayksCiAJCVNVQlRFU1QoaWd0X3BwZ3R0X2Zp bGwpLAorCQlTVUJURVNUKGlndF9nZ3R0X2RydW5rKSwKIAkJU1VCVEVTVChpZ3RfZ2d0dF93YWxr KSwKIAkJU1VCVEVTVChpZ3RfZ2d0dF9maWxsKSwKIAl9OwotLSAKMi4xMS4wCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK