From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 08/33] drm/i915: Extend execution fence to support a callback Date: Mon, 20 May 2019 09:01:02 +0100 Message-ID: <20190520080127.18255-8-chris@chris-wilson.co.uk> References: <20190520080127.18255-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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 753008925D for ; Mon, 20 May 2019 08:03:28 +0000 (UTC) In-Reply-To: <20190520080127.18255-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 List-Id: intel-gfx@lists.freedesktop.org SW4gdGhlIG5leHQgcGF0Y2gsIHdlIHdpbGwgd2FudCB0byBjb25maWd1cmUgdGhlIHNsYXZlIHJl cXVlc3QKZGVwZW5kaW5nIG9uIHdoaWNoIHBoeXNpY2FsIGVuZ2luZSB0aGUgbWFzdGVyIHJlcXVl c3QgaXMgZXhlY3V0ZWQgb24uCkZvciB0aGlzLCB3ZSBpbnRyb2R1Y2UgYSBjYWxsYmFjayBmcm9t IHRoZSBleGVjdXRlIGZlbmNlIHRvIGNvbnZleSB0aGlzCmluZm9ybWF0aW9uLgoKU2lnbmVkLW9m Zi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIHwgODQgKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oIHwgIDQgKysKIDIgZmls ZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVxdWVzdC5jCmluZGV4IDgwOWQ2ZWUxMGRhNi4uMThiMzRiMGJmODcyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwpAQCAtMzgsNiArMzgsOCBAQCBzdHJ1Y3QgZXhl Y3V0ZV9jYiB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwogCXN0cnVjdCBpcnFfd29yayB3b3Jr OwogCXN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZTsKKwl2b2lkICgqaG9vaykoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBkbWFfZmVuY2UgKnNpZ25hbCk7CisJc3RydWN0IGk5MTVf cmVxdWVzdCAqc2lnbmFsOwogfTsKIAogc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF9yZXF1ZXN0 IHsKQEAgLTMyOSw2ICszMzEsMTcgQEAgc3RhdGljIHZvaWQgaXJxX2V4ZWN1dGVfY2Ioc3RydWN0 IGlycV93b3JrICp3cmspCiAJa21lbV9jYWNoZV9mcmVlKGdsb2JhbC5zbGFiX2V4ZWN1dGVfY2Jz LCBjYik7CiB9CiAKK3N0YXRpYyB2b2lkIGlycV9leGVjdXRlX2NiX2hvb2soc3RydWN0IGlycV93 b3JrICp3cmspCit7CisJc3RydWN0IGV4ZWN1dGVfY2IgKmNiID0gY29udGFpbmVyX29mKHdyaywg dHlwZW9mKCpjYiksIHdvcmspOworCisJY2ItPmhvb2soY29udGFpbmVyX29mKGNiLT5mZW5jZSwg c3RydWN0IGk5MTVfcmVxdWVzdCwgc3VibWl0KSwKKwkJICZjYi0+c2lnbmFsLT5mZW5jZSk7CisJ aTkxNV9yZXF1ZXN0X3B1dChjYi0+c2lnbmFsKTsKKworCWlycV9leGVjdXRlX2NiKHdyayk7Cit9 CisKIHN0YXRpYyB2b2lkIF9fbm90aWZ5X2V4ZWN1dGVfY2Ioc3RydWN0IGk5MTVfcmVxdWVzdCAq cnEpCiB7CiAJc3RydWN0IGV4ZWN1dGVfY2IgKmNiOwpAQCAtMzU1LDE0ICszNjgsMTkgQEAgc3Rh dGljIHZvaWQgX19ub3RpZnlfZXhlY3V0ZV9jYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIH0K IAogc3RhdGljIGludAotaTkxNV9yZXF1ZXN0X2F3YWl0X2V4ZWN1dGlvbihzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpycSwKLQkJCSAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqc2lnbmFsLAotCQkJICAg ICBnZnBfdCBnZnApCitfX2k5MTVfcmVxdWVzdF9hd2FpdF9leGVjdXRpb24oc3RydWN0IGk5MTVf cmVxdWVzdCAqcnEsCisJCQkgICAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqc2lnbmFsLAorCQkJ ICAgICAgIHZvaWQgKCpob29rKShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKKwkJCQkJICAgIHN0 cnVjdCBkbWFfZmVuY2UgKnNpZ25hbCksCisJCQkgICAgICAgZ2ZwX3QgZ2ZwKQogewogCXN0cnVj dCBleGVjdXRlX2NiICpjYjsKIAotCWlmIChpOTE1X3JlcXVlc3RfaXNfYWN0aXZlKHNpZ25hbCkp CisJaWYgKGk5MTVfcmVxdWVzdF9pc19hY3RpdmUoc2lnbmFsKSkgeworCQlpZiAoaG9vaykKKwkJ CWhvb2socnEsICZzaWduYWwtPmZlbmNlKTsKIAkJcmV0dXJuIDA7CisJfQogCiAJY2IgPSBrbWVt X2NhY2hlX2FsbG9jKGdsb2JhbC5zbGFiX2V4ZWN1dGVfY2JzLCBnZnApOwogCWlmICghY2IpCkBA IC0zNzIsOCArMzkwLDE4IEBAIGk5MTVfcmVxdWVzdF9hd2FpdF9leGVjdXRpb24oc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEsCiAJaTkxNV9zd19mZW5jZV9hd2FpdChjYi0+ZmVuY2UpOwogCWluaXRf aXJxX3dvcmsoJmNiLT53b3JrLCBpcnFfZXhlY3V0ZV9jYik7CiAKKwlpZiAoaG9vaykgeworCQlj Yi0+aG9vayA9IGhvb2s7CisJCWNiLT5zaWduYWwgPSBpOTE1X3JlcXVlc3RfZ2V0KHNpZ25hbCk7 CisJCWNiLT53b3JrLmZ1bmMgPSBpcnFfZXhlY3V0ZV9jYl9ob29rOworCX0KKwogCXNwaW5fbG9j a19pcnEoJnNpZ25hbC0+bG9jayk7CiAJaWYgKGk5MTVfcmVxdWVzdF9pc19hY3RpdmUoc2lnbmFs KSkgeworCQlpZiAoaG9vaykgeworCQkJaG9vayhycSwgJnNpZ25hbC0+ZmVuY2UpOworCQkJaTkx NV9yZXF1ZXN0X3B1dChzaWduYWwpOworCQl9CiAJCWk5MTVfc3dfZmVuY2VfY29tcGxldGUoY2It PmZlbmNlKTsKIAkJa21lbV9jYWNoZV9mcmVlKGdsb2JhbC5zbGFiX2V4ZWN1dGVfY2JzLCBjYik7 CiAJfSBlbHNlIHsKQEAgLTgzNCw3ICs4NjIsNyBAQCBlbWl0X3NlbWFwaG9yZV93YWl0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKnRvLAogCQlyZXR1cm4gZXJyOwogCiAJLyogT25seSBzdWJtaXQgb3Vy IHNwaW5uZXIgYWZ0ZXIgdGhlIHNpZ25hbGVyIGlzIHJ1bm5pbmchICovCi0JZXJyID0gaTkxNV9y ZXF1ZXN0X2F3YWl0X2V4ZWN1dGlvbih0bywgZnJvbSwgZ2ZwKTsKKwllcnIgPSBfX2k5MTVfcmVx dWVzdF9hd2FpdF9leGVjdXRpb24odG8sIGZyb20sIE5VTEwsIGdmcCk7CiAJaWYgKGVycikKIAkJ cmV0dXJuIGVycjsKIApAQCAtOTcwLDYgKzk5OCw1MiBAQCBpOTE1X3JlcXVlc3RfYXdhaXRfZG1h X2ZlbmNlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkK IAlyZXR1cm4gMDsKIH0KIAoraW50CitpOTE1X3JlcXVlc3RfYXdhaXRfZXhlY3V0aW9uKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxLAorCQkJICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKKwkJ CSAgICAgdm9pZCAoKmhvb2spKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAorCQkJCQkgIHN0cnVj dCBkbWFfZmVuY2UgKnNpZ25hbCkpCit7CisJc3RydWN0IGRtYV9mZW5jZSAqKmNoaWxkID0gJmZl bmNlOworCXVuc2lnbmVkIGludCBuY2hpbGQgPSAxOworCWludCByZXQ7CisKKwlpZiAoZG1hX2Zl bmNlX2lzX2FycmF5KGZlbmNlKSkgeworCQlzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICphcnJheSA9 IHRvX2RtYV9mZW5jZV9hcnJheShmZW5jZSk7CisKKwkJLyogWFhYIEVycm9yIGZvciBzaWduYWwt b24tYW55IGZlbmNlIGFycmF5cyAqLworCisJCWNoaWxkID0gYXJyYXktPmZlbmNlczsKKwkJbmNo aWxkID0gYXJyYXktPm51bV9mZW5jZXM7CisJCUdFTV9CVUdfT04oIW5jaGlsZCk7CisJfQorCisJ ZG8geworCQlmZW5jZSA9ICpjaGlsZCsrOworCQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdf U0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAq IFdlIGRvbid0IHNxdWFzaCByZXBlYXRlZCBmZW5jZSBkZXBlbmRlbmNpZXMgaGVyZSBhcyB3ZQor CQkgKiB3YW50IHRvIHJ1biBvdXIgY2FsbGJhY2sgaW4gYWxsIGNhc2VzLgorCQkgKi8KKworCQlp ZiAoZG1hX2ZlbmNlX2lzX2k5MTUoZmVuY2UpKQorCQkJcmV0ID0gX19pOTE1X3JlcXVlc3RfYXdh aXRfZXhlY3V0aW9uKHJxLAorCQkJCQkJCSAgICAgdG9fcmVxdWVzdChmZW5jZSksCisJCQkJCQkJ ICAgICBob29rLAorCQkJCQkJCSAgICAgSTkxNV9GRU5DRV9HRlApOworCQllbHNlCisJCQlyZXQg PSBpOTE1X3N3X2ZlbmNlX2F3YWl0X2RtYV9mZW5jZSgmcnEtPnN1Ym1pdCwgZmVuY2UsCisJCQkJ CQkJICAgIEk5MTVfRkVOQ0VfVElNRU9VVCwKKwkJCQkJCQkgICAgR0ZQX0tFUk5FTCk7CisJCWlm IChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwl9IHdoaWxlICgtLW5jaGlsZCk7CisKKwlyZXR1 cm4gMDsKK30KKwogLyoqCiAgKiBpOTE1X3JlcXVlc3RfYXdhaXRfb2JqZWN0IC0gc2V0IHRoaXMg cmVxdWVzdCB0byAoYXN5bmMpIHdhaXQgdXBvbiBhIGJvCiAgKiBAdG86IHJlcXVlc3Qgd2UgYXJl IHdpc2hpbmcgdG8gdXNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl cXVlc3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCmluZGV4IGQ3Zjli MjE5NDU2OC4uYzlmN2QwNzk5MWM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlcXVlc3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaApA QCAtMjgzLDYgKzI4MywxMCBAQCBpbnQgaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChzdHJ1Y3Qg aTkxNV9yZXF1ZXN0ICp0bywKIAkJCSAgICAgIGJvb2wgd3JpdGUpOwogaW50IGk5MTVfcmVxdWVz dF9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJCQkJIHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKTsKK2ludCBpOTE1X3JlcXVlc3RfYXdhaXRfZXhlY3V0aW9uKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxLAorCQkJCSBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKKwkJCQkg dm9pZCAoKmhvb2spKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAorCQkJCQkgICAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlICpzaWduYWwpKTsKIAogdm9pZCBpOTE1X3JlcXVlc3RfYWRkKHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxKTsKIAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=