From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH v4 3/8] drm/i915/selftests: Add live vma selftest Date: Thu, 9 May 2019 15:21:54 +0300 Message-ID: <20190509122159.24376-4-ville.syrjala@linux.intel.com> References: <20190509122159.24376-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5D37089C07 for ; Thu, 9 May 2019 12:22:13 +0000 (UTC) In-Reply-To: <20190509122159.24376-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 X3QKdjQ6IFJlYmFzZQoKQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr PgpSZXZpZXdlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClNp Z25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyAgICAgICAgICAgICAgIHwg ICA4IC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgICB8ICAg NCArLQogLi4uL2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3RzLmggIHwgICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jICAgICB8IDE0MiAr KysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTQ2IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKaW5kZXggYzY4YjQzNWQ0MDY0Li4z NDM3MzZiMmQ2MDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwpAQCAtNDgzLDE0ICs0ODMsNiBA QCB2b2lkIF9faTkxNV92bWFfc2V0X21hcF9hbmRfZmVuY2VhYmxlKHN0cnVjdCBpOTE1X3ZtYSAq dm1hKQogCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX2dndHQodm1hKSk7CiAJR0VNX0JVR19PTigh dm1hLT5mZW5jZV9zaXplKTsKIAotCS8qCi0JICogRXhwbGljaXRseSBkaXNhYmxlIGZvciByb3Rh dGVkIFZNQSBzaW5jZSB0aGUgZGlzcGxheSBkb2VzIG5vdAotCSAqIG5lZWQgdGhlIGZlbmNlIGFu ZCB0aGUgVk1BIGlzIG5vdCBhY2Nlc3NpYmxlIHRvIG90aGVyIHVzZXJzLgotCSAqLwotCWlmICh2 bWEtPmdndHRfdmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVXX1JPVEFURUQgfHwKLQkgICAgdm1h LT5nZ3R0X3ZpZXcudHlwZSA9PSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRCkKLQkJcmV0dXJuOwot CiAJZmVuY2VhYmxlID0gKHZtYS0+bm9kZS5zaXplID49IHZtYS0+ZmVuY2Vfc2l6ZSAmJgogCQkg ICAgIElTX0FMSUdORUQodm1hLT5ub2RlLnN0YXJ0LCB2bWEtPmZlbmNlX2FsaWdubWVudCkpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggMDkzMWZlNjIxMDc3Li5mNGU2 ZTlhOGJiZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTIwNzcsNyAr MjA3Nyw5IEBAIHN0YXRpYyBib29sIGludGVsX3BsYW5lX3VzZXNfZmVuY2UoY29uc3Qgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKIAot CXJldHVybiBJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCB8fCBwbGFuZS0+aGFzX2ZiYzsKKwlyZXR1 cm4gSU5URUxfR0VOKGRldl9wcml2KSA8IDQgfHwKKwkJKHBsYW5lLT5oYXNfZmJjICYmCisJCSBw bGFuZV9zdGF0ZS0+dmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVXX05PUk1BTCk7CiB9CiAKIHN0 cnVjdCBpOTE1X3ZtYSAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfbGl2ZV9zZWxmdGVzdHMuaAppbmRleCA2ZDc2NjkyNWFkMDQuLmE1NGY1OTA3ODhhNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxm dGVzdHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3Nl bGZ0ZXN0cy5oCkBAIC0xNyw2ICsxNyw3IEBAIHNlbGZ0ZXN0KHJlcXVlc3RzLCBpOTE1X3JlcXVl c3RfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChhY3RpdmUsIGk5MTVfYWN0aXZlX2xpdmVfc2Vs ZnRlc3RzKQogc2VsZnRlc3Qob2JqZWN0cywgaTkxNV9nZW1fb2JqZWN0X2xpdmVfc2VsZnRlc3Rz KQogc2VsZnRlc3QoZG1hYnVmLCBpOTE1X2dlbV9kbWFidWZfbGl2ZV9zZWxmdGVzdHMpCitzZWxm dGVzdCh2bWEsIGk5MTVfdm1hX2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QoY29oZXJlbmN5LCBp OTE1X2dlbV9jb2hlcmVuY3lfbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChndHQsIGk5MTVfZ2Vt X2d0dF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGdlbSwgaTkxNV9nZW1fbGl2ZV9zZWxmdGVz dHMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jCmluZGV4IDg5ZjZl Zjk0NWMxYi4uMDAyN2MxZmFjMzM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aTkxNV92bWEuYwpAQCAtODM0LDMgKzgzNCwxNDUgQEAgaW50IGk5MTVfdm1hX21vY2tfc2VsZnRl c3RzKHZvaWQpCiAJZHJtX2Rldl9wdXQoJmk5MTUtPmRybSk7CiAJcmV0dXJuIGVycjsKIH0KKwor c3RhdGljIGludCBpZ3Rfdm1hX3JlbWFwcGVkX2d0dCh2b2lkICphcmcpCit7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJY29uc3Qgc3RydWN0IGludGVsX3JlbWFwcGVk X3BsYW5lX2luZm8gcGxhbmVzW10gPSB7CisJCXsgLndpZHRoID0gMSwgLmhlaWdodCA9IDEsIC5z dHJpZGUgPSAxIH0sCisJCXsgLndpZHRoID0gMiwgLmhlaWdodCA9IDIsIC5zdHJpZGUgPSAyIH0s CisJCXsgLndpZHRoID0gNCwgLmhlaWdodCA9IDQsIC5zdHJpZGUgPSA0IH0sCisJCXsgLndpZHRo ID0gOCwgLmhlaWdodCA9IDgsIC5zdHJpZGUgPSA4IH0sCisKKwkJeyAud2lkdGggPSAzLCAuaGVp Z2h0ID0gNSwgLnN0cmlkZSA9IDMgfSwKKwkJeyAud2lkdGggPSAzLCAuaGVpZ2h0ID0gNSwgLnN0 cmlkZSA9IDQgfSwKKwkJeyAud2lkdGggPSAzLCAuaGVpZ2h0ID0gNSwgLnN0cmlkZSA9IDUgfSwK KworCQl7IC53aWR0aCA9IDUsIC5oZWlnaHQgPSAzLCAuc3RyaWRlID0gNSB9LAorCQl7IC53aWR0 aCA9IDUsIC5oZWlnaHQgPSAzLCAuc3RyaWRlID0gNyB9LAorCQl7IC53aWR0aCA9IDUsIC5oZWln aHQgPSAzLCAuc3RyaWRlID0gOSB9LAorCisJCXsgLndpZHRoID0gNCwgLmhlaWdodCA9IDYsIC5z dHJpZGUgPSA2IH0sCisJCXsgLndpZHRoID0gNiwgLmhlaWdodCA9IDQsIC5zdHJpZGUgPSA2IH0s CisJCXsgfQorCX0sICpwOworCWVudW0gaTkxNV9nZ3R0X3ZpZXdfdHlwZSB0eXBlc1tdID0gewor CQlJOTE1X0dHVFRfVklFV19ST1RBVEVELAorCQlJOTE1X0dHVFRfVklFV19SRU1BUFBFRCwKKwkJ MCwKKwl9LCAqdDsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCWludGVsX3dh a2VyZWZfdCB3YWtlcmVmOworCWludCBlcnIgPSAwOworCisJb2JqID0gaTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCAxMCAqIDEwICogUEFHRV9TSVpFKTsKKwlpZiAoSVNfRVJS KG9iaikpCisJCXJldHVybiBQVFJfRVJSKG9iaik7CisKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0u c3RydWN0X211dGV4KTsKKworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsK KworCWZvciAodCA9IHR5cGVzOyAqdDsgdCsrKSB7CisJCWZvciAocCA9IHBsYW5lczsgcC0+d2lk dGg7IHArKykgeworCQkJc3RydWN0IGk5MTVfZ2d0dF92aWV3IHZpZXcgPSB7CisJCQkJLnR5cGUg PSAqdCwKKwkJCQkucm90YXRlZC5wbGFuZVswXSA9ICpwLAorCQkJfTsKKwkJCXN0cnVjdCBpOTE1 X3ZtYSAqdm1hOworCQkJdTMyIF9faW9tZW0gKm1hcDsKKwkJCXVuc2lnbmVkIGludCB4LCB5Owor CQkJaW50IGVycjsKKworCQkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWlu KG9iaiwgdHJ1ZSk7CisJCQlpZiAoZXJyKQorCQkJCWdvdG8gb3V0OworCisJCQl2bWEgPSBpOTE1 X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCAmdmlldywgMCwgMCwgUElOX01BUFBBQkxFKTsKKwkJ CWlmIChJU19FUlIodm1hKSkgeworCQkJCWVyciA9IFBUUl9FUlIodm1hKTsKKwkJCQlnb3RvIG91 dDsKKwkJCX0KKworCQkJR0VNX0JVR19PTih2bWEtPmdndHRfdmlldy50eXBlICE9ICp0KTsKKwor CQkJbWFwID0gaTkxNV92bWFfcGluX2lvbWFwKHZtYSk7CisJCQlpOTE1X3ZtYV91bnBpbih2bWEp OworCQkJaWYgKElTX0VSUihtYXApKSB7CisJCQkJZXJyID0gUFRSX0VSUihtYXApOworCQkJCWdv dG8gb3V0OworCQkJfQorCisJCQlmb3IgKHkgPSAwIDsgeSA8IHAtPmhlaWdodDsgeSsrKSB7CisJ CQkJZm9yICh4ID0gMCA7IHggPCBwLT53aWR0aDsgeCsrKSB7CisJCQkJCXVuc2lnbmVkIGludCBv ZmZzZXQ7CisJCQkJCXUzMiB2YWwgPSB5IDw8IDE2IHwgeDsKKworCQkJCQlpZiAoKnQgPT0gSTkx NV9HR1RUX1ZJRVdfUk9UQVRFRCkKKwkJCQkJCW9mZnNldCA9ICh4ICogcC0+aGVpZ2h0ICsgeSkg KiBQQUdFX1NJWkU7CisJCQkJCWVsc2UKKwkJCQkJCW9mZnNldCA9ICh5ICogcC0+d2lkdGggKyB4 KSAqIFBBR0VfU0laRTsKKworCQkJCQlpb3dyaXRlMzIodmFsLCAmbWFwW29mZnNldCAvIHNpemVv ZigqbWFwKV0pOworCQkJCX0KKwkJCX0KKworCQkJaTkxNV92bWFfdW5waW5faW9tYXAodm1hKTsK KworCQkJdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgTlVMTCwgMCwgMCwgUElO X01BUFBBQkxFKTsKKwkJCWlmIChJU19FUlIodm1hKSkgeworCQkJCWVyciA9IFBUUl9FUlIodm1h KTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJR0VNX0JVR19PTih2bWEtPmdndHRfdmlldy50 eXBlICE9IEk5MTVfR0dUVF9WSUVXX05PUk1BTCk7CisKKwkJCW1hcCA9IGk5MTVfdm1hX3Bpbl9p b21hcCh2bWEpOworCQkJaTkxNV92bWFfdW5waW4odm1hKTsKKwkJCWlmIChJU19FUlIobWFwKSkg eworCQkJCWVyciA9IFBUUl9FUlIobWFwKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJZm9y ICh5ID0gMCA7IHkgPCBwLT5oZWlnaHQ7IHkrKykgeworCQkJCWZvciAoeCA9IDAgOyB4IDwgcC0+ d2lkdGg7IHgrKykgeworCQkJCQl1bnNpZ25lZCBpbnQgb2Zmc2V0LCBzcmNfaWR4OworCQkJCQl1 MzIgZXhwID0geSA8PCAxNiB8IHg7CisJCQkJCXUzMiB2YWw7CisKKwkJCQkJaWYgKCp0ID09IEk5 MTVfR0dUVF9WSUVXX1JPVEFURUQpCisJCQkJCQlzcmNfaWR4ID0gcm90YXRlZF9pbmRleCgmdmll dy5yb3RhdGVkLCAwLCB4LCB5KTsKKwkJCQkJZWxzZQorCQkJCQkJc3JjX2lkeCA9IHJlbWFwcGVk X2luZGV4KCZ2aWV3LnJlbWFwcGVkLCAwLCB4LCB5KTsKKwkJCQkJb2Zmc2V0ID0gc3JjX2lkeCAq IFBBR0VfU0laRTsKKworCQkJCQl2YWwgPSBpb3JlYWQzMigmbWFwW29mZnNldCAvIHNpemVvZigq bWFwKV0pOworCQkJCQlpZiAodmFsICE9IGV4cCkgeworCQkJCQkJcHJfZXJyKCIlcyBWTUEgd3Jp dGUgdGVzdCBmYWlsZWQsIGV4cGVjdGVkIDB4JXgsIGZvdW5kIDB4JXhcbiIsCisJCQkJCQkgICAg ICAgKnQgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCA/ICJSb3RhdGVkIiA6ICJSZW1hcHBlZCIs CisJCQkJCQkgICAgICAgdmFsLCBleHApOworCQkJCQkJaTkxNV92bWFfdW5waW5faW9tYXAodm1h KTsKKwkJCQkJCWdvdG8gb3V0OworCQkJCQl9CisJCQkJfQorCQkJfQorCQkJaTkxNV92bWFfdW5w aW5faW9tYXAodm1hKTsKKwkJfQorCX0KKworb3V0OgorCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5 MTUsIHdha2VyZWYpOworCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJ aTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworCisJcmV0dXJuIGVycjsKK30KKworaW50IGk5MTVf dm1hX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXN0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CisJCVNVQlRFU1QoaWd0 X3ZtYV9yZW1hcHBlZF9ndHQpLAorCX07CisKKwlyZXR1cm4gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywg aTkxNSk7Cit9Ci0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeA==