From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH] drm/syncobj: add sync obj wait interface. (v5) Date: Wed, 14 Jun 2017 12:02:25 +1000 Message-ID: <20170614020225.24654-2-airlied@gmail.com> References: <20170614020225.24654-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170614020225.24654-1-airlied@gmail.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, amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgaW50ZXJmYWNlIHdp bGwgYWxsb3cgc3luYyBvYmplY3QgdG8gYmUgdXNlZCB0byBiYWNrClZ1bGthbiBmZW5jZXMuIFRo aXMgQVBJIGlzIHByZXR0eSBtdWNoIHRoZSB2dWxrYW4gZmVuY2Ugd2FpdGluZwpBUEksIGFuZCBJ J3ZlIHBvcnRlZCB0aGUgY29kZSBmcm9tIGFtZGdwdS4KCnYyOiBhY2NlcHQgcmVsYXRpdmUgdGlt ZW91dCwgcGFzcyByZW1haW5pbmcgdGltZSBiYWNrCnRvIHVzZXJzcGFjZS4KdjM6IHJldHVybiB0 byBhYnNvbHV0ZSB0aW1lb3V0cy4KdjQ6IGFic29sdXRlIHplcm8gPSBwb2xsLAogICAgcmV3cml0 ZSBhbnkvYWxsIGNvZGUgdG8gaGF2ZSBzYW1lIG9wZXJhdGlvbiBmb3IgYXJyYXlzCiAgICByZXR1 cm4gLUVJTlZBTCBmb3IgMCBmZW5jZXMuCnY0LjE6IGZpeHVwIGZlbmNlcyBhbGxvY2F0aW9uIGNo ZWNrLCB1c2UgdTY0X3RvX3VzZXJfcHRyCnY1OiBtb3ZlIHRvIHNlYy9uc2VjLCBhbmQgdXNlIHRp bWVzcGVjNjQgZm9yIGNhbGNzLgoKU2lnbmVkLW9mZi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRA cmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggfCAgIDIgKwog ZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9k cm1fc3luY29iai5jICB8IDE0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogaW5jbHVkZS91YXBpL2RybS9kcm0uaCAgICAgICAgIHwgIDEzICsrKysKIDQgZmlsZXMg Y2hhbmdlZCwgMTU5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggM2Zk ZWYyYy4uNTNlM2Y2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaApAQCAtMTU2LDMgKzE1Niw1IEBA IGludCBkcm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CiBp bnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOworaW50 IGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKKwkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpp bmRleCBmMWU1NjgxLi4zODVjZTc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lv Y3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCkBAIC02NTcsNiArNjU3LDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7CiAJ CSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERS TV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRSwgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lv Y3RsLAogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RM X0RFRihEUk1fSU9DVExfU1lOQ09CSl9XQUlULCBkcm1fc3luY29ial93YWl0X2lvY3RsLAorCQkg ICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiB9OwogCiAjZGVmaW5lIERSTV9D T1JFX0lPQ1RMX0NPVU5UCUFSUkFZX1NJWkUoIGRybV9pb2N0bHMgKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmou YwppbmRleCA4OTQ0MWJjLi4zYjc3MTI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X3N5bmNvYmouYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwpAQCAtMSw1ICsx LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgMjAxNyBSZWQgSGF0CisgKiBQYXJ0cyBwb3J0ZWQgZnJv bSBhbWRncHUgKGZlbmNlIHdhaXQgY29kZSkuCisgKiBDb3B5cmlnaHQgMjAxNiBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuCiAgKgogICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKICAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksCkBAIC0zMSw2ICszMyw5IEBACiAgKiB0aGF0IGNvbnRhaW4gYW4gb3B0aW9uYWwgZmVu Y2UuIFRoZSBmZW5jZSBjYW4gYmUgdXBkYXRlZCB3aXRoIGEgbmV3CiAgKiBmZW5jZSwgb3IgYmUg TlVMTC4KICAqCisgKiBzeW5jb2JqJ3MgY2FuIGJlIHdhaXRlZCB1cG9uLCB3aGVyZSBpdCB3aWxs IHdhaXQgZm9yIHRoZSB1bmRlcmx5aW5nCisgKiBmZW5jZS4KKyAqCiAgKiBzeW5jb2JqJ3MgY2Fu IGJlIGV4cG9ydCB0byBmZCdzIGFuZCBiYWNrLCB0aGVzZSBmZCdzIGFyZSBvcGFxdWUgYW5kCiAg KiBoYXZlIG5vIG90aGVyIHVzZSBjYXNlLCBleGNlcHQgcGFzc2luZyB0aGUgc3luY29iaiBiZXR3 ZWVuIHByb2Nlc3Nlcy4KICAqCkBAIC00NTEsMyArNDU2LDE0MCBAQCBkcm1fc3luY29ial9mZF90 b19oYW5kbGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlyZXR1 cm4gZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlKGZpbGVfcHJpdmF0ZSwgYXJncy0+ZmQsCiAJCQkJ CSZhcmdzLT5oYW5kbGUpOwogfQorCisKKy8qKgorICogZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZp ZXMgLSBjYWxjdWxhdGUgamlmZmllcyB0aW1lb3V0IGZyb20gYWJzb2x1dGUgdmFsdWUKKyAqCisg KiBAdGltZW91dF9zZWM6IHRpbWVvdXQgc2VjIGNvbXBvbmVudCwgMCBmb3IgcG9sbAorICogQHRp bWVvdXRfbnNlYzogdGltZW91dCBuc2VjIGNvbXBvbmVudCBpbiBucywgMCBmb3IgcG9sbAorICog Ym90aCBtdXN0IGJlIDAgZm9yIHBvbGwuCisgKgorICogQ2FsY3VsYXRlIHRoZSB0aW1lb3V0IGlu IGppZmZpZXMgZnJvbSBhbiBhYnNvbHV0ZSB0aW1lIGluIHNlYy9uc2VjLgorICovCitzdGF0aWMg dW5zaWduZWQgbG9uZyBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyhpbnQ2NF90IHRpbWVvdXRf c2VjLCB1aW50NjRfdCB0aW1lb3V0X25zZWMpCit7CisJc3RydWN0IHRpbWVzcGVjNjQgYWJzX3Rp bWVvdXQsIHRpbWVvdXQsIG1heF9qaWZmeV90aW1lc3BlYzsKKwl1bnNpZ25lZCBsb25nIHRpbWVv dXRfamlmZmllczsKKworCS8qIG1ha2UgMCB0aW1lb3V0IG1lYW5zIHBvbGwgLSBhYnNvbHV0ZSAw IGRvZXNuJ3Qgc2VlbSB2YWxpZCAqLworCWlmICh0aW1lb3V0X3NlYyA9PSAwICYmIHRpbWVvdXRf bnNlYyA9PSAwKQorCQlyZXR1cm4gMDsKKworCWFic190aW1lb3V0LnR2X3NlYyA9IHRpbWVvdXRf c2VjOworCWFic190aW1lb3V0LnR2X25zZWMgPSB0aW1lb3V0X25zZWM7CisKKwkvKiBjbGFtcCB0 aW1lb3V0IGlmIGl0J3MgdG8gbGFyZ2UgKi8KKwlpZiAoIXRpbWVzcGVjNjRfdmFsaWRfc3RyaWN0 KCZhYnNfdGltZW91dCkpCisJCXJldHVybiBNQVhfU0NIRURVTEVfVElNRU9VVCAtIDE7CisKKwl0 aW1lb3V0ID0gdGltZXNwZWM2NF9zdWIoYWJzX3RpbWVvdXQsIGt0aW1lX3RvX3RpbWVzcGVjNjQo a3RpbWVfZ2V0KCkpKTsKKwlpZiAoIXRpbWVzcGVjNjRfdmFsaWQoJnRpbWVvdXQpKQorCQlyZXR1 cm4gMDsKKworCWppZmZpZXNfdG9fdGltZXNwZWM2NChNQVhfSklGRllfT0ZGU0VULCAmbWF4X2pp ZmZ5X3RpbWVzcGVjKTsKKwlpZiAodGltZXNwZWM2NF9jb21wYXJlKCZ0aW1lb3V0LCAmbWF4X2pp ZmZ5X3RpbWVzcGVjKSA+PSAwKQorCQlyZXR1cm4gTUFYX1NDSEVEVUxFX1RJTUVPVVQgLSAxOwor CisJdGltZW91dF9qaWZmaWVzID0gdGltZXNwZWM2NF90b19qaWZmaWVzKCZ0aW1lb3V0KTsKKwkv KiAgY2xhbXAgdGltZW91dCB0byBhdm9pZCBpbmZpbml0ZSB0aW1lb3V0ICovCisJaWYgKHRpbWVv dXRfamlmZmllcyA+PSBNQVhfU0NIRURVTEVfVElNRU9VVCkKKwkJcmV0dXJuIE1BWF9TQ0hFRFVM RV9USU1FT1VUIC0gMTsKKworCXJldHVybiB0aW1lb3V0X2ppZmZpZXMgKyAxOworfQorCitzdGF0 aWMgaW50IGRybV9zeW5jb2JqX3dhaXRfZmVuY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJ CQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkJICAgc3RydWN0IGRybV9z eW5jb2JqX3dhaXQgKndhaXQsCisJCQkJICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlcykKK3sK Kwl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0 LT50aW1lb3V0X3NlYywgd2FpdC0+dGltZW91dF9uc2VjKTsKKwlpbnQgcmV0ID0gMDsKKwl1aW50 MzJfdCBmaXJzdCA9IH4wOworCisJaWYgKHdhaXQtPmZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9G TEFHU19XQUlUX0FMTCkgeworCQlpbnQgaTsKKwkJZm9yIChpID0gMDsgaSA8IHdhaXQtPmNvdW50 X2hhbmRsZXM7IGkrKykgeworCQkJcmV0ID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmZW5jZXNb aV0sIHRydWUsIHRpbWVvdXQpOworCisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0Owor CQkJaWYgKHJldCA9PSAwKQorCQkJCWJyZWFrOworCQkJdGltZW91dCA9IHJldDsKKwkJfQorCQlm aXJzdCA9IDA7CisJfSBlbHNlIHsKKwkJcmV0ID0gZG1hX2ZlbmNlX3dhaXRfYW55X3RpbWVvdXQo ZmVuY2VzLAorCQkJCQkJIHdhaXQtPmNvdW50X2hhbmRsZXMsCisJCQkJCQkgdHJ1ZSwgdGltZW91 dCwKKwkJCQkJCSAmZmlyc3QpOworCX0KKworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0Owor CisJd2FpdC0+b3V0X3N0YXR1cyA9IChyZXQgPiAwKTsKKwl3YWl0LT5maXJzdF9zaWduYWxlZCA9 IGZpcnN0OworCXJldHVybiAwOworfQorCitpbnQKK2RybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2YXRlKQoreworCXN0cnVjdCBkcm1fc3luY29ial93YWl0ICphcmdzID0gZGF0 YTsKKwl1aW50MzJfdCAqaGFuZGxlczsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzOworCWlu dCByZXQgPSAwOworCWludCBpOworCisJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwg RFJJVkVSX1NZTkNPQkopKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmIChhcmdzLT5mbGFncyAh PSAwICYmIGFyZ3MtPmZsYWdzICE9IERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwpCisJ CXJldHVybiAtRUlOVkFMOworCisJaWYgKGFyZ3MtPmNvdW50X2hhbmRsZXMgPT0gMCkKKwkJcmV0 dXJuIC1FSU5WQUw7CisKKwkvKiBHZXQgdGhlIGhhbmRsZXMgZnJvbSB1c2Vyc3BhY2UgKi8KKwlo YW5kbGVzID0ga21hbGxvY19hcnJheShhcmdzLT5jb3VudF9oYW5kbGVzLCBzaXplb2YodWludDMy X3QpLAorCQkJCUdGUF9LRVJORUwpOworCWlmIChoYW5kbGVzID09IE5VTEwpCisJCXJldHVybiAt RU5PTUVNOworCisJaWYgKGNvcHlfZnJvbV91c2VyKGhhbmRsZXMsCisJCQkgICB1NjRfdG9fdXNl cl9wdHIoYXJncy0+aGFuZGxlcyksCisJCQkgICBzaXplb2YodWludDMyX3QpICogYXJncy0+Y291 bnRfaGFuZGxlcykpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBlcnJfZnJlZV9oYW5kbGVz OworCX0KKworCWZlbmNlcyA9IGtjYWxsb2MoYXJncy0+Y291bnRfaGFuZGxlcywKKwkJCSBzaXpl b2Yoc3RydWN0IGRtYV9mZW5jZSAqKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFmZW5jZXMpIHsKKwkJ cmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfZnJlZV9oYW5kbGVzOworCX0KKworCWZvciAoaSA9 IDA7IGkgPCBhcmdzLT5jb3VudF9oYW5kbGVzOyBpKyspIHsKKwkJcmV0ID0gZHJtX3N5bmNvYmpf ZmVuY2VfZ2V0KGZpbGVfcHJpdmF0ZSwgaGFuZGxlc1tpXSwKKwkJCQkJICAgICZmZW5jZXNbaV0p OworCQlpZiAocmV0KQorCQkJZ290byBlcnJfZnJlZV9mZW5jZV9hcnJheTsKKwl9CisKKwlyZXQg PSBkcm1fc3luY29ial93YWl0X2ZlbmNlcyhkZXYsIGZpbGVfcHJpdmF0ZSwKKwkJCQkgICAgICBh cmdzLCBmZW5jZXMpOworCitlcnJfZnJlZV9mZW5jZV9hcnJheToKKwlmb3IgKGkgPSAwOyBpIDwg YXJncy0+Y291bnRfaGFuZGxlczsgaSsrKQorCQlkbWFfZmVuY2VfcHV0KGZlbmNlc1tpXSk7CisJ a2ZyZWUoZmVuY2VzKTsKK2Vycl9mcmVlX2hhbmRsZXM6CisJa2ZyZWUoaGFuZGxlcyk7CisKKwly ZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaCBiL2luY2x1 ZGUvdWFwaS9kcm0vZHJtLmgKaW5kZXggMTAxNTkzYS4uMTQzNjNhNiAxMDA2NDQKLS0tIGEvaW5j bHVkZS91YXBpL2RybS9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCkBAIC03MTgs NiArNzE4LDE4IEBAIHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUgewogCV9fdTMyIHBhZDsKIH07 CiAKKyNkZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCAoMSA8PCAwKQorc3Ry dWN0IGRybV9zeW5jb2JqX3dhaXQgeworCV9fdTY0IGhhbmRsZXM7CisJLyogYWJzb2x1dGUgdGlt ZW91dCAqLworCV9fczY0IHRpbWVvdXRfc2VjOworCV9fczY0IHRpbWVvdXRfbnNlYzsKKwlfX3Uz MiBjb3VudF9oYW5kbGVzOworCV9fdTMyIGZsYWdzOworCV9fdTMyIG91dF9zdGF0dXM7CisJX191 MzIgZmlyc3Rfc2lnbmFsZWQ7IC8qIG9uIHZhbGlkIHdoZW4gbm90IHdhaXRpbmcgYWxsICovCit9 OworCiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0KICNlbmRpZgpAQCAtODQwLDYgKzg1Miw3 IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9ERVNUUk9ZCURSTV9J T1dSKDB4QzAsIHN0cnVjdCBkcm1fc3luY29ial9kZXN0cm95KQogI2RlZmluZSBEUk1fSU9DVExf U1lOQ09CSl9IQU5ETEVfVE9fRkQJRFJNX0lPV1IoMHhDMSwgc3RydWN0IGRybV9zeW5jb2JqX2hh bmRsZSkKICNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfRkRfVE9fSEFORExFCURSTV9JT1dSKDB4 QzIsIHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUpCisjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JK X1dBSVQJCURSTV9JT1dSKDB4QzMsIHN0cnVjdCBkcm1fc3luY29ial93YWl0KQogCiAvKioKICAq IERldmljZSBzcGVjaWZpYyBpb2N0bHMgc2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2 ZSBoZWFkZXJzCi0tIAoyLjkuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==