From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915: Add soft-pinning API for execbuffer Date: Fri, 6 Mar 2015 09:44:07 +0000 Message-ID: <1425635047-25214-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relay.fireflyinternet.com (hostedrelay.fireflyinternet.com [109.228.30.76]) by gabe.freedesktop.org (Postfix) with ESMTP id 30E1F6E409 for ; Fri, 6 Mar 2015 01:44:15 -0800 (PST) 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 VXNlcnNwYWNlIGNhbiBwYXNzIGluIGFuIG9mZnNldCB0aGF0IGl0IHByZXN1bWVzIHRoZSBvYmpl Y3QgaXMgbG9jYXRlZAphdC4gVGhlIGtlcm5lbCB3aWxsIHRoZW4gZG8gaXRzIHV0bW9zdCB0byBm aXQgdGhlIG9iamVjdCBpbnRvIHRoYXQKbG9jYXRpb24uIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQg dXNlcnNwYWNlIGlzIGhhbmRsaW5nIGl0cyBvd24gb2JqZWN0CmxvY2F0aW9ucyAoZm9yIGV4YW1w bGUgYWxvbmcgd2l0aCBmdWxsLXBwZ3R0KSBhbmQgdGhhdCB0aGUga2VybmVsIHdpbGwKcmFyZWx5 IGhhdmUgdG8gbWFrZSBzcGFjZSBmb3IgdGhlIHVzZXIncyByZXF1ZXN0cy4KClNpZ25lZC1vZmYt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICA1ICsrKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgNTMgKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jICAgICAgfCA1 MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jIHwgIDkgKysrKy0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0u aCAgICAgICAgICAgICAgICB8ICAzICstCiA1IGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAzOGVlMDgx MWY1M2YuLjVhYzk2ZTJhZGM2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yNTkwLDcg KzI1OTAsOSBAQCB2b2lkIGk5MTVfZ2VtX3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1h KTsKICNkZWZpbmUgUElOX05PTkJMT0NLIDB4MgogI2RlZmluZSBQSU5fR0xPQkFMIDB4NAogI2Rl ZmluZSBQSU5fT0ZGU0VUX0JJQVMgMHg4CisjZGVmaW5lIFBJTl9PRkZTRVRfRklYRUQgMHgxMAog I2RlZmluZSBQSU5fT0ZGU0VUX01BU0sgKH40MDk1KQorCiBpbnQgX19tdXN0X2NoZWNrIGk5MTVf Z2VtX29iamVjdF9waW5fdmlldyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJ CQkgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJCQkgIHVpbnQzMl90IHNpemUs CkBAIC0yOTQyLDYgKzI5NDQsOSBAQCBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2V2aWN0X3Nv bWV0aGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgIHVuc2lnbmVkIGxvbmcgc3Rh cnQsCiAJCQkJCSAgdW5zaWduZWQgbG9uZyBlbmQsCiAJCQkJCSAgdW5zaWduZWQgZmxhZ3MpOwor aW50IF9fbXVzdF9jaGVjaworaTkxNV9nZW1fZXZpY3RfcmFuZ2Uoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCSAgICAgdW5zaWduZWQgbG9u ZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwogaW50IGk5MTVfZ2VtX2V2aWN0X3ZtKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBib29sIGRvX2lkbGUpOwogaW50IGk5MTVfZ2VtX2V2 aWN0X2V2ZXJ5dGhpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCmluZGV4IDlkMGRmNGQ4NTY5My4uYjI2NmIzMTY5MGU0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKQEAgLTM1OTIsMjIgKzM1OTIsNDMgQEAgaTkxNV9nZW1fb2JqZWN0X2JpbmRfdG9f dm0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpZiAoSVNfRVJSKHZtYSkpCiAJ CWdvdG8gZXJyX3VucGluOwogCisJaWYgKGZsYWdzICYgUElOX09GRlNFVF9GSVhFRCkgeworCQl1 aW50NjRfdCBvZmZzZXQgPSBmbGFncyAmIFBJTl9PRkZTRVRfTUFTSzsKKwkJaWYgKG9mZnNldCAm IChhbGlnbm1lbnQgLSAxKSkgeworCQkJdm1hID0gRVJSX1BUUigtRUlOVkFMKTsKKwkJCWdvdG8g ZXJyX2ZyZWVfdm1hOworCQl9CisJCXZtYS0+bm9kZS5zdGFydCA9IG9mZnNldDsKKwkJdm1hLT5u b2RlLnNpemUgPSBzaXplOworCQl2bWEtPm5vZGUuY29sb3IgPSBvYmotPmNhY2hlX2xldmVsOwor CQlyZXQgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZ2bS0+bW0sICZ2bWEtPm5vZGUpOworCQlpZiAo cmV0KSB7CisJCQlyZXQgPSBpOTE1X2dlbV9ldmljdF9yYW5nZShkZXYsIHZtLCBzdGFydCwgZW5k KTsKKwkJCWlmIChyZXQgPT0gMCkKKwkJCQlyZXQgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZ2bS0+ bW0sICZ2bWEtPm5vZGUpOworCQl9CisJCWlmIChyZXQpIHsKKwkJCXZtYSA9IEVSUl9QVFIocmV0 KTsKKwkJCWdvdG8gZXJyX2ZyZWVfdm1hOworCQl9CisJfSBlbHNlIHsKIHNlYXJjaF9mcmVlOgot CXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9nZW5lcmljKCZ2bS0+bW0sICZ2bWEt Pm5vZGUsCi0JCQkJCQkgIHNpemUsIGFsaWdubWVudCwKLQkJCQkJCSAgb2JqLT5jYWNoZV9sZXZl bCwKLQkJCQkJCSAgc3RhcnQsIGVuZCwKLQkJCQkJCSAgRFJNX01NX1NFQVJDSF9ERUZBVUxULAot CQkJCQkJICBEUk1fTU1fQ1JFQVRFX0RFRkFVTFQpOwotCWlmIChyZXQpIHsKLQkJcmV0ID0gaTkx NV9nZW1fZXZpY3Rfc29tZXRoaW5nKGRldiwgdm0sIHNpemUsIGFsaWdubWVudCwKLQkJCQkJICAg ICAgIG9iai0+Y2FjaGVfbGV2ZWwsCi0JCQkJCSAgICAgICBzdGFydCwgZW5kLAotCQkJCQkgICAg ICAgZmxhZ3MpOwotCQlpZiAocmV0ID09IDApCi0JCQlnb3RvIHNlYXJjaF9mcmVlOworCQlyZXQg PSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygmdm0tPm1tLCAmdm1hLT5ub2Rl LAorCQkJCQkJCSAgc2l6ZSwgYWxpZ25tZW50LAorCQkJCQkJCSAgb2JqLT5jYWNoZV9sZXZlbCwK KwkJCQkJCQkgIHN0YXJ0LCBlbmQsCisJCQkJCQkJICBEUk1fTU1fU0VBUkNIX0RFRkFVTFQsCisJ CQkJCQkJICBEUk1fTU1fQ1JFQVRFX0RFRkFVTFQpOworCQlpZiAocmV0KSB7CisJCQlyZXQgPSBp OTE1X2dlbV9ldmljdF9zb21ldGhpbmcoZGV2LCB2bSwgc2l6ZSwgYWxpZ25tZW50LAorCQkJCQkJ ICAgICAgIG9iai0+Y2FjaGVfbGV2ZWwsCisJCQkJCQkgICAgICAgc3RhcnQsIGVuZCwKKwkJCQkJ CSAgICAgICBmbGFncyk7CisJCQlpZiAocmV0ID09IDApCisJCQkJZ290byBzZWFyY2hfZnJlZTsK IAotCQlnb3RvIGVycl9mcmVlX3ZtYTsKKwkJCWdvdG8gZXJyX2ZyZWVfdm1hOworCQl9CiAJfQog CWlmIChXQVJOX09OKCFpOTE1X2dlbV92YWxpZF9ndHRfc3BhY2Uodm1hLCBvYmotPmNhY2hlX2xl dmVsKSkpIHsKIAkJcmV0ID0gLUVJTlZBTDsKQEAgLTQxODcsNiArNDIwOCwxMCBAQCBpOTE1X3Zt YV9taXNwbGFjZWQoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJICAgIHZtYS0+bm9kZS5zdGFydCA8 IChmbGFncyAmIFBJTl9PRkZTRVRfTUFTSykpCiAJCXJldHVybiB0cnVlOwogCisJaWYgKGZsYWdz ICYgUElOX09GRlNFVF9GSVhFRCAmJgorCSAgICB2bWEtPm5vZGUuc3RhcnQgIT0gKGZsYWdzICYg UElOX09GRlNFVF9NQVNLKSkKKwkJcmV0dXJuIHRydWU7CisKIAlyZXR1cm4gZmFsc2U7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCmluZGV4IGUzYTQ5ZDk0ZGEzYS4uYzRi MmVhZDBkODA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmlj dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKQEAgLTE5NSw2 ICsxOTUsNTggQEAgZm91bmQ6CiAJcmV0dXJuIHJldDsKIH0KIAoraW50CitpOTE1X2dlbV9ldmlj dF9yYW5nZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKKwkJICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sK KwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGU7CisJc3RydWN0IGxpc3RfaGVhZCBldmljdGlvbl9s aXN0OworCWludCByZXQgPSAwOworCisJSU5JVF9MSVNUX0hFQUQoJmV2aWN0aW9uX2xpc3QpOwor CWRybV9tbV9mb3JfZWFjaF9ub2RlKG5vZGUsICZ2bS0+bW0pIHsKKwkJc3RydWN0IGk5MTVfdm1h ICp2bWE7CisKKwkJaWYgKG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSA8PSBzdGFydCkKKwkJCWNv bnRpbnVlOworCQlpZiAobm9kZS0+c3RhcnQgPj0gZW5kKQorCQkJYnJlYWs7CisKKwkJdm1hID0g Y29udGFpbmVyX29mKG5vZGUsIHR5cGVvZigqdm1hKSwgbm9kZSk7CisJCWlmICh2bWEtPnBpbl9j b3VudCkgeworCQkJcmV0ID0gLUVCVVNZOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAoV0FSTl9P TighbGlzdF9lbXB0eSgmdm1hLT5leGVjX2xpc3QpKSkgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJ CWJyZWFrOworCQl9CisKKwkJZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlKCZ2bWEtPm9iai0+YmFz ZSk7CisJCWxpc3RfYWRkKCZ2bWEtPmV4ZWNfbGlzdCwgJmV2aWN0aW9uX2xpc3QpOworCX0KKwor CXdoaWxlICghbGlzdF9lbXB0eSgmZXZpY3Rpb25fbGlzdCkpIHsKKwkJc3RydWN0IGk5MTVfdm1h ICp2bWE7CisJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOworCisJCXZtYSA9IGxpc3RfZmly c3RfZW50cnkoJmV2aWN0aW9uX2xpc3QsCisJCQkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSwKKwkJ CQkgICAgICAgZXhlY19saXN0KTsKKworCQlvYmogPSAmdm1hLT5vYmotPmJhc2U7CisKKwkJbGlz dF9kZWxfaW5pdCgmdm1hLT5leGVjX2xpc3QpOworCQlpZiAocmV0ID09IDApCisJCQlyZXQgPSBp OTE1X3ZtYV91bmJpbmQodm1hKTsKKworCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZShvYmop OworCX0KKworCXJldHVybiByZXQ7Cit9CisKIC8qKgogICogaTkxNV9nZW1fZXZpY3Rfdm0gLSBF dmljdCBhbGwgaWRsZSB2bWFzIGZyb20gYSB2bQogICogQHZtOiBBZGRyZXNzIHNwYWNlIHRvIGNs ZWFuc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCAx ODNmMjkxNDQ4NmUuLjgxMjlhOGM3NWEyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYwpAQCAtNTkwLDYgKzU5MCw4IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJf cmVzZXJ2ZV92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQlmbGFncyB8PSBQSU5fR0xPQkFM OwogCQlpZiAoZW50cnktPmZsYWdzICYgX19FWEVDX09CSkVDVF9ORUVEU19CSUFTKQogCQkJZmxh Z3MgfD0gQkFUQ0hfT0ZGU0VUX0JJQVMgfCBQSU5fT0ZGU0VUX0JJQVM7CisJCWlmIChlbnRyeS0+ ZmxhZ3MgJiBFWEVDX09CSkVDVF9QSU5ORUQpCisJCQlmbGFncyB8PSBlbnRyeS0+b2Zmc2V0IHwg UElOX09GRlNFVF9GSVhFRDsKIAl9CiAKIAlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluKG9iaiwg dm1hLT52bSwKQEAgLTY2Niw2ICs2NjgsMTAgQEAgZWJfdm1hX21pc3BsYWNlZChzdHJ1Y3QgaTkx NV92bWEgKnZtYSkKIAlpZiAodm1hLT5ub2RlLnNpemUgPCBlbnRyeS0+cGFkX3RvX3NpemUpCiAJ CXJldHVybiB0cnVlOwogCisJaWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCAm JgorCSAgICB2bWEtPm5vZGUuc3RhcnQgIT0gZW50cnktPm9mZnNldCkKKwkJcmV0dXJuIHRydWU7 CisKIAlpZiAoZW50cnktPmZsYWdzICYgX19FWEVDX09CSkVDVF9ORUVEU19CSUFTICYmCiAJICAg IHZtYS0+bm9kZS5zdGFydCA8IEJBVENIX09GRlNFVF9CSUFTKQogCQlyZXR1cm4gdHJ1ZTsKQEAg LTEzOTIsNyArMTM5OCw4IEBAIGViX2dldF9iYXRjaChzdHJ1Y3QgZWJfdm1hcyAqZWIpCiAJICog Tm90ZSB0aGF0IGFjdHVhbCBoYW5ncyBoYXZlIG9ubHkgYmVlbiBvYnNlcnZlZCBvbiBnZW43LCBi dXQgZm9yCiAJICogcGFyYW5vaWEgZG8gaXQgZXZlcnl3aGVyZS4KIAkgKi8KLQl2bWEtPmV4ZWNf ZW50cnktPmZsYWdzIHw9IF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUzsKKwlpZiAoKHZtYS0+ZXhl Y19lbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9QSU5ORUQpID09IDApCisJCXZtYS0+ZXhlY19l bnRyeS0+ZmxhZ3MgfD0gX19FWEVDX09CSkVDVF9ORUVEU19CSUFTOwogCiAJcmV0dXJuIHZtYS0+ b2JqOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4IGNiMzQxN2NhNDA2Zi4uZGRlZjM3ZTk3MGQzIDEw MDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oCkBAIC02NzksNyArNjc5LDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9l eGVjX29iamVjdDIgewogI2RlZmluZSBFWEVDX09CSkVDVF9ORUVEU19HVFQJKDE8PDEpCiAjZGVm aW5lIEVYRUNfT0JKRUNUX1dSSVRFCSgxPDwyKQogI2RlZmluZSBFWEVDX09CSkVDVF9QQURfVE9f U0laRQkoMTw8MykKLSNkZWZpbmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19P QkpFQ1RfUEFEX1RPX1NJWkU8PDEpCisjZGVmaW5lIEVYRUNfT0JKRUNUX1BJTk5FRAkoMTw8NCkK KyNkZWZpbmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19PQkpFQ1RfUElOTkVE PDwxKQogCV9fdTY0IGZsYWdzOwogCiAJX191NjQgcGFkX3RvX3NpemU7Ci0tIAoyLjEuNAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK