From: Robert Foss Subject: [PATCH v5 3/4] drm/virtio: add in/out fence support for explicit synchronization Date: Mon, 12 Nov 2018 17:51:56 +0100 Message-ID: <20181112165157.32765-4-robert.foss@collabora.com> References: <20181112165157.32765-1-robert.foss@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8982C89CF5 for ; Mon, 12 Nov 2018 16:52:09 +0000 (UTC) In-Reply-To: <20181112165157.32765-1-robert.foss@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@linux.ie, kraxel@redhat.com, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Rob Herring , Gustavo Padovan , Emil Velikov Cc: Robert Foss List-Id: dri-devel@lists.freedesktop.org V2hlbiB0aGUgZXhlY2J1ZiBjYWxsIHJlY2VpdmVzIGFuIGluLWZlbmNlIGl0IHdpbGwgZ2V0IHRo ZSBkbWFfZmVuY2UKcmVsYXRlZCB0byB0aGF0IGZlbmNlIGZkIGFuZCB3YWl0IG9uIGl0IGJlZm9y ZSBzdWJtaXR0aW5nIHRoZSBkcmF3IGNhbGwuCgpPbiB0aGUgb3V0LWZlbmNlIHNpZGUgd2UgZ2V0 IGZlbmNlIHJldHVybmVkIGJ5IHRoZSBzdWJtaXR0ZWQgZHJhdyBjYWxsCmFuZCBhdHRhY2ggaXQg dG8gYSBzeW5jX2ZpbGUgYW5kIHNlbmQgdGhlIHN5bmNfZmlsZSBmZCB0byB1c2Vyc3BhY2UuIE9u CmVycm9yIC0xIGlzIHJldHVybmVkIHRvIHVzZXJzcGFjZS4KClZJUlRHUFVfRVhFQ0JVRl9GRU5D RV9GRF9JTiAmIFZJUlRHUFVfRVhFQ0JVRl9GRU5DRV9GRF9PVVQKYXJlIHN1cHBvcnRlZCBhdCB0 aGUgc2ltdWx0YW5lb3VzbHkgYW5kIGNhbiBiZSBmbGFnZ2VkCmZvciBzaW11bHRhbmVvdXNseS4K ClNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9y YS5jb20+ClNpZ25lZC1vZmYtYnk6IFJvYmVydCBGb3NzIDxyb2JlcnQuZm9zc0Bjb2xsYWJvcmEu Y29tPgpTdWdnZXN0ZWQtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+ClJldmlld2Vk LWJ5OiBFbWlsIFZlbGlrb3YgPGVtaWwudmVsaWtvdkBjb2xsYWJvcmEuY29tPgotLS0KCkNoYW5n ZXMgc2luY2UgdjM6CiAtIE1vdmUgYWxsIGluX2ZlbmNlIGhhbmRsaW5nIHRvIHRoZSBzYW1lIFZJ UlRHUFVfRVhFQ0JVRl9GRU5DRV9GRF9JTiBibG9jawogLSBFbWlsOiBNYWtlIHN1cmUgdG8gYWx3 YXlzIGNhbGwgZG1hX2ZlbmNlX3B1dCgpCiAtIEVtaWw6IEFkZGVkIHItYgoKCiBkcml2ZXJzL2dw dS9kcm0vdmlydGlvL3ZpcnRncHVfaW9jdGwuYyB8IDgxICsrKysrKysrKysrKysrKysrKysrLS0t LS0tCiBpbmNsdWRlL3VhcGkvZHJtL3ZpcnRncHVfZHJtLmggICAgICAgICB8ICAyICstCiAyIGZp bGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jIGIvZHJpdmVycy9ncHUv ZHJtL3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMKaW5kZXggM2Q0OTc4MzViMGY1Li4zNDBmMjUxM2Q4 MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCkBAIC0yOCw2ICsyOCw3 IEBACiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vdmlydGdwdV9kcm0uaD4K ICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuaD4KKyNpbmNsdWRlIDxsaW51eC9z eW5jX2ZpbGUuaD4KIAogI2luY2x1ZGUgInZpcnRncHVfZHJ2LmgiCiAKQEAgLTEwNSw3ICsxMDYs NyBAQCBzdGF0aWMgaW50IHZpcnRpb19ncHVfZXhlY2J1ZmZlcl9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXN0cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYg PSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCB2aXJ0aW9fZ3B1X2Zwcml2ICp2ZnByaXYgPSBk cm1fZmlsZS0+ZHJpdmVyX3ByaXY7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqOwotCXN0 cnVjdCB2aXJ0aW9fZ3B1X2ZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgdmlydGlvX2dwdV9mZW5jZSAq b3V0X2ZlbmNlOwogCXN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCAqcW9iajsKIAlpbnQgcmV0Owog CXVpbnQzMl90ICpib19oYW5kbGVzID0gTlVMTDsKQEAgLTExNCw2ICsxMTUsOSBAQCBzdGF0aWMg aW50IHZpcnRpb19ncHVfZXhlY2J1ZmZlcl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCXN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyICpidWZsaXN0ID0gTlVMTDsK IAlpbnQgaTsKIAlzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggdGlja2V0OworCXN0cnVjdCBzeW5jX2Zp bGUgKnN5bmNfZmlsZTsKKwlpbnQgaW5fZmVuY2VfZmQgPSBleGJ1Zi0+ZmVuY2VfZmQ7CisJaW50 IG91dF9mZW5jZV9mZCA9IC0xOwogCXZvaWQgKmJ1ZjsKIAogCWlmICh2Z2Rldi0+aGFzX3Zpcmds XzNkID09IGZhbHNlKQpAQCAtMTI0LDYgKzEyOCwzMyBAQCBzdGF0aWMgaW50IHZpcnRpb19ncHVf ZXhlY2J1ZmZlcl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJ ZXhidWYtPmZlbmNlX2ZkID0gLTE7CiAKKwlpZiAoZXhidWYtPmZsYWdzICYgVklSVEdQVV9FWEVD QlVGX0ZFTkNFX0ZEX0lOKSB7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmluX2ZlbmNlOworCisJCWlu X2ZlbmNlID0gc3luY19maWxlX2dldF9mZW5jZShpbl9mZW5jZV9mZCk7CisKKwkJaWYgKCFpbl9m ZW5jZSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCS8qCisJCSAqIFdhaXQgaWYgdGhlIGZlbmNl IGlzIGZyb20gYSBmb3JlaWduIGNvbnRleHQsIG9yIGlmIHRoZSBmZW5jZQorCQkgKiBhcnJheSBj b250YWlucyBhbnkgZmVuY2UgZnJvbSBhIGZvcmVpZ24gY29udGV4dC4KKwkJICovCisJCXJldCA9 IDA7CisJCWlmICghZG1hX2ZlbmNlX21hdGNoX2NvbnRleHQoaW5fZmVuY2UsIHZnZGV2LT5mZW5j ZV9kcnYuY29udGV4dCkpCisJCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChpbl9mZW5jZSwgdHJ1ZSk7 CisKKwkJZG1hX2ZlbmNlX3B1dChpbl9mZW5jZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0 OworCX0KKworCWlmIChleGJ1Zi0+ZmxhZ3MgJiBWSVJUR1BVX0VYRUNCVUZfRkVOQ0VfRkRfT1VU KSB7CisJCW91dF9mZW5jZV9mZCA9IGdldF91bnVzZWRfZmRfZmxhZ3MoT19DTE9FWEVDKTsKKwkJ aWYgKG91dF9mZW5jZV9mZCA8IDApCisJCQlyZXR1cm4gb3V0X2ZlbmNlX2ZkOworCX0KKwogCUlO SVRfTElTVF9IRUFEKCZ2YWxpZGF0ZV9saXN0KTsKIAlpZiAoZXhidWYtPm51bV9ib19oYW5kbGVz KSB7CiAKQEAgLTEzMywyNiArMTY0LDIyIEBAIHN0YXRpYyBpbnQgdmlydGlvX2dwdV9leGVjYnVm ZmVyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJCSAgIHNp emVvZihzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciksCiAJCQkJCSAgIEdGUF9LRVJORUwgfCBf X0dGUF9aRVJPKTsKIAkJaWYgKCFib19oYW5kbGVzIHx8ICFidWZsaXN0KSB7Ci0JCQlrdmZyZWUo Ym9faGFuZGxlcyk7Ci0JCQlrdmZyZWUoYnVmbGlzdCk7Ci0JCQlyZXR1cm4gLUVOT01FTTsKKwkJ CXJldCA9IC1FTk9NRU07CisJCQlnb3RvIG91dF91bnVzZWRfZmQ7CiAJCX0KIAogCQl1c2VyX2Jv X2hhbmRsZXMgPSAodm9pZCBfX3VzZXIgKikodWludHB0cl90KWV4YnVmLT5ib19oYW5kbGVzOwog CQlpZiAoY29weV9mcm9tX3VzZXIoYm9faGFuZGxlcywgdXNlcl9ib19oYW5kbGVzLAogCQkJCSAg IGV4YnVmLT5udW1fYm9faGFuZGxlcyAqIHNpemVvZih1aW50MzJfdCkpKSB7CiAJCQlyZXQgPSAt RUZBVUxUOwotCQkJa3ZmcmVlKGJvX2hhbmRsZXMpOwotCQkJa3ZmcmVlKGJ1Zmxpc3QpOwotCQkJ cmV0dXJuIHJldDsKKwkJCWdvdG8gb3V0X3VudXNlZF9mZDsKIAkJfQogCiAJCWZvciAoaSA9IDA7 IGkgPCBleGJ1Zi0+bnVtX2JvX2hhbmRsZXM7IGkrKykgewogCQkJZ29iaiA9IGRybV9nZW1fb2Jq ZWN0X2xvb2t1cChkcm1fZmlsZSwgYm9faGFuZGxlc1tpXSk7CiAJCQlpZiAoIWdvYmopIHsKLQkJ CQlrdmZyZWUoYm9faGFuZGxlcyk7Ci0JCQkJa3ZmcmVlKGJ1Zmxpc3QpOwotCQkJCXJldHVybiAt RU5PRU5UOworCQkJCXJldCA9IC1FTk9FTlQ7CisJCQkJZ290byBvdXRfdW51c2VkX2ZkOwogCQkJ fQogCiAJCQlxb2JqID0gZ2VtX3RvX3ZpcnRpb19ncHVfb2JqKGdvYmopOwpAQCAtMTYxLDYgKzE4 OCw3IEBAIHN0YXRpYyBpbnQgdmlydGlvX2dwdV9leGVjYnVmZmVyX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQlsaXN0X2FkZCgmYnVmbGlzdFtpXS5oZWFkLCAm dmFsaWRhdGVfbGlzdCk7CiAJCX0KIAkJa3ZmcmVlKGJvX2hhbmRsZXMpOworCQlib19oYW5kbGVz ID0gTlVMTDsKIAl9CiAKIAlyZXQgPSB2aXJ0aW9fZ3B1X29iamVjdF9saXN0X3ZhbGlkYXRlKCZ0 aWNrZXQsICZ2YWxpZGF0ZV9saXN0KTsKQEAgLTE3NCwyOCArMjAyLDQ3IEBAIHN0YXRpYyBpbnQg dmlydGlvX2dwdV9leGVjYnVmZmVyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCiAJCWdvdG8gb3V0X3VucmVzdjsKIAl9CiAKLQlmZW5jZSA9IHZpcnRpb19ncHVfZmVu Y2VfYWxsb2ModmdkZXYpOwotCWlmICghZmVuY2UpIHsKLQkJa2ZyZWUoYnVmKTsKKwlvdXRfZmVu Y2UgPSB2aXJ0aW9fZ3B1X2ZlbmNlX2FsbG9jKHZnZGV2KTsKKwlpZighb3V0X2ZlbmNlKSB7CiAJ CXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0X3VucmVzdjsKKwkJZ290byBvdXRfbWVtZHVwOwor CX0KKworCWlmIChvdXRfZmVuY2VfZmQgPj0gMCkgeworCQlzeW5jX2ZpbGUgPSBzeW5jX2ZpbGVf Y3JlYXRlKCZvdXRfZmVuY2UtPmYpOworCQlpZiAoIXN5bmNfZmlsZSkgeworCQkJZG1hX2ZlbmNl X3B1dCgmb3V0X2ZlbmNlLT5mKTsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIG91dF9tZW1k dXA7CisJCX0KKworCQlleGJ1Zi0+ZmVuY2VfZmQgPSBvdXRfZmVuY2VfZmQ7CisJCWZkX2luc3Rh bGwob3V0X2ZlbmNlX2ZkLCBzeW5jX2ZpbGUtPmZpbGUpOwogCX0KKwogCXZpcnRpb19ncHVfY21k X3N1Ym1pdCh2Z2RldiwgYnVmLCBleGJ1Zi0+c2l6ZSwKLQkJCSAgICAgIHZmcHJpdi0+Y3R4X2lk LCAmZmVuY2UpOworCQkJICAgICAgdmZwcml2LT5jdHhfaWQsICZvdXRfZmVuY2UpOwogCi0JdHRt X2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKCZ0aWNrZXQsICZ2YWxpZGF0ZV9saXN0LCAmZmVuY2Ut PmYpOworCXR0bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0cygmdGlja2V0LCAmdmFsaWRhdGVfbGlz dCwgJm91dF9mZW5jZS0+Zik7CiAKIAkvKiBmZW5jZSB0aGUgY29tbWFuZCBibyAqLwogCXZpcnRp b19ncHVfdW5yZWZfbGlzdCgmdmFsaWRhdGVfbGlzdCk7CiAJa3ZmcmVlKGJ1Zmxpc3QpOwotCWRt YV9mZW5jZV9wdXQoJmZlbmNlLT5mKTsKIAlyZXR1cm4gMDsKIAorb3V0X21lbWR1cDoKKwlrZnJl ZShidWYpOwogb3V0X3VucmVzdjoKIAl0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbigmdGlja2V0 LCAmdmFsaWRhdGVfbGlzdCk7CiBvdXRfZnJlZToKIAl2aXJ0aW9fZ3B1X3VucmVmX2xpc3QoJnZh bGlkYXRlX2xpc3QpOworb3V0X3VudXNlZF9mZDoKKwlrdmZyZWUoYm9faGFuZGxlcyk7CiAJa3Zm cmVlKGJ1Zmxpc3QpOworCisJaWYgKG91dF9mZW5jZV9mZCA+PSAwKQorCQlwdXRfdW51c2VkX2Zk KG91dF9mZW5jZV9mZCk7CisKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL3ZpcnRncHVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL3ZpcnRncHVfZHJtLmgK aW5kZXggOTEwNjJmNGFjN2M1Li5mMDZhNzg5ZjM0Y2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFw aS9kcm0vdmlydGdwdV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL3ZpcnRncHVfZHJtLmgK QEAgLTY2LDcgKzY2LDcgQEAgc3RydWN0IGRybV92aXJ0Z3B1X2V4ZWNidWZmZXIgewogCV9fdTY0 IGNvbW1hbmQ7IC8qIHZvaWQqICovCiAJX191NjQgYm9faGFuZGxlczsKIAlfX3UzMiBudW1fYm9f aGFuZGxlczsKLQlfX3MzMiBmZW5jZV9mZDsKKwlfX3MzMiBmZW5jZV9mZDsgLyogaW4vb3V0IGZl bmNlIGZkIChzZWUgVklSVEdQVV9FWEVDQlVGX0ZFTkNFX0ZEX0lOL09VVCkgKi8KIH07CiAKICNk ZWZpbmUgVklSVEdQVV9QQVJBTV8zRF9GRUFUVVJFUyAxIC8qIGRvIHdlIGhhdmUgM0QgZmVhdHVy ZXMgaW4gdGhlIGh3ICovCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=