From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH] i915/oa: Simplify updating contexts Date: Wed, 12 Sep 2018 16:29:30 +0100 Message-ID: <20180912152930.28237-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id EBF0789664 for ; Wed, 12 Sep 2018 15:29:38 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id j26-v6so2524550wre.2 for ; Wed, 12 Sep 2018 08:29:38 -0700 (PDT) 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: Matthew Auld List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGNhbiBy ZW1vdmUgdGhlIHVwZGF0ZS12aWEtYmF0Y2gtYnVmZmVyIGNvZGUgcGF0aCwgd2hpY2ggaXMgYmFz aWNhbGx5IGFuCmVmZmVjdGl2ZSBkdXBsaWNhdGUgb2YgdXBkYXRlLXZpYS1jb250ZXh0LWltYWdl IHBhdGgsIGlmIHdlIG5vdGljZSB0aGF0CmFmdGVyIHdlIGhhdmUgaWRsZWQgdGhlIEdQVSwgd2Ug Y2FuIHVwZGF0ZSB0aGUgY29udGV4dCBpbWFnZSBldmVuIG9mIHRoZQprZXJuZWwgY29udGV4dCBk aXJlY3RseS4gKFVwZGF0ZS12aWEtYmF0Y2gtYnVmZmVyIHBhdGggZXhpc3RlZCBvbmx5IHRvCnNv bHZlIHRoZSBwcm9ibGVtIG9mIGhvdyB0byB1cGRhdGUgdGhlIGtlcm5lbCBjb250ZXh0IGltYWdl LikKCk9ubHkgYWRkaXRpb25hbCB0aGluZyBuZWVkZWQgaXMgdG8gYWN0aXZhdGUgdGhlIGVkaXRl ZCBjb25maWd1cmF0aW9uIGJ5CnNlbmRpbmcgb25lIGVtcHR5IHJlcXVlc3QgZG93biB0aGUgcGlw ZS4gVGhpcyBhY2NvbXBsaXNoZXMgY29udGV4dCByZXN0b3JlCm9mIHRoZSB1cGRhdGVkIGtlcm5l bCBjb250ZXh0IGFuZCBzbyB0aGUgT0EgY29uZmlndXJhdGlvbiBnZXRzIHdyaXR0ZW4gb3V0CnRv IGl0J3MgY29udHJvbCByZWdpc3RlcnMuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5n LmxhbmR3ZXJsaW5AaW50ZWwuY29tPgpDYzogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50 ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgfCAxMjIgKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEwOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCmluZGV4IGNjYjIwMjMwZGYyYy4uM2Q3 YTA1MmI0Y2NhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwpAQCAtMTY3OSwxMDcgKzE2Nzks NiBAQCBzdGF0aWMgdm9pZCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAl9CiB9CiAKLS8qCi0gKiBTYW1lIGFzIGdlbjhfdXBkYXRl X3JlZ19zdGF0ZV91bmxvY2tlZCBvbmx5IHRocm91Z2ggdGhlIGJhdGNoYnVmZmVyLiBUaGlzCi0g KiBpcyBvbmx5IHVzZWQgYnkgdGhlIGtlcm5lbCBjb250ZXh0LgotICovCi1zdGF0aWMgaW50IGdl bjhfZW1pdF9vYV9jb25maWcoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCi0JCQkgICAgICAgY29u c3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCi17Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gcnEtPmk5MTU7Ci0JLyogVGhlIE1NSU8gb2Zmc2V0cyBmb3Ig RmxleCBFVSByZWdpc3RlcnMgYXJlbid0IGNvbnRpZ3VvdXMgKi8KLQl1MzIgZmxleF9tbWlvW10g PSB7Ci0JCWk5MTVfbW1pb19yZWdfb2Zmc2V0KEVVX1BFUkZfQ05UTDApLAotCQlpOTE1X21taW9f cmVnX29mZnNldChFVV9QRVJGX0NOVEwxKSwKLQkJaTkxNV9tbWlvX3JlZ19vZmZzZXQoRVVfUEVS Rl9DTlRMMiksCi0JCWk5MTVfbW1pb19yZWdfb2Zmc2V0KEVVX1BFUkZfQ05UTDMpLAotCQlpOTE1 X21taW9fcmVnX29mZnNldChFVV9QRVJGX0NOVEw0KSwKLQkJaTkxNV9tbWlvX3JlZ19vZmZzZXQo RVVfUEVSRl9DTlRMNSksCi0JCWk5MTVfbW1pb19yZWdfb2Zmc2V0KEVVX1BFUkZfQ05UTDYpLAot CX07Ci0JdTMyICpjczsKLQlpbnQgaTsKLQotCWNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgQVJS QVlfU0laRShmbGV4X21taW8pICogMiArIDQpOwotCWlmIChJU19FUlIoY3MpKQotCQlyZXR1cm4g UFRSX0VSUihjcyk7Ci0KLQkqY3MrKyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKEFSUkFZX1NJWkUo ZmxleF9tbWlvKSArIDEpOwotCi0JKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChHRU44X09B Q1RYQ09OVFJPTCk7Ci0JKmNzKysgPSAoZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kX2V4cG9uZW50 IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8Ci0JCShkZXZfcHJpdi0+cGVyZi5vYS5w ZXJpb2RpYyA/IEdFTjhfT0FfVElNRVJfRU5BQkxFIDogMCkgfAotCQlHRU44X09BX0NPVU5URVJf UkVTVU1FOwotCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmxleF9tbWlvKTsgaSsrKSB7 Ci0JCXUzMiBtbWlvID0gZmxleF9tbWlvW2ldOwotCi0JCS8qCi0JCSAqIFRoaXMgYXJiaXRyYXJ5 IGRlZmF1bHQgd2lsbCBzZWxlY3QgdGhlICdFVSBGUFUwIFBpcGVsaW5lCi0JCSAqIEFjdGl2ZScg ZXZlbnQuIEluIHRoZSBmdXR1cmUgaXQncyBhbnRpY2lwYXRlZCB0aGF0IHRoZXJlCi0JCSAqIHdp bGwgYmUgYW4gZXhwbGljaXQgJ05vIEV2ZW50JyB3ZSBjYW4gc2VsZWN0LCBidXQgbm90Ci0JCSAq IHlldC4uLgotCQkgKi8KLQkJdTMyIHZhbHVlID0gMDsKLQotCQlpZiAob2FfY29uZmlnKSB7Ci0J CQl1MzIgajsKLQotCQkJZm9yIChqID0gMDsgaiA8IG9hX2NvbmZpZy0+ZmxleF9yZWdzX2xlbjsg aisrKSB7Ci0JCQkJaWYgKGk5MTVfbW1pb19yZWdfb2Zmc2V0KG9hX2NvbmZpZy0+ZmxleF9yZWdz W2pdLmFkZHIpID09IG1taW8pIHsKLQkJCQkJdmFsdWUgPSBvYV9jb25maWctPmZsZXhfcmVnc1tq XS52YWx1ZTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJfQotCQl9Ci0KLQkJKmNzKysgPSBtbWlv OwotCQkqY3MrKyA9IHZhbHVlOwotCX0KLQotCSpjcysrID0gTUlfTk9PUDsKLQlpbnRlbF9yaW5n X2FkdmFuY2UocnEsIGNzKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGdlbjhfc3dp dGNoX3RvX3VwZGF0ZWRfa2VybmVsX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAotCQkJCQkJIGNvbnN0IHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnKQot ewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGRldl9wcml2LT5lbmdpbmVbUkNT XTsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmU7Ci0Jc3RydWN0IGk5MTVfcmVxdWVz dCAqcnE7Ci0JaW50IHJldDsKLQotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0u c3RydWN0X211dGV4KTsKLQotCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGRldl9wcml2KTsKLQotCXJx ID0gaTkxNV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0KTsK LQlpZiAoSVNfRVJSKHJxKSkKLQkJcmV0dXJuIFBUUl9FUlIocnEpOwotCi0JcmV0ID0gZ2VuOF9l bWl0X29hX2NvbmZpZyhycSwgb2FfY29uZmlnKTsKLQlpZiAocmV0KSB7Ci0JCWk5MTVfcmVxdWVz dF9hZGQocnEpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCS8qIFF1ZXVlIHRoaXMgc3dpdGNoIGFm dGVyIGFsbCBvdGhlciBhY3Rpdml0eSAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkodGltZWxpbmUs ICZkZXZfcHJpdi0+Z3QudGltZWxpbmVzLCBsaW5rKSB7Ci0JCXN0cnVjdCBpOTE1X3JlcXVlc3Qg KnByZXY7Ci0KLQkJcHJldiA9IGk5MTVfZ2VtX2FjdGl2ZV9yYXcoJnRpbWVsaW5lLT5sYXN0X3Jl cXVlc3QsCi0JCQkJCSAgICZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JCWlmIChwcmV2 KQotCQkJaTkxNV9yZXF1ZXN0X2F3YWl0X2RtYV9mZW5jZShycSwgJnByZXYtPmZlbmNlKTsKLQl9 Ci0KLQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKLQotCXJldHVybiAwOwotfQotCiAvKgogICogTWFu YWdlcyB1cGRhdGluZyB0aGUgcGVyLWNvbnRleHQgYXNwZWN0cyBvZiB0aGUgT0Egc3RyZWFtCiAg KiBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgY29udGV4dHMuCkBAIC0xODA5LDE2ICsxNzA4LDEx IEBAIHN0YXRpYyBpbnQgZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUg PSBkZXZfcHJpdi0+ZW5naW5lW1JDU107CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsK KwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAlpbnQgcmV0OwotCXVuc2lnbmVkIGludCB3YWl0 X2ZsYWdzID0gSTkxNV9XQUlUX0xPQ0tFRDsKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9w cml2LT5kcm0uc3RydWN0X211dGV4KTsKIAotCS8qIFN3aXRjaCBhd2F5IGZyb20gYW55IHVzZXIg Y29udGV4dC4gKi8KLQlyZXQgPSBnZW44X3N3aXRjaF90b191cGRhdGVkX2tlcm5lbF9jb250ZXh0 KGRldl9wcml2LCBvYV9jb25maWcpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KIAkvKgog CSAqIFRoZSBPQSByZWdpc3RlciBjb25maWcgaXMgc2V0dXAgdGhyb3VnaCB0aGUgY29udGV4dCBp bWFnZS4gVGhpcyBpbWFnZQogCSAqIG1pZ2h0IGJlIHdyaXR0ZW4gdG8gYnkgdGhlIEdQVSBvbiBj b250ZXh0IHN3aXRjaCAoaW4gcGFydGljdWxhciBvbgpAQCAtMTgzMyw3ICsxNzI3LDcgQEAgc3Rh dGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCSAqIHRoZSBHUFUgZnJvbSBhbnkgc3VibWl0dGVkIHdvcmsuCiAJICov CiAJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShkZXZfcHJpdiwKLQkJCQkgICAgIHdhaXRf ZmxhZ3MsCisJCQkJICAgICBJOTE1X1dBSVRfTE9DS0VELAogCQkJCSAgICAgTUFYX1NDSEVEVUxF X1RJTUVPVVQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0xODU5LDcgKzE3NTMsMTcg QEAgc3RhdGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0 ZS0+b2JqKTsKIAl9CiAKLQlyZXR1cm4gcmV0OworCS8qCisJICogQXBwbHkgdGhlIGNvbmZpZ3Vy YXRpb24gYnkgZG9pbmcgb25lIGNvbnRleHQgcmVzdG9yZSBvZiB0aGUgZWRpdGVkCisJICogY29u dGV4dCBpbWFnZS4KKwkgKi8KKwlycSA9IGk5MTVfcmVxdWVzdF9hbGxvYyhlbmdpbmUsIGRldl9w cml2LT5rZXJuZWxfY29udGV4dCk7CisJaWYgKElTX0VSUihycSkpCisJCXJldHVybiBQVFJfRVJS KHJxKTsKKworCWk5MTVfcmVxdWVzdF9hZGQocnEpOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRp YyBpbnQgZ2VuOF9lbmFibGVfbWV0cmljX3NldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=