From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 49/73] drm/i915: Combine loops within i915_gem_evict_something Date: Mon, 1 Aug 2016 10:10:57 +0100 Message-ID: <1470042681-25318-50-git-send-email-chris@chris-wilson.co.uk> References: <1470042681-25318-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 mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 012326E292 for ; Mon, 1 Aug 2016 09:12:43 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id q128so25282954wma.1 for ; Mon, 01 Aug 2016 02:12:43 -0700 (PDT) In-Reply-To: <1470042681-25318-1-git-send-email-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 U2xpZ2h0IG1pY3JvLW9wdGltaXNlIHRvIHByb2R1Y2UgY29tYmluZSBsb29wcyBzbyB0aGF0IGdj YyBpcyBhYmxlIHRvCm9wdGltaXNlIHRoZSBpbm5lci1sb29wcyBjb25jaXNlbHkuIFNpbmNlIHdl IGFyZSByZXZpZXdpbmcgdGhlIGxvb3BzLCB3ZQpjYW4gdXBkYXRlIHRoZSBjb21tZW50cyB0byBk ZXNjcmliZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBhZmZhaXJzLCBpbgpwYXJ0aWN1bGFyIHRoZSBk aXN0aW5jdGlvbiBiZXR3ZWVuIGV2aWN0aW5nIGZyb20gdGhlIGdsb2JhbCBHVFQgKHdoaWNoCm1h eSBjb250YWluIHVudHJhY2tlZCBpdGVtcyBhbmQgdHJhbnNpZW50IGdsb2JhbCBwaW5zKSBhbmQg dGhlCnBlci1wcm9jZXNzIEdUVC4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMu bGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V2aWN0LmMgfCAxNDMgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCmluZGV4IDM0MzdjZWQ3NmNiNi4uMDE2YmU3MzE2Njc2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKQEAgLTM0LDYgKzM0LDE5IEBA CiAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogCiBzdGF0aWMgYm9vbAorZ3B1X2lzX2lkbGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CisJCWlm ICghbGlzdF9lbXB0eSgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpKQorCQkJcmV0dXJuIGZhbHNlOwor CX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbAogbWFya19mcmVlKHN0cnVjdCBp OTE1X3ZtYSAqdm1hLCBzdHJ1Y3QgbGlzdF9oZWFkICp1bndpbmQpCiB7CiAJaWYgKHZtYS0+cGlu X2NvdW50KQpAQCAtNzYsMzcgKzg5LDMxIEBAIGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCSB1 bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKIAkJCSB1bnNpZ25lZCBmbGFn cykKIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGV2aWN0aW9uX2xpc3QsIHVud2luZF9saXN0OwotCXN0 cnVjdCBpOTE1X3ZtYSAqdm1hOwotCWludCByZXQgPSAwOwotCWludCBwYXNzID0gMDsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGxp c3RfaGVhZCBldmljdGlvbl9saXN0OworCXN0cnVjdCBsaXN0X2hlYWQgKnBoYXNlc1tdID0gewor CQkmdm0tPmluYWN0aXZlX2xpc3QsCisJCSZ2bS0+YWN0aXZlX2xpc3QsCisJCU5VTEwsCisJfSwg KipwaGFzZTsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKm5leHQ7CisJaW50IHJldDsKIAogCXRy YWNlX2k5MTVfZ2VtX2V2aWN0KGRldiwgbWluX3NpemUsIGFsaWdubWVudCwgZmxhZ3MpOwogCiAJ LyoKIAkgKiBUaGUgZ29hbCBpcyB0byBldmljdCBvYmplY3RzIGFuZCBhbWFsZ2FtYXRlIHNwYWNl IGluIExSVSBvcmRlci4KIAkgKiBUaGUgb2xkZXN0IGlkbGUgb2JqZWN0cyByZXNpZGUgb24gdGhl IGluYWN0aXZlIGxpc3QsIHdoaWNoIGlzIGluCi0JICogcmV0aXJlbWVudCBvcmRlci4gVGhlIG5l eHQgb2JqZWN0cyB0byByZXRpcmUgYXJlIHRob3NlIG9uIHRoZSAocGVyCi0JICogcmluZykgYWN0 aXZlIGxpc3QgdGhhdCBkbyBub3QgaGF2ZSBhbiBvdXRzdGFuZGluZyBmbHVzaC4gT25jZSB0aGUK LQkgKiBoYXJkd2FyZSByZXBvcnRzIGNvbXBsZXRpb24gKHRoZSBzZXFubyBpcyB1cGRhdGVkIGFm dGVyIHRoZQotCSAqIGJhdGNoYnVmZmVyIGhhcyBiZWVuIGZpbmlzaGVkKSB0aGUgY2xlYW4gYnVm ZmVyIG9iamVjdHMgd291bGQKLQkgKiBiZSByZXRpcmVkIHRvIHRoZSBpbmFjdGl2ZSBsaXN0LiBB bnkgZGlydHkgb2JqZWN0cyB3b3VsZCBiZSBhZGRlZAotCSAqIHRvIHRoZSB0YWlsIG9mIHRoZSBm bHVzaGluZyBsaXN0LiBTbyBhZnRlciBwcm9jZXNzaW5nIHRoZSBjbGVhbgotCSAqIGFjdGl2ZSBv YmplY3RzIHdlIG5lZWQgdG8gZW1pdCBhIE1JX0ZMVVNIIHRvIHJldGlyZSB0aGUgZmx1c2hpbmcK LQkgKiBsaXN0LCBoZW5jZSB0aGUgcmV0aXJlbWVudCBvcmRlciBvZiB0aGUgZmx1c2hpbmcgbGlz dCBpcyBpbgotCSAqIGFkdmFuY2Ugb2YgdGhlIGRpcnR5IG9iamVjdHMgb24gdGhlIGFjdGl2ZSBs aXN0cy4KKwkgKiByZXRpcmVtZW50IG9yZGVyLiBUaGUgbmV4dCBvYmplY3RzIHRvIHJldGlyZSBh cmUgdGhvc2UgaW4gZmxpZ2h0LAorCSAqIG9uIHRoZSBhY3RpdmUgbGlzdCwgYWdhaW4gaW4gcmV0 aXJlbWVudCBvcmRlci4KIAkgKgogCSAqIFRoZSByZXRpcmVtZW50IHNlcXVlbmNlIGlzIHRodXM6 CiAJICogICAxLiBJbmFjdGl2ZSBvYmplY3RzIChhbHJlYWR5IHJldGlyZWQpCi0JICogICAyLiBD bGVhbiBhY3RpdmUgb2JqZWN0cwotCSAqICAgMy4gRmx1c2hpbmcgbGlzdAotCSAqICAgNC4gRGly dHkgYWN0aXZlIG9iamVjdHMuCisJICogICAyLiBBY3RpdmUgb2JqZWN0cyAod2lsbCBzdGFsbCBv biB1bmJpbmRpbmcpCiAJICoKIAkgKiBPbiBlYWNoIGxpc3QsIHRoZSBvbGRlc3Qgb2JqZWN0cyBs aWUgYXQgdGhlIEhFQUQgd2l0aCB0aGUgZnJlc2hlc3QKIAkgKiBvYmplY3Qgb24gdGhlIFRBSUwu CiAJICovCi0KLQlJTklUX0xJU1RfSEVBRCgmdW53aW5kX2xpc3QpOwogCWlmIChzdGFydCAhPSAw IHx8IGVuZCAhPSB2bS0+dG90YWwpIHsKIAkJZHJtX21tX2luaXRfc2Nhbl93aXRoX3JhbmdlKCZ2 bS0+bW0sIG1pbl9zaXplLAogCQkJCQkgICAgYWxpZ25tZW50LCBjYWNoZV9sZXZlbCwKQEAgLTEx NCw3OSArMTIxLDcxIEBAIGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAl9IGVsc2UKIAkJZHJtX21t X2luaXRfc2Nhbigmdm0tPm1tLCBtaW5fc2l6ZSwgYWxpZ25tZW50LCBjYWNoZV9sZXZlbCk7CiAK LXNlYXJjaF9hZ2FpbjoKLQkvKiBGaXJzdCBzZWUgaWYgdGhlcmUgaXMgYSBsYXJnZSBlbm91Z2gg Y29udGlndW91cyBpZGxlIHJlZ2lvbi4uLiAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAm dm0tPmluYWN0aXZlX2xpc3QsIHZtX2xpbmspIHsKLQkJaWYgKG1hcmtfZnJlZSh2bWEsICZ1bndp bmRfbGlzdCkpCi0JCQlnb3RvIGZvdW5kOwotCX0KLQogCWlmIChmbGFncyAmIFBJTl9OT05CTE9D SykKLQkJZ290byBub25lOworCQlwaGFzZXNbMV0gPSBOVUxMOwogCi0JLyogTm93IG1lcmdlIGlu IHRoZSBzb29uLXRvLWJlLWV4cGlyZWQgb2JqZWN0cy4uLiAqLwotCWxpc3RfZm9yX2VhY2hfZW50 cnkodm1hLCAmdm0tPmFjdGl2ZV9saXN0LCB2bV9saW5rKSB7Ci0JCWlmIChtYXJrX2ZyZWUodm1h LCAmdW53aW5kX2xpc3QpKQotCQkJZ290byBmb3VuZDsKLQl9CitzZWFyY2hfYWdhaW46CisJSU5J VF9MSVNUX0hFQUQoJmV2aWN0aW9uX2xpc3QpOworCXBoYXNlID0gcGhhc2VzOworCWRvIHsKKwkJ bGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICpwaGFzZSwgdm1fbGluaykKKwkJCWlmIChtYXJrX2Zy ZWUodm1hLCAmZXZpY3Rpb25fbGlzdCkpCisJCQkJZ290byBmb3VuZDsKKwl9IHdoaWxlICgqKytw aGFzZSk7CiAKLW5vbmU6CiAJLyogTm90aGluZyBmb3VuZCwgY2xlYW4gdXAgYW5kIGJhaWwgb3V0 ISAqLwotCXdoaWxlICghbGlzdF9lbXB0eSgmdW53aW5kX2xpc3QpKSB7Ci0JCXZtYSA9IGxpc3Rf Zmlyc3RfZW50cnkoJnVud2luZF9saXN0LAotCQkJCSAgICAgICBzdHJ1Y3QgaTkxNV92bWEsCi0J CQkJICAgICAgIGV4ZWNfbGlzdCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgbmV4 dCwgJmV2aWN0aW9uX2xpc3QsIGV4ZWNfbGlzdCkgewogCQlyZXQgPSBkcm1fbW1fc2Nhbl9yZW1v dmVfYmxvY2soJnZtYS0+bm9kZSk7CiAJCUJVR19PTihyZXQpOwogCi0JCWxpc3RfZGVsX2luaXQo JnZtYS0+ZXhlY19saXN0KTsKKwkJSU5JVF9MSVNUX0hFQUQoJnZtYS0+ZXhlY19saXN0KTsKIAl9 CiAKIAkvKiBDYW4gd2UgdW5waW4gc29tZSBvYmplY3RzIHN1Y2ggYXMgaWRsZSBodyBjb250ZW50 cywKLQkgKiBvciBwZW5kaW5nIGZsaXBzPworCSAqIG9yIHBlbmRpbmcgZmxpcHM/IEJ1dCBzaW5j ZSBvbmx5IHRoZSBHR1RUIGhhcyBnbG9iYWwgZW50cmllcworCSAqIHN1Y2ggYXMgc2Nhbm91dHMs IHJpbmJ1ZmZlcnMgYW5kIGNvbnRleHRzLCB3ZSBjYW4gc2tpcCB0aGUKKwkgKiBwdXJnZSB3aGVu IGluc3BlY3RpbmcgcGVyLXByb2Nlc3MgbG9jYWwgYWRkcmVzcyBzcGFjZXMuCiAJICovCi0JaWYg KGZsYWdzICYgUElOX05PTkJMT0NLKQorCWlmICghaTkxNV9pc19nZ3R0KHZtKSB8fCBmbGFncyAm IFBJTl9OT05CTE9DSykKIAkJcmV0dXJuIC1FTk9TUEM7CiAKLQkvKiBPbmx5IGlkbGUgdGhlIEdQ VSBhbmQgcmVwZWF0IHRoZSBzZWFyY2ggb25jZSAqLwotCWlmIChwYXNzKysgPT0gMCkgewotCQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0KLQkJaWYg KGk5MTVfaXNfZ2d0dCh2bSkpIHsKLQkJCXJldCA9IGk5MTVfZ2VtX3N3aXRjaF90b19rZXJuZWxf Y29udGV4dChkZXZfcHJpdik7Ci0JCQlpZiAocmV0KQotCQkJCXJldHVybiByZXQ7Ci0JCX0KLQot CQlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKLQkJaWYgKHJldCkKLQkJ CXJldHVybiByZXQ7Ci0KLQkJaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzKGRldl9wcml2KTsKLQkJ Z290byBzZWFyY2hfYWdhaW47CisJaWYgKGdwdV9pc19pZGxlKGRldl9wcml2KSkgeworCQkvKiBJ ZiB3ZSBzdGlsbCBoYXZlIHBlbmRpbmcgcGFnZWZsaXAgY29tcGxldGlvbnMsIGRyb3AKKwkJICog YmFjayB0byB1c2Vyc3BhY2UgdG8gZ2l2ZSBvdXIgd29ya3F1ZXVlcyB0aW1lIHRvCisJCSAqIGFj cXVpcmUgb3VyIGxvY2tzIGFuZCB1bnBpbiB0aGUgb2xkIHNjYW5vdXRzLgorCQkgKi8KKwkJcmV0 dXJuIGludGVsX2hhc19wZW5kaW5nX2ZiX3VucGluKGRldikgPyAtRUFHQUlOIDogLUVOT1NQQzsK IAl9CiAKLQkvKiBJZiB3ZSBzdGlsbCBoYXZlIHBlbmRpbmcgcGFnZWZsaXAgY29tcGxldGlvbnMs IGRyb3AKLQkgKiBiYWNrIHRvIHVzZXJzcGFjZSB0byBnaXZlIG91ciB3b3JrcXVldWVzIHRpbWUg dG8KLQkgKiBhY3F1aXJlIG91ciBsb2NrcyBhbmQgdW5waW4gdGhlIG9sZCBzY2Fub3V0cy4KKwkv KiBOb3QgZXZlcnl0aGluZyBpbiB0aGUgR0dUVCBpcyB0cmFja2VkIHZpYSB2bWEgKG90aGVyd2lz ZSB3ZQorCSAqIGNvdWxkIGV2aWN0IGFzIHJlcXVpcmVkIHdpdGggbWluaW1hbCBzdGFsbGluZykg c28gd2UgYXJlIGZvcmNlZAorCSAqIHRvIGlkbGUgdGhlIEdQVSBhbmQgZXhwbGljaXRseSByZXRp cmUgb3V0c3RhbmRpbmcgcmVxdWVzdHMgaW4KKwkgKiB0aGUgaG9wZXMgdGhhdCB3ZSBjYW4gdGhl biByZW1vdmUgY29udGV4dHMgYW5kIHRoZSBsaWtlIG9ubHkKKwkgKiBib3VuZCBieSB0aGVpciBh Y3RpdmUgcmVmZXJlbmNlLgogCSAqLwotCXJldHVybiBpbnRlbF9oYXNfcGVuZGluZ19mYl91bnBp bihkZXYpID8gLUVBR0FJTiA6IC1FTk9TUEM7CisJcmV0ID0gaTkxNV9nZW1fc3dpdGNoX3RvX2tl cm5lbF9jb250ZXh0KGRldl9wcml2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0 ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7CisJaWYgKHJldCkKKwkJcmV0dXJu IHJldDsKKworCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhkZXZfcHJpdik7CisJZ290byBzZWFy Y2hfYWdhaW47CiAKIGZvdW5kOgogCS8qIGRybV9tbSBkb2Vzbid0IGFsbG93IGFueSBvdGhlciBv dGhlciBvcGVyYXRpb25zIHdoaWxlCi0JICogc2Nhbm5pbmcsIHRoZXJlZm9yZSBzdG9yZSB0byBi ZSBldmljdGVkIG9iamVjdHMgb24gYQotCSAqIHRlbXBvcmFyeSBsaXN0LiAqLwotCUlOSVRfTElT VF9IRUFEKCZldmljdGlvbl9saXN0KTsKLQl3aGlsZSAoIWxpc3RfZW1wdHkoJnVud2luZF9saXN0 KSkgewotCQl2bWEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZ1bndpbmRfbGlzdCwKLQkJCQkgICAgICAg c3RydWN0IGk5MTVfdm1hLAotCQkJCSAgICAgICBleGVjX2xpc3QpOwotCQlpZiAoZHJtX21tX3Nj YW5fcmVtb3ZlX2Jsb2NrKCZ2bWEtPm5vZGUpKSB7CisJICogc2Nhbm5pbmcsIHRoZXJlZm9yZSBz dG9yZSB0by1iZS1ldmljdGVkIG9iamVjdHMgb24gYQorCSAqIHRlbXBvcmFyeSBsaXN0IGFuZCB0 YWtlIGEgcmVmZXJlbmNlIGZvciBhbGwgYmVmb3JlCisJICogY2FsbGluZyB1bmJpbmQgKHdoaWNo IG1heSByZW1vdmUgdGhlIGFjdGl2ZSByZWZlcmVuY2UKKwkgKiBvZiBhbnkgb2Ygb3VyIG9iamVj dHMsIHRodXMgY29ycnVwdGluZyB0aGUgbGlzdCkuCisJICovCisJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHZtYSwgbmV4dCwgJmV2aWN0aW9uX2xpc3QsIGV4ZWNfbGlzdCkgeworCQlpZiAoZHJt X21tX3NjYW5fcmVtb3ZlX2Jsb2NrKCZ2bWEtPm5vZGUpKQogCQkJdm1hLT5waW5fY291bnQrKzsK LQkJCWxpc3RfbW92ZSgmdm1hLT5leGVjX2xpc3QsICZldmljdGlvbl9saXN0KTsKLQkJCWNvbnRp bnVlOwotCQl9Ci0JCWxpc3RfZGVsX2luaXQoJnZtYS0+ZXhlY19saXN0KTsKKwkJZWxzZQorCQkJ bGlzdF9kZWxfaW5pdCgmdm1hLT5leGVjX2xpc3QpOwogCX0KIAogCS8qIFVuYmluZGluZyB3aWxs IGVtaXQgYW55IHJlcXVpcmVkIGZsdXNoZXMgKi8KQEAgLTIwMCw3ICsxOTksNiBAQCBmb3VuZDoK IAkJaWYgKHJldCA9PSAwKQogCQkJcmV0ID0gaTkxNV92bWFfdW5iaW5kKHZtYSk7CiAJfQotCiAJ cmV0dXJuIHJldDsKIH0KIApAQCAtMjc5LDcgKzI3Nyw2IEBAIGludCBpOTE1X2dlbV9ldmljdF92 bShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgYm9vbCBkb19pZGxlKQogCQkJcmV0dXJu IHJldDsKIAogCQlpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHMoZGV2X3ByaXYpOwotCiAJCVdBUk5f T04oIWxpc3RfZW1wdHkoJnZtLT5hY3RpdmVfbGlzdCkpOwogCX0KIAotLSAKMi44LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=