From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Ekstrand Subject: [PATCH 9/9] drm/syncobj: Allow wait for submit and signal behavior (v4) Date: Fri, 11 Aug 2017 15:39:34 -0700 Message-ID: <1502491174-10913-10-git-send-email-jason.ekstrand@intel.com> References: <1502232369-19753-1-git-send-email-jason.ekstrand@intel.com> <1502491174-10913-1-git-send-email-jason.ekstrand@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x241.google.com (mail-pf0-x241.google.com [IPv6:2607:f8b0:400e:c00::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5D3986E772 for ; Fri, 11 Aug 2017 22:39:59 +0000 (UTC) Received: by mail-pf0-x241.google.com with SMTP id p13so4513435pfd.4 for ; Fri, 11 Aug 2017 15:39:59 -0700 (PDT) In-Reply-To: <1502491174-10913-1-git-send-email-jason.ekstrand@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Jason Ekstrand , Dave Airlie , Jason Ekstrand List-Id: dri-devel@lists.freedesktop.org VnVsa2FuIFZrRmVuY2Ugc2VtYW50aWNzIHJlcXVpcmUgdGhhdCB0aGUgYXBwbGljYXRpb24gYmUg YWJsZSB0byBwZXJmb3JtCmEgQ1BVIHdhaXQgb24gd29yayB3aGljaCBtYXkgbm90IHlldCBoYXZl IGJlZW4gc3VibWl0dGVkLiAgVGhpcyBpcwpwZXJmZWN0bHkgc2FmZSBiZWNhdXNlIHRoZSBDUFUg d2FpdCBoYXMgYSB0aW1lb3V0IHdoaWNoIHdpbGwgZ2V0CnRyaWdnZXJlZCBldmVudHVhbGx5IGlm IG5vIHdvcmsgaXMgZXZlciBzdWJtaXR0ZWQuICBUaGlzIGJlaGF2aW9yIGlzCmFkdmFudGFnZW91 cyBmb3IgbXVsdGktdGhyZWFkZWQgd29ya2xvYWRzIGJlY2F1c2UsIHNvIGxvbmcgYXMgYWxsIG9m IHRoZQp0aHJlYWRzIGFncmVlIG9uIHdoYXQgZmVuY2VzIHRvIHVzZSB1cC1mcm9udCwgeW91IGRv bid0IGhhdmUgdGhlIGV4dHJhCmNyb3NzLXRocmVhZCBzeW5jaHJvbml6YXRpb24gY29zdCBvZiB0 aHJlYWQgQSB0ZWxsaW5nIHRocmVhZCBCIHRoYXQgaXQKaGFzIHN1Ym1pdHRlZCBpdHMgZGVwZW5k ZW50IHdvcmsgYW5kIHRocmVhZCBCIGlzIG5vdyBmcmVlIHRvIHdhaXQuCgpXaXRoaW4gYSBzaW5n bGUgcHJvY2VzcywgdGhpcyBjYW4gYmUgaW1wbGVtZW50ZWQgaW4gdGhlIHVzZXJzcGFjZSBkcml2 ZXIKYnkgZG9pbmcgZXhhY3RseSB0aGUgc2FtZSBraW5kIG9mIHRyYWNraW5nIHRoZSBhcHAgd291 bGQgaGF2ZSB0byBkbwp1c2luZyBwb3NpeCBjb25kaXRpb24gdmFyaWFibGVzIG9yIHNpbWlsYXIu ICBIb3dldmVyLCBpbiBvcmRlciBmb3IgdGhpcwp0byB3b3JrIGNyb3NzLXByb2Nlc3MgKGFzIGlz IHJlcXVpcmVkIGJ5IFZLX0tIUl9leHRlcm5hbF9mZW5jZSksIHdlIG5lZWQKdG8gaGFuZGxlIHRo aXMgaW4gdGhlIGtlcm5lbC4KClRoaXMgY29tbWl0IGFkZHMgYSBXQUlUX0ZPUl9TVUJNSVQgZmxh ZyB0byBEUk1fSU9DVExfU1lOQ09CSl9XQUlUIHdoaWNoCmluc3RydWN0cyB0aGUgSU9DVEwgdG8g d2FpdCBmb3IgdGhlIHN5bmNvYmogdG8gaGF2ZSBhIG5vbi1udWxsIGZlbmNlIGFuZAp0aGVuIHdh aXQgb24gdGhlIGZlbmNlLiAgQ29tYmluZWQgd2l0aCBEUk1fSU9DVExfU1lOQ09CSl9SRVNFVCwg eW91IGNhbgplYXNpbHkgZ2V0IHRoZSBWdWxrYW4gYmVoYXZpb3IuCgp2MjoKIC0gRml4IGEgYnVn IGluIHRoZSBpbnZhbGlkIHN5bmNvYmogZXJyb3IgcGF0aAogLSBVbmlmeSB0aGUgd2FpdC1hbGwg YW5kIHdhaXQtYW55IGNhc2VzCnYzOgogLSBVbmlmeSB0aGUgdGltZW91dCA9PSAwIGNhc2UgYSBi aXQgd2l0aCB0aGUgdGltZW91dCA+IDAgY2FzZQogLSB1c2Ugd2FpdF9ldmVudF9pbnRlcnJ1cHRp YmxlX3RpbWVvdXQKdjQ6CiAtIFVzZSBwcm94eSBmZW5jZQoKU2lnbmVkLW9mZi1ieTogSmFzb24g RWtzdHJhbmQgPGphc29uQGpsZWtzdHJhbmQubmV0PgpDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRA cmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYyB8IDk1ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIGluY2x1ZGUvZHJtL2RybV9z eW5jb2JqLmggICAgIHwgIDMgKy0KIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgIHwgIDEg KwogMyBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9zeW5jb2JqLmMKaW5kZXggMjI2ZjFlNy4uNGY3YzVlNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2Jq LmMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxp bnV4L2Fub25faW5vZGVzLmg+CiAjaW5jbHVkZSA8bGludXgvc3luY19maWxlLmg+CisjaW5jbHVk ZSA8bGludXgvZG1hLWZlbmNlLXByb3h5Lmg+CiAKICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIK ICNpbmNsdWRlIDxkcm0vZHJtX3N5bmNvYmouaD4KQEAgLTgyLDEwICs4Myw0NSBAQCBFWFBPUlRf U1lNQk9MKGRybV9zeW5jb2JqX2ZpbmQpOwogCiBzdHJ1Y3QgZG1hX2ZlbmNlICpkcm1fc3luY29i al9mZW5jZV9nZXQoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqKQogewotCXJldHVybiBkbWFf ZmVuY2VfZ2V0X3JjdV9zYWZlKCZzeW5jb2JqLT5fZmVuY2UpOworCXN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3Vfc2FmZSgmc3luY29iai0+X2ZlbmNlKTsKKworCS8q IERvbid0IGhhbmQgb3V0IG91ciBpbnRlcm5hbCBwcm94eSBmZW5jZS4gIFByb3h5IGZlbmNlcyBh cmUgb25seSB1c2VkCisJICogZm9yIGltcGxlbWVudGluZyBXQUlUX0ZMQUdTX1dBSVRfRk9SX1NV Qk1JVCBiZWhhdmlvciBhbmQgc2hvdWxkIG5vdAorCSAqIGJlIGhhbmRlZCBvdXQgdG8gcmFuZG9t IGRyaXZlcnMgdW5sZXNzIHRoZXkgYXJlIHByZXBhcmVkIHRvIGRlYWwKKwkgKiB3aXRoIHRoZSBw b3NzaWJpbGl0eSB0aGF0IHRoZSBmZW5jZSB3aWxsIG5ldmVyIGdldCBzaWduYWxlZC4KKwkgKi8K KwlpZiAoZmVuY2UgJiYgZG1hX2ZlbmNlX2lzX3Byb3h5X3RhZ2dlZChmZW5jZSwgZHJtX3N5bmNv YmpfZnJlZSkpIHsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJCXJldHVybiBOVUxMOworCX0K KworCXJldHVybiBmZW5jZTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3N5bmNvYmpfZmVuY2VfZ2V0 KTsKIAorc3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKmRybV9zeW5jb2JqX2ZlbmNlX3Byb3h5X2dl dChzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmopCit7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UsICpwcm94eTsKKworCWRvIHsKKwkJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlKCZz eW5jb2JqLT5fZmVuY2UpOworCQlpZiAoZmVuY2UpCisJCQlyZXR1cm4gZmVuY2U7CisKKwkJcHJv eHkgPSBkbWFfZmVuY2VfY3JlYXRlX3Byb3h5KCJkcm1fc3luY29iaiIsIGRybV9zeW5jb2JqX2Zy ZWUpOworCQlpZiAoIXByb3h5KQorCQkJcmV0dXJuIE5VTEw7CisKKwkJZmVuY2UgPSBjbXB4Y2hn KCZzeW5jb2JqLT5fZmVuY2UsIE5VTEwsIHByb3h5KTsKKwkJaWYgKCFmZW5jZSkKKwkJCXJldHVy biBkbWFfZmVuY2VfZ2V0KHByb3h5KTsKKworCQlkbWFfZmVuY2VfcHV0KHByb3h5KTsKKwl9IHdo aWxlKDEpOworCisJcmV0dXJuIHByb3h5OworfQorCiAvKioKICAqIGRybV9zeW5jb2JqX3JlcGxh Y2VfZmVuY2UgLSByZXBsYWNlIGZlbmNlIGluIGEgc3luYyBvYmplY3QuCiAgKiBAc3luY29iajog U3luYyBvYmplY3QgdG8gcmVwbGFjZSBmZW5jZSBpbgpAQCAtOTcsMTAgKzEzMyw0MCBAQCB2b2lk IGRybV9zeW5jb2JqX3JlcGxhY2VfZmVuY2Uoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAog CQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBkbWFfZmVuY2Ug Km9sZF9mZW5jZTsKKwlib29sIG9sZF9mZW5jZV9pc19wcm94eTsKIAotCWlmIChmZW5jZSkKLQkJ ZG1hX2ZlbmNlX2dldChmZW5jZSk7Ci0Jb2xkX2ZlbmNlID0geGNoZygmc3luY29iai0+X2ZlbmNl LCBmZW5jZSk7CisJZG1hX2ZlbmNlX2dldChmZW5jZSk7CisKKwlkbyB7CisJCW9sZF9mZW5jZSA9 IGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoJnN5bmNvYmotPl9mZW5jZSk7CisJCW9sZF9mZW5jZV9p c19wcm94eSA9IG9sZF9mZW5jZSAmJgorCQkJZG1hX2ZlbmNlX2lzX3Byb3h5X3RhZ2dlZChvbGRf ZmVuY2UsIGRybV9zeW5jb2JqX2ZyZWUpOworCQlkbWFfZmVuY2VfcHV0KG9sZF9mZW5jZSk7CisK KwkJaWYgKCFmZW5jZSAmJiBvbGRfZmVuY2VfaXNfcHJveHkpIHsKKwkJCS8qIElmIHdlJ3JlIHJl cGxhY2luZyBhIHByb3h5IHdpdGggTlVMTCwganVzdCBsZWF2ZQorCQkJICogdGhlIHByb3h5Lgor CQkJICovCisJCQlyZXR1cm47CisJCX0KKworCQlpZiAoY21weGNoZygmc3luY29iai0+X2ZlbmNl LCBvbGRfZmVuY2UsIGZlbmNlKSAhPSBvbGRfZmVuY2UpCisJCQljb250aW51ZTsKKwl9IHdoaWxl KDApOworCisJaWYgKGZlbmNlICYmIG9sZF9mZW5jZV9pc19wcm94eSkgeworCQkvKiBJZiB3ZSBq dXN0IHJlcGxhY2VkIGEgcHJveHkgZmVuY2Ugd2l0aCBhIHJlYWwgZmVuY2UsCisJCSAqIGFzc2ln biB0aGUgcmVhbCBmZW5jZSB0byB0aGUgcHJveHkgc28gdGhhdCBpdCBnZXRzCisJCSAqIHRyaWdn ZXJlZCB3aGVuIHRoZSByZWFsIGZlbmNlIHRyaWdnZXJzLiAgSWYgd2UgYXJlCisJCSAqIHJlcGxh Y2luZyBhIHByb3h5IHdpdGggTlVMTCAoc3VjaCBhcyB0aHJvdWdoCisJCSAqIERSTV9JT0NUTF9T WU5DT0JKX1JFU0VUKSwgd2UgZHJvcCB0aGUgZmVuY2Ugb24gdGhlIGZsb29yCisJCSAqIGFuZCBp dCB3aWxsIG5ldmVyIGdldCBzaWduYWxlZC4gIFRoaXMgaXMgb2sgYmVjYXVzZSB0aGUKKwkJICog b25seSBjb2RlIHdoaWNoIHdhaXRzIG9uIG91ciBwcm94eSBmZW5jZXMgaXMKKwkJICogU1lOQ09C Sl9XQUlUIHdpdGggV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgc2V0IGFuZCB0aGUKKwkJICog d2FpdCBpb2N0bCBoYXMgYSB0aW1lb3V0IHdoaWNoIHdpbGwgZXZlbnR1YWxseSB0cmlnZ2VyLgor CQkgKi8KKwkJZG1hX2ZlbmNlX3Byb3h5X2Fzc2lnbihvbGRfZmVuY2UsIGZlbmNlKTsKKwl9CiAK IAlkbWFfZmVuY2VfcHV0KG9sZF9mZW5jZSk7CiB9CkBAIC01NDQsMTMgKzYxMCwxNSBAQCBkcm1f c3luY29ial93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ c3RydWN0IGRybV9zeW5jb2JqX3dhaXQgKmFyZ3MgPSBkYXRhOwogCXVpbnQzMl90ICpoYW5kbGVz OwogCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXM7CisJc3RydWN0IGRybV9zeW5jb2JqICpzeW5j b2JqOwogCWludCByZXQgPSAwOwogCXVpbnQzMl90IGk7CiAKIAlpZiAoIWRybV9jb3JlX2NoZWNr X2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCiAJCXJldHVybiAtRU5PREVWOwogCi0JaWYg KGFyZ3MtPmZsYWdzICE9IDAgJiYgYXJncy0+ZmxhZ3MgIT0gRFJNX1NZTkNPQkpfV0FJVF9GTEFH U19XQUlUX0FMTCkKKwlpZiAoYXJncy0+ZmxhZ3MgJiB+KERSTV9TWU5DT0JKX1dBSVRfRkxBR1Nf V0FJVF9BTEwgfAorCQkJICAgIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlU KSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoYXJncy0+Y291bnRfaGFuZGxlcyA9PSAwKQpA QCAtNTc3LDggKzY0NSwyMSBAQCBkcm1fc3luY29ial93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJfQogCiAJZm9yIChpID0gMDsgaSA8IGFyZ3MtPmNvdW50 X2hhbmRsZXM7IGkrKykgewotCQlyZXQgPSBkcm1fc3luY29ial9maW5kX2ZlbmNlKGZpbGVfcHJp dmF0ZSwgaGFuZGxlc1tpXSwKLQkJCQkJICAgICAmZmVuY2VzW2ldKTsKKwkJc3luY29iaiA9IGRy bV9zeW5jb2JqX2ZpbmQoZmlsZV9wcml2YXRlLCBoYW5kbGVzW2ldKTsKKwkJaWYgKCFzeW5jb2Jq KSB7CisJCQlyZXQgPSAtRU5PRU5UOworCQkJZ290byBlcnJfZnJlZV9mZW5jZV9hcnJheTsKKwkJ fQorCisJCWlmIChhcmdzLT5mbGFncyAmIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1Jf U1VCTUlUKSB7CisJCQlmZW5jZXNbaV0gPSBkcm1fc3luY29ial9mZW5jZV9wcm94eV9nZXQoc3lu Y29iaik7CisJCQlpZiAoIWZlbmNlc1tpXSkKKwkJCQlyZXQgPSAtRU5PTUVNOworCQl9IGVsc2Ug eworCQkJZmVuY2VzW2ldID0gZHJtX3N5bmNvYmpfZmVuY2VfZ2V0KHN5bmNvYmopOworCQkJaWYg KCFmZW5jZXNbaV0pCisJCQkJcmV0ID0gLUVJTlZBTDsKKwkJfQogCQlpZiAocmV0KQogCQkJZ290 byBlcnJfZnJlZV9mZW5jZV9hcnJheTsKIAl9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f c3luY29iai5oIGIvaW5jbHVkZS9kcm0vZHJtX3N5bmNvYmouaAppbmRleCBjMDZhNDQxLi4yOTAz N2Q1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fc3luY29iai5oCisrKyBiL2luY2x1ZGUv ZHJtL2RybV9zeW5jb2JqLmgKQEAgLTQyLDcgKzQyLDggQEAgc3RydWN0IGRybV9zeW5jb2JqIHsK IAlzdHJ1Y3Qga3JlZiByZWZjb3VudDsKIAkvKioKIAkgKiBAZmVuY2U6Ci0JICogTlVMTCBvciBh IHBvaW50ZXIgdG8gdGhlIGZlbmNlIGJvdW5kIHRvIHRoaXMgb2JqZWN0LgorCSAqIE5VTEwgb3Ig YSBwb2ludGVyIHRvIHRoZSBmZW5jZSBib3VuZCB0byB0aGlzIG9iamVjdCBvciBhIHBvaW50ZXIK KwkgKiB0byBhIHByb3h5IGZlbmNlIHdoaWNoIHdpbGwgYmUgYXNzaWduZWQgdG8gdGhlIG5leHQg Ym91bmQgZmVuY2UuCiAJICoKIAkgKiBUaGlzIHBvaW50ZXIgc2hvdWxkIG5vdCBiZSBhY2Nlc3Nl ZCBkaXJlY3RseS4gIEluc3RlYWQsIHVzZQogCSAqIGRybV9zeW5jb2JqX2ZlbmNlX2dldCBvciBk cm1fc3luY29ial9yZXBsYWNlX2ZlbmNlLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9k cm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKaW5kZXggNGIzMDFiNC4uZjhlYzhmZSAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2Ry bS5oCkBAIC03MTksNiArNzE5LDcgQEAgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSB7CiB9Owog CiAjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgKDEgPDwgMCkKKyNkZWZp bmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgKDEgPDwgMSkKIHN0cnVj dCBkcm1fc3luY29ial93YWl0IHsKIAlfX3U2NCBoYW5kbGVzOwogCS8qIGFic29sdXRlIHRpbWVv dXQgKi8KLS0gCjIuNS4wLjQwMC5nZmY4NmZhZgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==