From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [PATCH v9 1/6] drm/i915: Add per context timelines for fence objects Date: Thu, 9 Jun 2016 17:08:43 +0100 Message-ID: <3a9573ae-0ddb-e981-022e-95d1ec9ef84c@Intel.com> References: <1464800848-36672-1-git-send-email-John.C.Harrison@Intel.com> <1464800848-36672-2-git-send-email-John.C.Harrison@Intel.com> <57500A61.20704@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 417C56E354 for ; Thu, 9 Jun 2016 16:09:09 +0000 (UTC) In-Reply-To: <57500A61.20704@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMDIvMDYvMjAxNiAxMToyOCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4KPiBPbiAwMS8wNi8x NiAxODowNywgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPj4gRnJvbTogSm9obiBI YXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPj4KPj4gVGhlIHB1cnBvc2Ugb2Yg dGhpcyBwYXRjaCBzZXJpZXMgaXMgdG8gY29udmVydCB0aGUgcmVxdXN0IHN0cnVjdHVyZSB0bwo+ PiB1c2UgZmVuY2Ugb2JqZWN0cyBmb3IgdGhlIHVuZGVybHlpbmcgY29tcGxldGlvbiB0cmFja2lu Zy4gVGhlIGZlbmNlCj4+IG9iamVjdCByZXF1aXJlcyBhIHNlcXVlbmNlIG51bWJlci4gVGhlIHVs dGltYXRlIGFpbSBpcyB0byB1c2UgdGhlIHNhbWUKPj4gc2VxdWVuY2UgbnVtYmVyIGFzIGZvciB0 aGUgcmVxdWVzdCBpdHNlbGYgKG9yIHJhdGhlciwgdG8gcmVtb3ZlIHRoZQo+PiByZXF1ZXN0J3Mg c2Vxbm8gZmllbGQgYW5kIGp1c3QgdXNlIHRoZSBmZW5jZSdzIHZhbHVlIHRocm91Z2hvdXQgdGhl Cj4+IGRyaXZlcikuIEhvd2V2ZXIsIHRoaXMgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSBhbmQg c28gdGhpcyBwYXRjaAo+PiBpbnRyb2R1Y2VzIGEgc2VwYXJhdGUgbnVtYmVyaW5nIHNjaGVtZSBh cyBhbiBpbnRlcm1lZGlhdGUgc3RlcC4KPj4KPj4gQSBtYWpvciBhZHZhbnRhZ2Ugb2YgdXNpbmcg dGhlIGZlbmNlIG9iamVjdCBpcyB0aGF0IGl0IGNhbiBiZSBwYXNzZWQKPj4gb3V0c2lkZSBvZiB0 aGUgaTkxNSBkcml2ZXIgYW5kIHVzZWQgZXh0ZXJuYWxseS4gVGhlIGZlbmNlIEFQSSBhbGxvd3MK Pj4gZm9yIHZhcmlvdXMgb3BlcmF0aW9ucyBzdWNoIGFzIGNvbWJpbmluZyBtdWx0aXBsZSBmZW5j ZXMuIFRoaXMKPj4gcmVxdWlyZXMgdGhhdCBmZW5jZSBzZXFub3Mgd2l0aGluIGEgc2luZ2xlIGZl bmNlIGNvbnRleHQgYmUgZ3VhcmFudGVlZAo+PiBpbi1vcmRlci4gVGhlIEdQVSBzY2hlZHVsZXIg dGhhdCBpcyBjb21pbmcgY2FuIHJlLW9yZGVyIHJlcXVlc3QKPj4gZXhlY3V0aW9uIGJ1dCBub3Qg d2l0aGluIGEgc2luZ2xlIEdQVSBjb250ZXh0LiBUaHVzIHRoZSBmZW5jZSBjb250ZXh0Cj4+IG11 c3QgYmUgdGllZCB0byB0aGUgaTkxNSBjb250ZXh0IChhbmQgdGhlIGVuZ2luZSB3aXRoaW4gdGhl IGNvbnRleHQgYXMKPj4gZWFjaCBlbmdpbmUgcnVucyBhc3luY2hyb25vdXNseSkuCj4+Cj4+IE9u IHRoZSBvdGhlciBoYW5kLCB0aGUgZHJpdmVyIGFzIGEgd2hvbGUgY3VycmVudGx5IG9ubHkgd29y a3Mgd2l0aAo+PiByZXF1ZXN0IHNlcW5vcyB0aGF0IGFyZSBhbGxvY2F0ZWQgZnJvbSBhIGdsb2Jh bCBpbi1vcmRlciB0aW1lbGluZS4gSXQKPj4gd2lsbCByZXF1aXJlIGEgZmFpciBjaHVuayBvZiBy ZS13b3JrIHRvIGFsbG93IG11bHRpcGxlIGluZGVwZW5kZW50Cj4+IHNlcW5vIHRpbWVsaW5lcyB0 byBiZSB1c2VkLiBIZW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIGEgdGVtcG9yYXJ5LAo+PiBmZW5j ZSBzcGVjaWZpYyB0aW1lbGluZS4gT25jZSB0aGUgd29yayB0byB1cGRhdGUgdGhlIHJlc3Qgb2Yg dGhlCj4+IGRyaXZlciBoYXMgYmVlbiBjb21wbGV0ZWQgdGhlbiB0aGUgcmVxdWVzdCBjYW4gdXNl IHRoZSBmZW5jZSBzZXFubwo+PiBpbnN0ZWFkLgo+Pgo+PiB2MjogTmV3IHBhdGNoIGluIHNlcmll cy4KPj4KPj4gdjM6IFJlbmFtZWQvcmV0eXBlZCB0aW1lbGluZSBzdHJ1Y3R1cmUgZmllbGRzIGFm dGVyIHJldmlldyBjb21tZW50cyBieQo+PiBUdnJ0a28gVXJzdWxpbi4KPj4KPj4gQWRkZWQgY29u dGV4dCBpbmZvcm1hdGlvbiB0byB0aGUgdGltZWxpbmUncyBuYW1lIHN0cmluZyBmb3IgYmV0dGVy Cj4+IGlkZW50aWZpY2F0aW9uIGluIGRlYnVnZnMgb3V0cHV0Lgo+Pgo+PiB2NTogTGluZSB3cmFw cGluZyBhbmQgb3RoZXIgd2hpdGUgc3BhY2UgZml4ZXMgdG8ga2VlcCBzdHlsZSBjaGVja2VyCj4+ IGhhcHB5Lgo+Pgo+PiB2NzogVXBkYXRlZCB0byBuZXdlciBuaWdodGx5IChsb3RzIG9mIHJpbmcg LT4gZW5naW5lIHJlbmFtaW5nKS4KPj4KPj4gdjg6IE1vdmVkIHRvIGVhcmxpZXIgaW4gcGF0Y2gg c2VyaWVzIHNvIG5vIGxvbmdlciBuZWVkcyB0byByZW1vdmUgdGhlCj4+IHF1aWNrIGhhY2sgdGlt ZWxpbmUgdGhhdCB3YXMgYmVpbmcgYWRkZWQgYmVmb3JlLgo+Pgo+PiB2OTogVXBkYXRlZCB0byBh bm90aGVyIG5ld2VyIG5pZ2h0bHkgKGNoYW5nZXMgdG8gY29udGV4dCBzdHJ1Y3R1cmUKPj4gbmFt aW5nKS4gQWxzbyB1cGRhdGVkIGNvbW1pdCBtZXNzYWdlIHRvIG1hdGNoIHByZXZpb3VzIGNoYW5n ZXMuCj4+Cj4+IEZvcjogVklaLTUxOTAKPj4gU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8 Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28u dXJzdWxpbkBpbnRlbC5jb20+Cj4+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5r aG9yc3RAbGludXguaW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICAgICAgfCAxNCArKysrKysrKysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA0MCAKPj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwg MTYgKysrKysrKysrKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAg ICAgICB8ICA4ICsrKysrKysKPj4gICA0IGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKykK Pj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggCj4+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRleCAyYTg4YTQ2Li5hNWY4YWQ4 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gQEAgLTgzMSw2ICs4MzEsMTkgQEAg c3RydWN0IGk5MTVfY3R4X2hhbmdfc3RhdHMgewo+PiAgICAgICBib29sIGJhbm5lZDsKPj4gICB9 Owo+Pgo+PiArc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgewo+PiArICAgIGNoYXIgICAgICAg IG5hbWVbMzJdOwo+PiArICAgIHVuc2lnbmVkICAgIGZlbmNlX2NvbnRleHQ7Cj4+ICsgICAgdW5z aWduZWQgICAgbmV4dDsKPj4gKwo+PiArICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7 Cj4+ICsgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+Cj4gQXJlIHRoZXNlIGJh Y2twb2ludGVycyB1c2VkIGluIHRoZSBwYXRjaCBzZXJpZXM/IEkgZGlkIGEgcXVpY2sgc2VhcmNo IAo+IHdpdGggdGhlICJ0aW1lbGluZS0+IiBzdHJpbmcgYW5kIGRpZCBub3QgZmluZCBhbnl0aGlu Zy4KSG1tLCBub3QgYW55IG1vcmUgaXQgc2VlbXMuIFdpbGwgcmVtb3ZlIHRoZW0uCgo+Cj4+ICt9 Owo+PiArCj4+ICtpbnQgaTkxNV9jcmVhdGVfZmVuY2VfdGltZWxpbmUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPj4gKyAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4LAo+PiArICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp Owo+PiArCj4+ICAgLyogVGhpcyBtdXN0IG1hdGNoIHVwIHdpdGggdGhlIHZhbHVlIHByZXZpb3Vz bHkgdXNlZCBmb3IgCj4+IGV4ZWNidWYyLnJzdmQxLiAqLwo+PiAgICNkZWZpbmUgREVGQVVMVF9D T05URVhUX0hBTkRMRSAwCj4+Cj4+IEBAIC04NzUsNiArODg4LDcgQEAgc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgewo+PiAgICAgICAgICAgdTY0IGxyY19kZXNjOwo+PiAgICAgICAgICAgaW50IHBp bl9jb3VudDsKPj4gICAgICAgICAgIGJvb2wgaW5pdGlhbGlzZWQ7Cj4+ICsgICAgICAgIHN0cnVj dCBpOTE1X2ZlbmNlX3RpbWVsaW5lIGZlbmNlX3RpbWVsaW5lOwo+PiAgICAgICB9IGVuZ2luZVtJ OTE1X05VTV9FTkdJTkVTXTsKPj4KPj4gICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaW5rOwo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAKPj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+IGluZGV4IDVmZmM2ZmEuLjU3ZDM1OTMgMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+PiBAQCAtMjc0Myw2ICsyNzQzLDQ2IEBAIHZvaWQg aTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+PiAgICAgICBrbWVt X2NhY2hlX2ZyZWUocmVxLT5pOTE1LT5yZXF1ZXN0cywgcmVxKTsKPj4gICB9Cj4+Cj4+ICtpbnQg aTkxNV9jcmVhdGVfZmVuY2VfdGltZWxpbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPgo+IGRl diBpcyBub3QgdXNlZCBpbiB0aGUgZnVuY3Rpb24uIE1heWJlIGl0IHdpbGwgYmUgaW4gbGF0ZXIg cGF0Y2hlcz8gSW4gCj4gd2hpY2ggY2FzZSBJIHRoaW5rIGRldl9wcml2IGlzIHRoZSBjdXJyZW50 IGJrbSBmb3IgaTkxNSAKPiBzcGVjaWZpYy9pbnRlcm5hbCBjb2RlLgpBZ2FpbiwgaXQgaXMgbGVm dCBvdmVyIGZyb20gYSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBhbmQgY291bGQgYWN0dWFsbHkg CmJlIHJlbW92ZWQuCgo+Cj4+ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCwKPj4gKyAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4+ICt7Cj4+ICsgICAgc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgKnRpbWVs aW5lOwo+PiArCj4+ICsgICAgdGltZWxpbmUgPSAmY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uZmVu Y2VfdGltZWxpbmU7Cj4+ICsKPj4gKyAgICBpZiAodGltZWxpbmUtPmVuZ2luZSkKPj4gKyAgICAg ICAgcmV0dXJuIDA7Cj4KPiBJcyB0aGlzIGFuIGV4cGVjdGVkIGNhc2U/IFVubGVzcyBJIGFtIG1p c3Npbmcgc29tZXRoaW5nIGl0IHNob3VsZG4ndCAKPiBiZSBzbyBtYXliZSBhIFdBUk5fT04gd291 bGQgYmUgd2FycmFudGVkPwpOby4gV2lsbCBtYWtlIGl0IGEgV0FSTiBpbnN0ZWFkLgoKPgo+PiAr Cj4+ICsgICAgdGltZWxpbmUtPmZlbmNlX2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEp Owo+PiArCj4+ICsgICAgLyoKPj4gKyAgICAgKiBTdGFydCB0aGUgdGltZWxpbmUgZnJvbSBzZXFu byAwIGFzIHRoaXMgaXMgYSBzcGVjaWFsIHZhbHVlCj4+ICsgICAgICogdGhhdCBpcyByZXNlcnZl ZCBmb3IgaW52YWxpZCBzeW5jIHBvaW50cy4KPj4gKyAgICAgKi8KPgo+IENvbW1lbnQgYW5kIGlu aXQgdG8gMSBiZWxvdyBsb29rIGluIGRpc2FncmVlbWVudC4gTWF5YmUgY29tbWVudCBzaG91bGQg Cj4gYmUgc29tZXRoaW5nIGxpa2UgIlN0YXJ0IHRoZSB0aW1lbGluZSBmcm9tIHNlcW5vIDEgYXMg MCBpcyBhIHNwZWNpYWwgCj4gdmFsdWUuLiIgPwpIbW0gbm90IHN1cmUgd2hhdCBoYXBwZW5lZCB0 aGVyZS4gV2lsbCB1cGRhdGUgdGhlIGNvbW1lbnQgc28gaXQgYWN0dWFsbHkgCm1ha2VzIHNlbnNl LgoKPgo+PiArICAgIHRpbWVsaW5lLT5uZXh0ICAgICAgID0gMTsKPj4gKyAgICB0aW1lbGluZS0+ Y3R4ICAgICAgICA9IGN0eDsKPj4gKyAgICB0aW1lbGluZS0+ZW5naW5lICAgICA9IGVuZ2luZTsK Pj4gKwo+PiArICAgIHNucHJpbnRmKHRpbWVsaW5lLT5uYW1lLCBzaXplb2YodGltZWxpbmUtPm5h bWUpLCAiJWQ+JXM6JWQiLAo+PiArICAgICAgICAgdGltZWxpbmUtPmZlbmNlX2NvbnRleHQsIGVu Z2luZS0+bmFtZSwgY3R4LT51c2VyX2hhbmRsZSk7Cj4+ICsKPgo+IEZvciByaW5ncyBsaWtlICJ2 aWRlbyBlbmhhbmNlbWVudCByaW5nIiBuYW1lIGlzIDIyIGNoYXJzIG9uIGl0cyBvd24sIAo+IGxl YXZpbmcgb25seSA5IGZvciB0aGUgdHdvIGludGVnZXJzLiBJZiBhIGxvdCBvZiBjb250ZXh0cyBv ciBsb25nIAo+IHJ1bnRpbWUgSSBzdXBwb3NlIHRoYXQgY291bGQgb3ZlcmZsb3cuIEl0IGlzIGEg Yml0IG9mIGEgc3RyZXRjaCBidXQgCj4gcGVyaGFwcyAzMiBpcyBub3QgZW5vdWdoLCBtYXliZSBh dmFpbGFibGUgc3BhY2UgZm9yIHRoZSBuYW1lIHNob3VsZCBiZSAKPiBiZXR0ZXIgZGVmaW5lZCBh cyBsb25nZXN0IHJpbmcgbmFtZSAod2l0aCBhIGNvbW1lbnQpIHBsdXMgbWF4aW11bSBmb3IgCj4g dHdvIGludGVnZXJzLgo+Cj4gSSB0aGluayB0aW1lbGluZS0+bmFtZSBpcyBvbmx5IGZvciBkZWJ1 ZyBidXQgc3RpbGwgZmVlbHMgYmV0dGVyIHRvIAo+IG1ha2Ugc3VyZSBpdCB3aWxsIGZpdCByYXRo ZXIgdGhhbiB0cnVuY2F0ZSBpdC4KWWVzLCBpdCBpcyBvbmx5IHVzZWQgZm9yIGRlYnVnIHB1cnBv c2VzICh0cmFjZSBldmVudHMgYW5kIGRlYnVnZnMgc3RhdGUgCmR1bXApLiBUaGVyZSBpcyBubyAn bWF4aW11bSByaW5nIG5hbWUgbGVuZ3RoJyB2YWx1ZSBhbnl3aGVyZSBpcyB0aGVyZT8gCkFuZCBt YWtpbmcgaXQgYSBkeW5hbWljIGFsbG9jYXRpb24gc2VlbXMgbGlrZSBleGNlc3NpdmUgY29tcGxp Y2F0aW9uIGZvciAKYSBkZWJ1ZyBzdHJpbmcuIEkgY291bGQgYnVtcCB0aGUgc3RhdGljIHNpemUg dXAgdG8gNDAgb3IgbWF5YmUgNjQ/Cgo+Cj4gQW5kIHdlIHNob3VsZCBwcm9hYmx5IGp1c3Qgc2hv cnRlbiB0aGUgInZpZGVvIGVuaGFuY2VtZW50IHJpbmciIHRvIAo+ICJ2ZWNzIHJpbmciLi4uCkkg Z2VuZXJhbGx5IHJ1biB3aXRoIGEgbG9jYWwgcGF0Y2ggdG8gY29udmVydCBhbGwgcmluZyBuYW1l cyB0byBhIFRMQSAKKFJDUywgQkNTLCBldGMuKSBqdXN0IHRvIG1ha2UgdGhlIGRlYnVnIG91dHB1 dCBtb3JlIHJlYWRhYmxlLgoKPgo+PiArICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICt1bnNp Z25lZCBpOTE1X2ZlbmNlX3RpbWVsaW5lX2dldF9uZXh0X3NlcW5vKHN0cnVjdCAKPj4gaTkxNV9m ZW5jZV90aW1lbGluZSAqdGltZWxpbmUpCj4KPiBJdCBpcyBzdHJhbmdlIHRvIGFkZCBhIHB1Ymxp YyBmdW5jdGlvbiBpbiB0aGlzIHBhdGNoIHdoaWNoIGlzIGV2ZW4gCj4gdW51c2VkIGVzcGVjaWFs bHkgc2luY2UgdGhlIGZvbGxvd2luZyBwYXRjaCBtYWtlcyBpdCBwcml2YXRlLgo+Cj4gV291bGQg aXQgbWFrZSBtb3JlIHNlbnNlIGZvciBpdCB0byBiZSBzdGF0aWMgc3RyYWlnaHQgYXdheSBhbmQg bWF5YmUgCj4gZXZlbiBjYWxsZWQgZnJvbSBfX2k5MTVfZ2VtX3JlcXVlc3RfYWxsb2MgdW5jb25k aXRpb25hbGx5IHNvIHRoYXQgdGhlIAo+IHBhdGNoIGRvZXMgbm90IGFkZCBkZWFkIGNvZGU/CgpJ dCdzIHRoZSBvbGQgcXVlc3Rpb24gb2YgaG93IHRvIHNwbGl0IGEgc2VyaWVzIHVwIGludG8gcGF0 Y2hlcyB0aGF0IApkb24ndCBkbyBldmVyeXRoaW5nIGFsbCBhdCBvbmNlIGJ1dCBzdGlsbCBtYWtl IHNlbnNlIGluZGl2aWR1YWxseS4gSSAKdGhpbmsgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byBpbmNs dWRlIHRoZSBjb2RlIGluIHRoaXMgcHJlcCBwYXRjaCBhcyBpdCAKaXMgYSByYXRoZXIgZnVuZGFt ZW50YWwgcGFydCBvZiB0aGUgdGltZWxpbmUgY29kZS4gSG93ZXZlciwgYXMgbm9uZSBvZiAKaXQg aXMgd2lyZWQgdXAgeWV0IGl0IGNhbid0IGJlIG1hZGUgc3RhdGljLiBUaGUgbmV4dCBwYXRjaCBo b29rcyB1cCB0aGUgCnRpbWVsaW5lIGNvZGUgaW50byB2YXJpb3VzIHBsYWNlcyBhdCB3aGljaCBw b2ludCBpdCB0aGlzIGZ1bmN0aW9uIGNhbiAKYmVjb21lIHN0YXRpYyBiZWNhdXNlIGl0IGlzIG9u bHkgdXNlZCBpbiB0aGUgZmlsZS4gSSBjb3VsZCBiZSBkb25lIApkaWZmZXJlbnRseSBidXQgdGhp cyBzZWVtZWQgbGlrZSB0aGUgbW9zdCBzZW5zaWJsZSBvcHRpb24gdG8gbWUuCgo+IERvbid0IGtu b3csIG5vdCB0ZXJyaWJseSBpbXBvcnRhbnQgYnV0IHdvdWxkIHBlcmhhcHMgbG9vayBtb3JlIGxv Z2ljYWwgCj4gYXMgYSBwYXRjaCBzZXJpZXMuCj4KPj4gK3sKPj4gKyAgICB1bnNpZ25lZCBzZXFu bzsKPj4gKwo+PiArICAgIHNlcW5vID0gdGltZWxpbmUtPm5leHQ7Cj4+ICsKPj4gKyAgICAvKiBS ZXNlcnZlIHplcm8gZm9yIGludmFsaWQgKi8KPj4gKyAgICBpZiAoKyt0aW1lbGluZS0+bmV4dCA9 PSAwKQo+PiArICAgICAgICB0aW1lbGluZS0+bmV4dCA9IDE7Cj4+ICsKPj4gKyAgICByZXR1cm4g c2Vxbm87Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgaW5saW5lIGludAo+PiAgIF9faTkxNV9nZW1f cmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4+ICAgICAgICAg ICAgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgCj4+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4+IGluZGV4IGQwZTdmYzYuLjA3ZDhjNjMgMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPj4gQEAgLTMyMCw2ICsz MjAsMjIgQEAgaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK Pj4gICAgICAgaWYgKElTX0VSUihjdHgpKQo+PiAgICAgICAgICAgcmV0dXJuIGN0eDsKPj4KPj4g KyAgICBpZiAoIWk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewo+PiArICAgICAgICBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4+ICsKPj4gKyAgICAgICAgLyogQ3JlYXRlIGEgcGVyIGNv bnRleHQgdGltZWxpbmUgZm9yIGZlbmNlcyAqLwo+PiArICAgICAgICBmb3JfZWFjaF9lbmdpbmUo ZW5naW5lLCB0b19pOTE1KGRldikpIHsKPj4gKyAgICAgICAgICAgIGludCByZXQgPSBpOTE1X2Ny ZWF0ZV9mZW5jZV90aW1lbGluZShkZXYsIGN0eCwgZW5naW5lKTsKPj4gKyAgICAgICAgICAgIGlm IChyZXQpIHsKPj4gKyAgICAgICAgICAgICAgICBEUk1fRVJST1IoIkZlbmNlIHRpbWVsaW5lIGNy ZWF0aW9uIGZhaWxlZCBmb3IgbGVnYWN5IAo+PiAlczogJXBcbiIsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgZW5naW5lLT5uYW1lLCBjdHgpOwo+PiArICAgICAgICAgICAgICAgIGlkcl9yZW1v dmUoJmZpbGVfcHJpdi0+Y29udGV4dF9pZHIsIGN0eC0+dXNlcl9oYW5kbGUpOwo+PiArICAgICAg ICAgICAgICAgIGk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4KTsKPj4gKyAgICAgICAg ICAgICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwo+PiArICAgICAgICAgICAgfQo+PiArICAgICAg ICB9Cj4+ICsgICAgfQo+PiArCj4+ICAgICAgIGlmIChVU0VTX0ZVTExfUFBHVFQoZGV2KSkgewo+ PiAgICAgICAgICAgc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gaTkxNV9wcGd0dF9jcmVh dGUoZGV2LCAKPj4gZmlsZV9wcml2KTsKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j Cj4+IGluZGV4IDVjMTkxYTEuLjE0YmNmYjcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCj4+IEBAIC0yNDk2LDYgKzI0OTYsMTQgQEAgc3RhdGljIGludCAKPj4gZXhlY2xpc3RzX2Nv bnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPj4gICAg ICAgICAgIGdvdG8gZXJyb3JfcmluZ2J1ZjsKPj4gICAgICAgfQo+Pgo+PiArICAgIC8qIENyZWF0 ZSBhIHBlciBjb250ZXh0IHRpbWVsaW5lIGZvciBmZW5jZXMgKi8KPj4gKyAgICByZXQgPSBpOTE1 X2NyZWF0ZV9mZW5jZV90aW1lbGluZShjdHgtPmk5MTUtPmRldiwgY3R4LCBlbmdpbmUpOwo+PiAr ICAgIGlmIChyZXQpIHsKPj4gKyAgICAgICAgRFJNX0VSUk9SKCJGZW5jZSB0aW1lbGluZSBjcmVh dGlvbiBmYWlsZWQgZm9yIGVuZ2luZSAlcywgY3R4IAo+PiAlcFxuIiwKPgo+ICJlbmdpbmUgJXMi IHdpbGwgbG9nIHNvbWV0aGluZyBsaWtlICJlbmdpbmUgcmVuZGVyIHJpbmciIHdoaWNoIHdpbGwg YmUgCj4gd2VpcmQuCj4KPiBBbHNvIHBvaW50ZXIgdG8gdGhlIGNvbnRleHQgaXMgbm90IHRoYXQg aW50ZXJlc3RpbmcgYXMgRFJNX0VSUk9SIEkgCj4gdGhpbmsuIGN0eGMtPnVzZXJfaGFuZGxlIGlu c3RlYWQ/IFNhbWUgaW4gdGhlIGxlZ2FjeSBtb2RlLgpXaWxsIGRyb3AgdGhlICdlbmdpbmUnIGFu ZCBhZGQgaW4gdXNlcl9oYW5kbGUuCgo+Cj4+ICsgICAgICAgICAgICAgIGVuZ2luZS0+bmFtZSwg Y3R4KTsKPj4gKyAgICAgICAgZ290byBlcnJvcl9yaW5nYnVmOwo+PiArICAgIH0KPj4gKwo+PiAg ICAgICBjZS0+cmluZ2J1ZiA9IHJpbmdidWY7Cj4+ICAgICAgIGNlLT5zdGF0ZSA9IGN0eF9vYmo7 Cj4+ICAgICAgIGNlLT5pbml0aWFsaXNlZCA9IGVuZ2luZS0+aW5pdF9jb250ZXh0ID09IE5VTEw7 Cj4+Cj4KPiBTbyBpbiBzdW1tYXJ5IGp1c3Qgc29tZSBtaW5vciB0aGluZ3MsIG90aGVyd2lzZSBp dCBsb29rcyBPSyBJIHRoaW5rLgo+Cj4gUmVnYXJkcywKPgo+IFR2cnRrbwo+Cj4KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=