From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH v3 3/8] drm/i915/selftests: Add live vma selftest Date: Fri, 18 Jan 2019 17:27:15 +0200 Message-ID: <20190118152720.24643-4-ville.syrjala@linux.intel.com> References: <20190118152720.24643-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 751606F831 for ; Fri, 18 Jan 2019 15:27:33 +0000 (UTC) In-Reply-To: <20190118152720.24643-1-ville.syrjala@linux.intel.com> 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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBhIGxpdmUgc2VsZnRlc3QgdG8gZXhjZXJjaXNlIHJvdGF0ZWQvcmVtYXBwZWQgdm1hcy4gV2Ug c2ltcGx5CndyaXRlIHRocm91Z2ggdGhlIHJvdGF0ZWQvcmVtYXBwZWQgdm1hLCBhbmQgY29uZmly bSB0aGF0IHRoZSBkYXRhCmFwcGVhcnMgaW4gdGhlIHJpZ2h0IHBhZ2Ugd2hlbiByZWFkIHRocm91 Z2ggdGhlIG5vcm1hbCB2bWEuCgpOb3Qgc3VyZSB3aGF0IHRoZSBmYWxsb3V0IG9mIG1ha2luZyBh bGwgcm90YXRlZC9yZW1hcHBlZCB2bWFzCm1hcHBhYmxlL2ZlbmNlYWJsZSB3b3VsZCBiZSwgaGVu Y2UgSSBqdXN0IGhhY2tlZCBpdCBpbiB0aGUgdGVzdC4KCnYyOiBHcmFiIHJwbSByZWZlcmVuY2Ug KENocmlzKQogICAgR0VNX0JVR19PTih2aWV3LnR5cGUgbm90IGFzIGV4cGVjdGVkKSAoQ2hyaXMp CiAgICBBbGxvdyBDQU5fRkVOQ0UgZm9yIHJvdGF0ZWQvcmVtYXBwZWQgdm1hcyAoQ2hyaXMpCiAg ICBVcGRhdGUgaW50ZWxfcGxhbmVfdXNlc19mZW5jZSgpIHRvIGFzayBmb3IgYSBmZW5jZQogICAg b25seSBmb3Igbm9ybWFsIHZtYXMgb24gZ2VuNCsKdjM6IERlYWwgd2l0aCBpbnRlbF93YWtlcmVm X3QKCkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KU2lnbmVkLW9m Zi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICAgICAgfCAgIDggLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgICAgIHwgICA0ICstCiAu Li4vZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaCAgfCAgIDEgKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMgICAgIHwgMTQxICsrKysrKysr KysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwppbmRleCA5YTAzOWMzNmRjMGMuLjg2NTI5MDc1 MTYzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCkBAIC00NjMsMTQgKzQ2Myw2IEBAIHZvaWQg X19pOTE1X3ZtYV9zZXRfbWFwX2FuZF9mZW5jZWFibGUoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJ R0VNX0JVR19PTighaTkxNV92bWFfaXNfZ2d0dCh2bWEpKTsKIAlHRU1fQlVHX09OKCF2bWEtPmZl bmNlX3NpemUpOwogCi0JLyoKLQkgKiBFeHBsaWNpdGx5IGRpc2FibGUgZm9yIHJvdGF0ZWQgVk1B IHNpbmNlIHRoZSBkaXNwbGF5IGRvZXMgbm90Ci0JICogbmVlZCB0aGUgZmVuY2UgYW5kIHRoZSBW TUEgaXMgbm90IGFjY2Vzc2libGUgdG8gb3RoZXIgdXNlcnMuCi0JICovCi0JaWYgKHZtYS0+Z2d0 dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCB8fAotCSAgICB2bWEtPmdndHRf dmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVXX1JFTUFQUEVEKQotCQlyZXR1cm47Ci0KIAlmZW5j ZWFibGUgPSAodm1hLT5ub2RlLnNpemUgPj0gdm1hLT5mZW5jZV9zaXplICYmCiAJCSAgICAgSVNf QUxJR05FRCh2bWEtPm5vZGUuc3RhcnQsIHZtYS0+ZmVuY2VfYWxpZ25tZW50KSk7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2ZTVjZTA4NGIyNDQuLjBkNTUyNmVjMzRi NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjAyNyw3ICsyMDI3LDkg QEAgc3RhdGljIGJvb2wgaW50ZWxfcGxhbmVfdXNlc19mZW5jZShjb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwogCi0JcmV0dXJu IElOVEVMX0dFTihkZXZfcHJpdikgPCA0IHx8IHBsYW5lLT5oYXNfZmJjOworCXJldHVybiBJTlRF TF9HRU4oZGV2X3ByaXYpIDwgNCB8fAorCQkocGxhbmUtPmhhc19mYmMgJiYKKwkJIHBsYW5lX3N0 YXRlLT52aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMKTsKIH0KIAogc3RydWN0IGk5 MTVfdm1hICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1 X2xpdmVfc2VsZnRlc3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9s aXZlX3NlbGZ0ZXN0cy5oCmluZGV4IGExNTcxM2NhZTNiMy4uMDk1ZTI1ZTkyYTM2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3Rz LmgKQEAgLTE1LDYgKzE1LDcgQEAgc2VsZnRlc3Qod29ya2Fyb3VuZHMsIGludGVsX3dvcmthcm91 bmRzX2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QocmVxdWVzdHMsIGk5MTVfcmVxdWVzdF9saXZl X3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KG9iamVjdHMsIGk5MTVfZ2VtX29iamVjdF9saXZlX3NlbGZ0 ZXN0cykKIHNlbGZ0ZXN0KGRtYWJ1ZiwgaTkxNV9nZW1fZG1hYnVmX2xpdmVfc2VsZnRlc3RzKQor c2VsZnRlc3Qodm1hLCBpOTE1X3ZtYV9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGNvaGVyZW5j eSwgaTkxNV9nZW1fY29oZXJlbmN5X2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QoZ3R0LCBpOTE1 X2dlbV9ndHRfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChnZW0sIGk5MTVfZ2VtX2xpdmVfc2Vs ZnRlc3RzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVf dm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYwppbmRleCAw NjMxNDNmYTUxYmYuLmE5YTBlMzE1NWM5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2k5MTVfdm1hLmMKQEAgLTgyNiwzICs4MjYsMTQ0IEBAIGludCBpOTE1X3ZtYV9tb2NrX3Nl bGZ0ZXN0cyh2b2lkKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaWd0X3ZtYV9yZW1h cHBlZF9ndHQodm9pZCAqYXJnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g YXJnOworCWNvbnN0IHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIHBsYW5lc1tdID0g eworCQl7IC53aWR0aCA9IDEsIC5oZWlnaHQgPSAxLCAuc3RyaWRlID0gMSB9LAorCQl7IC53aWR0 aCA9IDIsIC5oZWlnaHQgPSAyLCAuc3RyaWRlID0gMiB9LAorCQl7IC53aWR0aCA9IDQsIC5oZWln aHQgPSA0LCAuc3RyaWRlID0gNCB9LAorCQl7IC53aWR0aCA9IDgsIC5oZWlnaHQgPSA4LCAuc3Ry aWRlID0gOCB9LAorCisJCXsgLndpZHRoID0gMywgLmhlaWdodCA9IDUsIC5zdHJpZGUgPSAzIH0s CisJCXsgLndpZHRoID0gMywgLmhlaWdodCA9IDUsIC5zdHJpZGUgPSA0IH0sCisJCXsgLndpZHRo ID0gMywgLmhlaWdodCA9IDUsIC5zdHJpZGUgPSA1IH0sCisKKwkJeyAud2lkdGggPSA1LCAuaGVp Z2h0ID0gMywgLnN0cmlkZSA9IDUgfSwKKwkJeyAud2lkdGggPSA1LCAuaGVpZ2h0ID0gMywgLnN0 cmlkZSA9IDcgfSwKKwkJeyAud2lkdGggPSA1LCAuaGVpZ2h0ID0gMywgLnN0cmlkZSA9IDkgfSwK KworCQl7IC53aWR0aCA9IDQsIC5oZWlnaHQgPSA2LCAuc3RyaWRlID0gNiB9LAorCQl7IC53aWR0 aCA9IDYsIC5oZWlnaHQgPSA0LCAuc3RyaWRlID0gNiB9LAorCQl7IH0KKwl9LCAqcDsKKwllbnVt IGk5MTVfZ2d0dF92aWV3X3R5cGUgdHlwZXNbXSA9IHsKKwkJSTkxNV9HR1RUX1ZJRVdfUk9UQVRF RCwKKwkJSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQsCisJCTAsCisJfSwgKnQ7CisJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKwlpbnQg ZXJyID0gMDsKKworCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaTkxNSwg MTAgKiAxMCAqIFBBR0VfU0laRSk7CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gUFRSX0VS UihvYmopOworCisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwl3YWtl cmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisKKwlmb3IgKHQgPSB0eXBlczsgKnQ7 IHQrKykgeworCQlmb3IgKHAgPSBwbGFuZXM7IHAtPndpZHRoOyBwKyspIHsKKwkJCXN0cnVjdCBp OTE1X2dndHRfdmlldyB2aWV3ID0geworCQkJCS50eXBlID0gKnQsCisJCQkJLnJvdGF0ZWQucGxh bmVbMF0gPSAqcCwKKwkJCX07CisJCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwkJCXUzMiBfX2lv bWVtICptYXA7CisJCQl1bnNpZ25lZCBpbnQgeCwgeTsKKwkJCWludCBlcnI7CisKKwkJCWVyciA9 IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIHRydWUpOworCQkJaWYgKGVy cikKKwkJCQlnb3RvIG91dDsKKworCQkJdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9i aiwgJnZpZXcsIDAsIDAsIFBJTl9NQVBQQUJMRSk7CisJCQlpZiAoSVNfRVJSKHZtYSkpIHsKKwkJ CQllcnIgPSBQVFJfRVJSKHZtYSk7CisJCQkJZ290byBvdXQ7CisJCQl9CisKKwkJCUdFTV9CVUdf T04odm1hLT5nZ3R0X3ZpZXcudHlwZSAhPSAqdCk7CisKKwkJCW1hcCA9IGk5MTVfdm1hX3Bpbl9p b21hcCh2bWEpOworCQkJaTkxNV92bWFfdW5waW4odm1hKTsKKwkJCWlmIChJU19FUlIobWFwKSkg eworCQkJCWVyciA9IFBUUl9FUlIobWFwKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJZm9y ICh5ID0gMCA7IHkgPCBwLT5oZWlnaHQ7IHkrKykgeworCQkJCWZvciAoeCA9IDAgOyB4IDwgcC0+ d2lkdGg7IHgrKykgeworCQkJCQl1bnNpZ25lZCBpbnQgb2Zmc2V0OworCQkJCQl1MzIgdmFsID0g eSA8PCAxNiB8IHg7CisKKwkJCQkJaWYgKCp0ID09IEk5MTVfR0dUVF9WSUVXX1JPVEFURUQpCisJ CQkJCQlvZmZzZXQgPSAoeCAqIHAtPmhlaWdodCArIHkpICogUEFHRV9TSVpFOworCQkJCQllbHNl CisJCQkJCQlvZmZzZXQgPSAoeSAqIHAtPndpZHRoICsgeCkgKiBQQUdFX1NJWkU7CisKKwkJCQkJ aW93cml0ZTMyKHZhbCwgJm1hcFtvZmZzZXQgLyBzaXplb2YoKm1hcCldKTsKKwkJCQl9CisJCQl9 CisKKwkJCWk5MTVfdm1hX3VucGluX2lvbWFwKHZtYSk7CisKKwkJCXZtYSA9IGk5MTVfZ2VtX29i amVjdF9nZ3R0X3BpbihvYmosIE5VTEwsIDAsIDAsIFBJTl9NQVBQQUJMRSk7CisJCQlpZiAoSVNf RVJSKHZtYSkpIHsKKwkJCQllcnIgPSBQVFJfRVJSKHZtYSk7CisJCQkJZ290byBvdXQ7CisJCQl9 CisKKwkJCUdFTV9CVUdfT04odm1hLT5nZ3R0X3ZpZXcudHlwZSAhPSBJOTE1X0dHVFRfVklFV19O T1JNQUwpOworCisJCQltYXAgPSBpOTE1X3ZtYV9waW5faW9tYXAodm1hKTsKKwkJCWk5MTVfdm1h X3VucGluKHZtYSk7CisJCQlpZiAoSVNfRVJSKG1hcCkpIHsKKwkJCQllcnIgPSBQVFJfRVJSKG1h cCk7CisJCQkJZ290byBvdXQ7CisJCQl9CisKKwkJCWZvciAoeSA9IDAgOyB5IDwgcC0+aGVpZ2h0 OyB5KyspIHsKKwkJCQlmb3IgKHggPSAwIDsgeCA8IHAtPndpZHRoOyB4KyspIHsKKwkJCQkJdW5z aWduZWQgaW50IG9mZnNldCwgc3JjX2lkeDsKKwkJCQkJdTMyIGV4cCA9IHkgPDwgMTYgfCB4Owor CQkJCQl1MzIgdmFsOworCisJCQkJCWlmICgqdCA9PSBJOTE1X0dHVFRfVklFV19ST1RBVEVEKQor CQkJCQkJc3JjX2lkeCA9IHJvdGF0ZWRfaW5kZXgoJnZpZXcucm90YXRlZCwgMCwgeCwgeSk7CisJ CQkJCWVsc2UKKwkJCQkJCXNyY19pZHggPSByZW1hcHBlZF9pbmRleCgmdmlldy5yZW1hcHBlZCwg MCwgeCwgeSk7CisJCQkJCW9mZnNldCA9IHNyY19pZHggKiBQQUdFX1NJWkU7CisKKwkJCQkJdmFs ID0gaW9yZWFkMzIoJm1hcFtvZmZzZXQgLyBzaXplb2YoKm1hcCldKTsKKwkJCQkJaWYgKHZhbCAh PSBleHApIHsKKwkJCQkJCXByX2VycigiJXMgVk1BIHdyaXRlIHRlc3QgZmFpbGVkLCBleHBlY3Rl ZCAweCV4LCBmb3VuZCAweCV4XG4iLAorCQkJCQkJICAgICAgICp0ID09IEk5MTVfR0dUVF9WSUVX X1JPVEFURUQgPyAiUm90YXRlZCIgOiAiUmVtYXBwZWQiLAorCQkJCQkJICAgICAgIHZhbCwgZXhw KTsKKwkJCQkJCWk5MTVfdm1hX3VucGluX2lvbWFwKHZtYSk7CisJCQkJCQlnb3RvIG91dDsKKwkJ CQkJfQorCQkJCX0KKwkJCX0KKwkJCWk5MTVfdm1hX3VucGluX2lvbWFwKHZtYSk7CisJCX0KKwl9 CisKK291dDoKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwltdXRleF91 bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWk5MTVfZ2VtX29iamVjdF9wdXQob2Jq KTsKKworCXJldHVybiBlcnI7Cit9CisKK2ludCBpOTE1X3ZtYV9saXZlX3NlbGZ0ZXN0cyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf c3VidGVzdCB0ZXN0c1tdID0geworCQlTVUJURVNUKGlndF92bWFfcmVtYXBwZWRfZ3R0KSwKKwl9 OworCisJcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUpOworfQotLSAKMi4xOS4yCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK