From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2 37/38] drm/i915: Add mock exercise for i915_gem_gtt_insert Date: Thu, 19 Jan 2017 11:41:57 +0000 Message-ID: <20170119114158.17941-38-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 41FCB6E9DF for ; Thu, 19 Jan 2017 11:42:44 +0000 (UTC) Received: by mail-wj0-x242.google.com with SMTP id kq3so498495wjc.3 for ; Thu, 19 Jan 2017 03:42:44 -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 aTkxNV9nZW1fZ3R0X2luc2VydCBzaG91bGQgYWxsb2NhdGUgZnJvbSB0aGUgYXZhaWxhYmxlIGZy ZWUgc3BhY2UgaW4gdGhlCkdUVCwgZXZpY3RpbmcgYXMgbmVjZXNzYXJ5IHRvIGNyZWF0ZSBzcGFj ZS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYyB8IDIw OCArKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIwOCBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVf Z2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5j CmluZGV4IDZmODdhMDQwMGFkOC4uYjZkMDdkMzUxZjYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCkBAIC03MzYsMTAgKzczNiwyMTggQEAgc3Rh dGljIGludCBpZ3RfZ3R0X3Jlc2VydmUodm9pZCAqYXJnKQogCXJldHVybiBlcnI7CiB9CiAKK3N0 YXRpYyBpbnQgaWd0X2d0dF9pbnNlcnQodm9pZCAqYXJnKQoreworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gYXJnOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosICpv bjsKKwlzdHJ1Y3QgZHJtX21tX25vZGUgdG1wID0ge307CisJY29uc3Qgc3RydWN0IGludmFsaWRf aW5zZXJ0IHsKKwkJdTY0IHNpemU7CisJCXU2NCBhbGlnbm1lbnQ7CisJCXU2NCBzdGFydCwgZW5k OworCX0gaW52YWxpZF9pbnNlcnRbXSA9IHsKKwkJeworCQkJaTkxNS0+Z2d0dC5iYXNlLnRvdGFs ICsgSTkxNV9HVFRfUEFHRV9TSVpFLCAwLAorCQkJMCwgaTkxNS0+Z2d0dC5iYXNlLnRvdGFsLAor CQl9LAorCQl7CisJCQkyKkk5MTVfR1RUX1BBR0VfU0laRSwgMCwKKwkJCTAsIEk5MTVfR1RUX1BB R0VfU0laRSwKKwkJfSwKKwkJeworCQkJLSh1NjQpSTkxNV9HVFRfUEFHRV9TSVpFLCAwLAorCQkJ MCwgNCpJOTE1X0dUVF9QQUdFX1NJWkUsCisJCX0sCisJCXsKKwkJCS0odTY0KTIqSTkxNV9HVFRf UEFHRV9TSVpFLCAyKkk5MTVfR1RUX1BBR0VfU0laRSwKKwkJCTAsIDQqSTkxNV9HVFRfUEFHRV9T SVpFLAorCQl9LAorCQl7CisJCQlJOTE1X0dUVF9QQUdFX1NJWkUsIEk5MTVfR1RUX01JTl9BTElH Tk1FTlQgPDwgMSwKKwkJCUk5MTVfR1RUX01JTl9BTElHTk1FTlQsIEk5MTVfR1RUX01JTl9BTElH Tk1FTlQgPDwgMSwKKwkJfSwKKwkJe30KKwl9LCAqaWk7CisJTElTVF9IRUFEKG9iamVjdHMpOwor CXU2NCB0b3RhbDsKKwlpbnQgZXJyOworCisJLyogaTkxNV9nZW1fZ3R0X2luc2VydCgpIHRyaWVz IHRvIGFsbG9jYXRlIHNvbWUgZnJlZSBzcGFjZSBpbiB0aGUgR1RUCisJICogdG8gdGhlIG5vZGUs IGV2aWN0aW5nIGlmIHJlcXVpcmVkLgorCSAqLworCisJLyogQ2hlY2sgYSBjb3VwbGUgb2Ygb2J2 aW91c2x5IGludmFsaWQgcmVxdWVzdHMgKi8KKwlmb3IgKGlpID0gaW52YWxpZF9pbnNlcnQ7IGlp LT5zaXplOyBpaSsrKSB7CisJCWVyciA9IGk5MTVfZ2VtX2d0dF9pbnNlcnQoJmk5MTUtPmdndHQu YmFzZSwgJnRtcCwKKwkJCQkJICBpaS0+c2l6ZSwgaWktPmFsaWdubWVudCwKKwkJCQkJICBJOTE1 X0NPTE9SX1VORVZJQ1RBQkxFLAorCQkJCQkgIGlpLT5zdGFydCwgaWktPmVuZCwKKwkJCQkJICAw KTsKKwkJaWYgKGVyciAhPSAtRU5PU1BDKSB7CisJCQlwcl9lcnIoIkludmFsaWQgaTkxNV9nZW1f Z3R0X2luc2VydCguc2l6ZT0lbGx4LCAuYWxpZ25tZW50PSVsbHgsIC5zdGFydD0lbGx4LCAuZW5k PSVsbHgpIHN1Y2NlZWRlZCAoZXJyPSVkKVxuIiwKKwkJCSAgICAgICBpaS0+c2l6ZSwgaWktPmFs aWdubWVudCwgaWktPnN0YXJ0LCBpaS0+ZW5kLAorCQkJICAgICAgIGVycik7CisJCQlyZXR1cm4g LUVJTlZBTDsKKwkJfQorCX0KKworCS8qIFN0YXJ0IGJ5IGZpbGxpbmcgdGhlIEdHVFQgKi8KKwlm b3IgKHRvdGFsID0gMDsKKwkgICAgIHRvdGFsICsgSTkxNV9HVFRfUEFHRV9TSVpFIDw9IGk5MTUt PmdndHQuYmFzZS50b3RhbDsKKwkgICAgIHRvdGFsICs9IEk5MTVfR1RUX1BBR0VfU0laRSkgewor CQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKworCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRl X2ludGVybmFsKGk5MTUsIEk5MTVfR1RUX1BBR0VfU0laRSk7CisJCWlmIChJU19FUlIob2JqKSkg eworCQkJZXJyID0gUFRSX0VSUihvYmopOworCQkJZ290byBlcnI7CisJCX0KKworCQllcnIgPSBp OTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJCWlmIChlcnIpIHsKKwkJCWk5MTVfZ2Vt X29iamVjdF9wdXQob2JqKTsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJbGlzdF9hZGQoJm9iai0+ YmF0Y2hfcG9vbF9saW5rLCAmb2JqZWN0cyk7CisKKwkJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uo b2JqLCAmaTkxNS0+Z2d0dC5iYXNlLCBOVUxMKTsKKwkJaWYgKElTX0VSUih2bWEpKSB7CisJCQll cnIgPSBQVFJfRVJSKHZtYSk7CisJCQlnb3RvIGVycjsKKwkJfQorCisJCWVyciA9IGk5MTVfZ2Vt X2d0dF9pbnNlcnQoJmk5MTUtPmdndHQuYmFzZSwgJnZtYS0+bm9kZSwKKwkJCQkJICAgb2JqLT5i YXNlLnNpemUsIDAsIG9iai0+Y2FjaGVfbGV2ZWwsCisJCQkJCSAgIDAsIGk5MTUtPmdndHQuYmFz ZS50b3RhbCwKKwkJCQkJICAgMCk7CisJCWlmIChlcnIgPT0gLUVOT1NQQykgeworCQkJLyogbWF4 ZWQgb3V0IHRoZSBHR1RUIHNwYWNlICovCisJCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJ CQlicmVhazsKKwkJfQorCQlpZiAoZXJyKSB7CisJCQlwcl9lcnIoImk5MTVfZ2VtX2d0dF9pbnNl cnQgKHBhc3MgMSkgZmFpbGVkIGF0ICVsbHUvJWxsdSB3aXRoIGVycj0lZFxuIiwKKwkJCSAgICAg ICB0b3RhbCwgaTkxNS0+Z2d0dC5iYXNlLnRvdGFsLCBlcnIpOworCQkJZ290byBlcnI7CisJCX0K KwkJdHJhY2tfdm1hX2JpbmQodm1hKTsKKwkJX19pOTE1X3ZtYV9waW4odm1hKTsKKworCQlHRU1f QlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOworCX0KKworCWxpc3Rf Zm9yX2VhY2hfZW50cnkob2JqLCAmb2JqZWN0cywgYmF0Y2hfcG9vbF9saW5rKSB7CisJCXN0cnVj dCBpOTE1X3ZtYSAqdm1hOworCisJCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgJmk5MTUt PmdndHQuYmFzZSwgTlVMTCk7CisJCWlmIChJU19FUlIodm1hKSkgeworCQkJZXJyID0gUFRSX0VS Uih2bWEpOworCQkJZ290byBlcnI7CisJCX0KKworCQlpZiAoIWRybV9tbV9ub2RlX2FsbG9jYXRl ZCgmdm1hLT5ub2RlKSkgeworCQkJcHJfZXJyKCJWTUEgd2FzIHVuZXhwZWN0ZWRseSBldmljdGVk IVxuIik7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBlcnI7CisJCX0KKworCQlfX2k5MTVf dm1hX3VucGluKHZtYSk7CisJfQorCisJLyogSWYgd2UgdGhlbiByZWluc2VydCwgd2Ugc2hvdWxk IGZpbmQgdGhlIHNhbWUgaG9sZSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIG9u LCAmb2JqZWN0cywgYmF0Y2hfcG9vbF9saW5rKSB7CisJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwor CQl1NjQgb2Zmc2V0OworCisJCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgJmk5MTUtPmdn dHQuYmFzZSwgTlVMTCk7CisJCWlmIChJU19FUlIodm1hKSkgeworCQkJZXJyID0gUFRSX0VSUih2 bWEpOworCQkJZ290byBlcnI7CisJCX0KKworCQlHRU1fQlVHX09OKCFkcm1fbW1fbm9kZV9hbGxv Y2F0ZWQoJnZtYS0+bm9kZSkpOworCQlvZmZzZXQgPSB2bWEtPm5vZGUuc3RhcnQ7CisKKwkJZXJy ID0gaTkxNV92bWFfdW5iaW5kKHZtYSk7CisJCWlmIChlcnIpIHsKKwkJCXByX2VycigiaTkxNV92 bWFfdW5iaW5kIGZhaWxlZCB3aXRoIGVycj0lZCFcbiIsIGVycik7CisJCQlnb3RvIGVycjsKKwkJ fQorCisJCWVyciA9IGk5MTVfZ2VtX2d0dF9pbnNlcnQoJmk5MTUtPmdndHQuYmFzZSwgJnZtYS0+ bm9kZSwKKwkJCQkJICAgb2JqLT5iYXNlLnNpemUsIDAsIG9iai0+Y2FjaGVfbGV2ZWwsCisJCQkJ CSAgIDAsIGk5MTUtPmdndHQuYmFzZS50b3RhbCwKKwkJCQkJICAgMCk7CisJCWlmIChlcnIpIHsK KwkJCXByX2VycigiaTkxNV9nZW1fZ3R0X2luc2VydCAocGFzcyAyKSBmYWlsZWQgYXQgJWxsdS8l bGx1IHdpdGggZXJyPSVkXG4iLAorCQkJICAgICAgIHRvdGFsLCBpOTE1LT5nZ3R0LmJhc2UudG90 YWwsIGVycik7CisJCQlnb3RvIGVycjsKKwkJfQorCQl0cmFja192bWFfYmluZCh2bWEpOworCisJ CUdFTV9CVUdfT04oIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSk7CisJCWlmICh2 bWEtPm5vZGUuc3RhcnQgIT0gb2Zmc2V0KSB7CisJCQlwcl9lcnIoImk5MTVfZ2VtX2d0dF9pbnNl cnQgZGlkIG5vdCByZXR1cm4gbm9kZSB0byBpdHMgcHJldmlvdXMgbG9jYXRpb24gKHRoZSBvbmx5 IGhvbGUpLCBleHBlY3RlZCBhZGRyZXNzICVsbHgsIGZvdW5kICVsbHhcbiIsCisJCQkgICAgICAg b2Zmc2V0LCB2bWEtPm5vZGUuc3RhcnQpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJy OworCQl9CisJfQorCisJLyogQW5kIHRoZW4gZm9yY2UgZXZpY3Rpb25zICovCisJZm9yICh0b3Rh bCA9IDA7CisJICAgICB0b3RhbCArIDIqSTkxNV9HVFRfUEFHRV9TSVpFIDw9IGk5MTUtPmdndHQu YmFzZS50b3RhbDsKKwkgICAgIHRvdGFsICs9IDIqSTkxNV9HVFRfUEFHRV9TSVpFKSB7CisJCXN0 cnVjdCBpOTE1X3ZtYSAqdm1hOworCisJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50 ZXJuYWwoaTkxNSwgMipJOTE1X0dUVF9QQUdFX1NJWkUpOworCQlpZiAoSVNfRVJSKG9iaikpIHsK KwkJCWVyciA9IFBUUl9FUlIob2JqKTsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJZXJyID0gaTkx NV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOworCQlpZiAoZXJyKSB7CisJCQlpOTE1X2dlbV9v YmplY3RfcHV0KG9iaik7CisJCQlnb3RvIGVycjsKKwkJfQorCisJCWxpc3RfYWRkKCZvYmotPmJh dGNoX3Bvb2xfbGluaywgJm9iamVjdHMpOworCisJCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9i aiwgJmk5MTUtPmdndHQuYmFzZSwgTlVMTCk7CisJCWlmIChJU19FUlIodm1hKSkgeworCQkJZXJy ID0gUFRSX0VSUih2bWEpOworCQkJZ290byBlcnI7CisJCX0KKworCQllcnIgPSBpOTE1X2dlbV9n dHRfaW5zZXJ0KCZpOTE1LT5nZ3R0LmJhc2UsICZ2bWEtPm5vZGUsCisJCQkJCSAgIG9iai0+YmFz ZS5zaXplLCAwLCBvYmotPmNhY2hlX2xldmVsLAorCQkJCQkgICAwLCBpOTE1LT5nZ3R0LmJhc2Uu dG90YWwsCisJCQkJCSAgIDApOworCQlpZiAoZXJyKSB7CisJCQlwcl9lcnIoImk5MTVfZ2VtX2d0 dF9pbnNlcnQgKHBhc3MgMSkgZmFpbGVkIGF0ICVsbHUvJWxsdSB3aXRoIGVycj0lZFxuIiwKKwkJ CSAgICAgICB0b3RhbCwgaTkxNS0+Z2d0dC5iYXNlLnRvdGFsLCBlcnIpOworCQkJZ290byBlcnI7 CisJCX0KKwkJdHJhY2tfdm1hX2JpbmQodm1hKTsKKworCQlHRU1fQlVHX09OKCFkcm1fbW1fbm9k ZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOworCX0KKworZXJyOgorCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShvYmosIG9uLCAmb2JqZWN0cywgYmF0Y2hfcG9vbF9saW5rKSB7CisJCWk5MTVfZ2Vt X29iamVjdF91bnBpbl9wYWdlcyhvYmopOworCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJ fQorCXJldHVybiBlcnI7Cit9CisKIGludCBpOTE1X2dlbV9ndHRfbW9ja19zZWxmdGVzdHModm9p ZCkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewogCQlT VUJURVNUKGlndF9ndHRfcmVzZXJ2ZSksCisJCVNVQlRFU1QoaWd0X2d0dF9pbnNlcnQpLAogCX07 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CiAJaW50IGVycjsKLS0gCjIuMTEuMAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==