From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 02/19] drm/i915: Micro-optimise gen6_ppgtt_insert_entries() Date: Thu, 2 Feb 2017 15:02:31 +0000 Message-ID: <20170202150248.27860-2-chris@chris-wilson.co.uk> References: <20170202150248.27860-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-x241.google.com (mail-wj0-x241.google.com [IPv6:2a00:1450:400c:c01::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id BD0FC6E056 for ; Thu, 2 Feb 2017 15:02:54 +0000 (UTC) Received: by mail-wj0-x241.google.com with SMTP id ip10so1298812wjb.1 for ; Thu, 02 Feb 2017 07:02:54 -0800 (PST) In-Reply-To: <20170202150248.27860-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 Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org SW5saW5lIHRoZSBhZGRyZXNzIGNvbXB1dGF0aW9uIHRvIGF2b2lkIHRoZSB2ZnVuYyBjYWxsIGZv ciBldmVyeSBwYWdlLgpXZSBzdGlsbCBoYXZlIHRvIHBheSB0aGUgaGlnaCBvdmVyaGVhZCBvZiBz Z19wYWdlX2l0ZXJfbmV4dCgpLCBidXQgbm93CmF0IGxlYXN0IEdDQyBjYW4gb3B0aW1pc2UgdGhl IGlubmVyIG1vc3QgbG9vcCwgZ2l2aW5nIGEgc2lnbmlmaWNhbnQKYm9vc3QgdG8gc29tZSB0aHJh c2hpbmcgVW5yZWFsIEVuZ2luZSB3b3JrbG9hZHMuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYyB8IDY4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGY4Y2VmNTFjZjI0Yy4uMGQ1NDBjMjQ0ZTg1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMTg4NSw2ICsxODg1LDExIEBA IHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0sCiAJfQogfQogCitzdHJ1Y3Qgc2d0X2RtYSB7CisJc3RydWN0IHNjYXR0ZXJsaXN0 ICpzZzsKKwlkbWFfYWRkcl90IGRtYSwgbWF4OworfTsKKwogc3RhdGljIHZvaWQgZ2VuNl9wcGd0 dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCQkgICAg ICBzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzLAogCQkJCSAgICAgIHVpbnQ2NF90IHN0YXJ0LApAQCAt MTg5NCwyNyArMTg5OSwzNCBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2luc2VydF9lbnRyaWVz KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXVuc2lnbmVkIGZpcnN0X2VudHJ5ID0g c3RhcnQgPj4gUEFHRV9TSElGVDsKIAl1bnNpZ25lZCBhY3RfcHQgPSBmaXJzdF9lbnRyeSAvIEdF TjZfUFRFUzsKIAl1bnNpZ25lZCBhY3RfcHRlID0gZmlyc3RfZW50cnkgJSBHRU42X1BURVM7Ci0J Z2VuNl9wdGVfdCAqcHRfdmFkZHIgPSBOVUxMOwotCXN0cnVjdCBzZ3RfaXRlciBzZ3RfaXRlcjsK LQlkbWFfYWRkcl90IGFkZHI7CisJY29uc3QgdTMyIHB0ZV9lbmNvZGUgPSB2bS0+cHRlX2VuY29k ZSgwLCBjYWNoZV9sZXZlbCwgZmxhZ3MpOworCXN0cnVjdCBzZ3RfZG1hIGl0ZXI7CisJZ2VuNl9w dGVfdCAqdmFkZHI7CisKKwl2YWRkciA9IGttYXBfcHgocHBndHQtPnBkLnBhZ2VfdGFibGVbYWN0 X3B0XSk7CisJaXRlci5zZyA9IHBhZ2VzLT5zZ2w7CisJaXRlci5kbWEgPSBzZ19kbWFfYWRkcmVz cyhpdGVyLnNnKTsKKwlpdGVyLm1heCA9IGl0ZXIuZG1hICsgaXRlci5zZy0+bGVuZ3RoOworCWRv IHsKKwkJdmFkZHJbYWN0X3B0ZV0gPSBwdGVfZW5jb2RlIHwgR0VONl9QVEVfQUREUl9FTkNPREUo aXRlci5kbWEpOwogCi0JZm9yX2VhY2hfc2d0X2RtYShhZGRyLCBzZ3RfaXRlciwgcGFnZXMpIHsK LQkJaWYgKHB0X3ZhZGRyID09IE5VTEwpCi0JCQlwdF92YWRkciA9IGttYXBfcHgocHBndHQtPnBk LnBhZ2VfdGFibGVbYWN0X3B0XSk7CisJCWl0ZXIuZG1hICs9IFBBR0VfU0laRTsKKwkJaWYgKGl0 ZXIuZG1hID09IGl0ZXIubWF4KSB7CisJCQlpdGVyLnNnID0gX19zZ19uZXh0KGl0ZXIuc2cpOwor CQkJaWYgKCFpdGVyLnNnKQorCQkJCWJyZWFrOwogCi0JCXB0X3ZhZGRyW2FjdF9wdGVdID0KLQkJ CXZtLT5wdGVfZW5jb2RlKGFkZHIsIGNhY2hlX2xldmVsLCBmbGFncyk7CisJCQlpdGVyLmRtYSA9 IHNnX2RtYV9hZGRyZXNzKGl0ZXIuc2cpOworCQkJaXRlci5tYXggPSBpdGVyLmRtYSArIGl0ZXIu c2ctPmxlbmd0aDsKKwkJfQogCiAJCWlmICgrK2FjdF9wdGUgPT0gR0VONl9QVEVTKSB7Ci0JCQlr dW5tYXBfcHgocHBndHQsIHB0X3ZhZGRyKTsKLQkJCXB0X3ZhZGRyID0gTlVMTDsKLQkJCWFjdF9w dCsrOworCQkJa3VubWFwX3B4KHBwZ3R0LCB2YWRkcik7CisJCQl2YWRkciA9IGttYXBfcHgocHBn dHQtPnBkLnBhZ2VfdGFibGVbKythY3RfcHRdKTsKIAkJCWFjdF9wdGUgPSAwOwogCQl9Ci0JfQot Ci0JaWYgKHB0X3ZhZGRyKQotCQlrdW5tYXBfcHgocHBndHQsIHB0X3ZhZGRyKTsKKwl9IHdoaWxl ICgxKTsKKwlrdW5tYXBfcHgocHBndHQsIHZhZGRyKTsKIH0KIAogc3RhdGljIGludCBnZW42X2Fs bG9jX3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLApAQCAtMjQ5NiwyNyAr MjUwOCwxMyBAQCBzdGF0aWMgdm9pZCBnZW42X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCQkJICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2 ZWwsIHUzMiBmbGFncykKIHsKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gaTkxNV92bV90b19n Z3R0KHZtKTsKLQlzdHJ1Y3Qgc2d0X2l0ZXIgc2d0X2l0ZXI7Ci0JZ2VuNl9wdGVfdCBfX2lvbWVt ICpndHRfZW50cmllczsKLQlnZW42X3B0ZV90IGd0dF9lbnRyeTsKKwlnZW42X3B0ZV90IF9faW9t ZW0gKmVudHJpZXMgPSAoZ2VuNl9wdGVfdCBfX2lvbWVtICopZ2d0dC0+Z3NtOworCXVuc2lnbmVk IGludCBpID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKKwlzdHJ1Y3Qgc2d0X2l0ZXIgaXRlcjsKIAlk bWFfYWRkcl90IGFkZHI7Ci0JaW50IGkgPSAwOwotCi0JZ3R0X2VudHJpZXMgPSAoZ2VuNl9wdGVf dCBfX2lvbWVtICopZ2d0dC0+Z3NtICsgKHN0YXJ0ID4+IFBBR0VfU0hJRlQpOwotCi0JZm9yX2Vh Y2hfc2d0X2RtYShhZGRyLCBzZ3RfaXRlciwgc3QpIHsKLQkJZ3R0X2VudHJ5ID0gdm0tPnB0ZV9l bmNvZGUoYWRkciwgbGV2ZWwsIGZsYWdzKTsKLQkJaW93cml0ZTMyKGd0dF9lbnRyeSwgJmd0dF9l bnRyaWVzW2krK10pOwotCX0KLQotCS8qIFhYWDogVGhpcyBzZXJ2ZXMgYXMgYSBwb3N0aW5nIHJl YWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIFBURSBoYXMKLQkgKiBhY3R1YWxseSBiZWVuIHVwZGF0 ZWQuIFRoZXJlIGlzIHNvbWUgY29uY2VybiB0aGF0IGV2ZW4gdGhvdWdoCi0JICogcmVnaXN0ZXJz IGFuZCBQVEVzIGFyZSB3aXRoaW4gdGhlIHNhbWUgQkFSIHRoYXQgdGhleSBhcmUgcG90ZW50aWFs bHkKLQkgKiBvZiBOVU1BIGFjY2VzcyBwYXR0ZXJucy4gVGhlcmVmb3JlLCBldmVuIHdpdGggdGhl IHdheSB3ZSBhc3N1bWUKLQkgKiBoYXJkd2FyZSBzaG91bGQgd29yaywgd2UgbXVzdCBrZWVwIHRo aXMgcG9zdGluZyByZWFkIGZvciBwYXJhbm9pYS4KLQkgKi8KLQlpZiAoaSAhPSAwKQotCQlXQVJO X09OKHJlYWRsKCZndHRfZW50cmllc1tpLTFdKSAhPSBndHRfZW50cnkpOworCWZvcl9lYWNoX3Nn dF9kbWEoYWRkciwgaXRlciwgc3QpCisJCWlvd3JpdGUzMih2bS0+cHRlX2VuY29kZShhZGRyLCBs ZXZlbCwgZmxhZ3MpLCAmZW50cmllc1tpKytdKTsKKwl3bWIoKTsKIAogCS8qIFRoaXMgbmV4dCBi aXQgbWFrZXMgdGhlIGFib3ZlIHBvc3RpbmcgcmVhZCBldmVuIG1vcmUgaW1wb3J0YW50LiBXZQog CSAqIHdhbnQgdG8gZmx1c2ggdGhlIFRMQnMgb25seSBhZnRlciB3ZSdyZSBjZXJ0YWluIGFsbCB0 aGUgUFRFIHVwZGF0ZXMKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==