From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9AC92C43603 for ; Wed, 4 Dec 2019 14:15:34 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 76182206DF for ; Wed, 4 Dec 2019 14:15:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 76182206DF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chris-wilson.co.uk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 088F06F4D6; Wed, 4 Dec 2019 14:15:34 +0000 (UTC) Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A7746F4D6 for ; Wed, 4 Dec 2019 14:15:32 +0000 (UTC) X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from localhost (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP (TLS) id 19457730-1500050 for multiple; Wed, 04 Dec 2019 14:15:26 +0000 MIME-Version: 1.0 From: Chris Wilson User-Agent: alot/0.6 To: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org References: <20191204112633.3649206-1-chris@chris-wilson.co.uk> <0f700d64-310c-7681-9846-71335747b6d0@linux.intel.com> In-Reply-To: <0f700d64-310c-7681-9846-71335747b6d0@linux.intel.com> Message-ID: <157546892697.19640.16716773986205508998@skylake-alporthouse-com> Date: Wed, 04 Dec 2019 14:15:27 +0000 Subject: Re: [Intel-gfx] [PATCH v2] drm/i915: Copy across scheduler behaviour flags across submit fences X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" UXVvdGluZyBUdnJ0a28gVXJzdWxpbiAoMjAxOS0xMi0wNCAxNDoxMjo0MikKPiAKPiBPbiAwNC8x Mi8yMDE5IDExOjI2LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiBXZSB3YW50IHRoZSBib25kZWQg cmVxdWVzdCB0byBoYXZlIHRoZSBzYW1lIHNjaGVkdWxlciBwcm9wZXJ0aWVzIGFzIGl0cwo+ID4g bWFzdGVyIHNvIHRoYXQgaXQgaXMgcGxhY2VkIGF0IHRoZSBzYW1lIGRlcHRoIGluIHRoZSBxdWV1 ZS4gRm9yIGV4YW1wbGUsCj4gPiBjb25zaWRlciB3ZSBoYXZlIHJlcXVlc3RzIEEsIEIgYW5kIEIn LCB3aGVyZSBCICYgQicgYXJlIGEgYm9uZGVkIHBhaXIgdG8KPiA+IHJ1biBpbiBwYXJhbGxlbCBv biB0d28gZW5naW5lcy4KPiA+IAo+ID4gICAgICAgQSAtPiBCCj4gPiAgICAgICAgICAgICAgICAg ICAgXC0gQicKPiA+IAo+ID4gQiB3aWxsIHJ1biBhZnRlciBBIGFuZCBzbyBtYXkgYmUgc2NoZWR1 bGVkIG9uIGFuIGlkbGUgZW5naW5lIGFuZCB3YWl0IG9uCj4gPiBBIHVzaW5nIGEgc2VtYXBob3Jl LiBCJyBzZWVzIEIgYmVpbmcgZXhlY3V0ZWQgYW5kIHNvIGVudGVycyB0aGUgcXVldWUgb24KPiA+ IHRoZSBzYW1lIGVuZ2luZSBhcyBBLiBBcyBCJyBkaWQgbm90IGluaGVyaXQgdGhlIHNlbWFwaG9y ZS1jaGFpbiBmcm9tIEIsCj4gPiBpdCBtYXkgaGF2ZSBoaWdoZXIgcHJlY2VkZW5jZSB0aGFuIEEg YW5kIHNvIHByZWVtcHRzIGV4ZWN1dGlvbi4gSG93ZXZlciwKPiA+IEInIHRoZW4gc2l0cyBvbiBh IHNlbWFwaG9yZSB3YWl0aW5nIGZvciBCLCB3aG8gaXMgd2FpdGluZyBmb3IgQSwgd2hvIGlzCj4g PiBibG9ja2VkIGJ5IEIuCj4gPiAKPiA+IEVyZ28gQicgbmVlZHMgdG8gaW5oZXJpdCB0aGUgc2No ZWR1bGVyIHByb3BlcnRpZXMgZnJvbSBCIChpLmUuIHRoZQo+ID4gc2VtYXBob3JlIGNoYWluKSBz byB0aGF0IGl0IGlzIHNjaGVkdWxlZCB3aXRoIHRoZSBzYW1lIHByaW9yaXR5IGFzIEIgYW5kCj4g PiB3aWxsIG5vdCBiZSBleGVjdXRlZCBhaGVhZCBvZiBCcyBkZXBlbmRlbmNpZXMuCj4gPiAKPiA+ IEZ1cnRoZXJtb3JlLCB0byBwcmV2ZW50IHRoZSBwcmlvcml0aWVzIGNoYW5naW5nIHZpYSB0aGUg ZXhwb3NlIGZlbmNlIG9uCj4gPiBCJywgd2UgbmVlZCB0byBjb3VwbGUgaW4gdGhlIGRlcGVuZGVu Y2llcyBmb3IgUEkuIFRoaXMgcmVxdWlyZXMgdXMgdG8KPiA+IHJlbGF4IG91ciBzYW5pdHktY2hl Y2tzIHRoYXQgZGVwZW5kZW5jaWVzIGFyZSBzdHJpY3RseSBpbiBvcmRlci4KPiA+IAo+ID4gRml4 ZXM6IGVlMTEzNjkwOGU5YiAoImRybS9pOTE1L2V4ZWNsaXN0czogVmlydHVhbCBlbmdpbmUgYm9u ZGluZyIpCj4gPiBUZXN0Y2FzZTogaWd0L2dlbV9leGVjX2JhbGFuY2VyL2JvbmRlZC1jaGFpbgo+ ID4gVGVzdGNhc2U6IGlndC9nZW1fZXhlY19iYWxhbmNlci9ib25kZWQtc2VtYXBob3JlCj4gPiBT aWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiA+ IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+ID4gLS0tCj4g PiBUcmFuc2ZlciBhbnkgc2VtYXBob3JlIGRlcGVuZGVuY2llcyBhcyB3ZWxsLgo+ID4gLS0tCj4g PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jICAgfCAxMTUgKysrKysrKysr KysrKysrKysrKystLS0tLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVs ZXIuYyB8ICAgMSAtCj4gPiAgIDIgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgMjYg ZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gPiBp bmRleCAzMTA5YjhhNzliOWYuLmUwZDI0OTc3YWE5YiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlcXVlc3QuYwo+ID4gQEAgLTMwMCwxMSArMzAwLDExIEBAIHZvaWQgaTkxNV9yZXF1 ZXN0X3JldGlyZV91cHRvKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ID4gICB9Cj4gPiAgIAo+ ID4gICBzdGF0aWMgaW50Cj4gPiAtX19pOTE1X3JlcXVlc3RfYXdhaXRfZXhlY3V0aW9uKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpzaWduYWwsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZvaWQgKCpob29rKShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKnNpZ25hbCksCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmcF90IGdmcCkKPiA+ICtfX2F3YWl0X2V4 ZWN1dGlvbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKPiA+ICsgICAgICAgICAgICAgICBzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpzaWduYWwsCj4gPiArICAgICAgICAgICAgICAgdm9pZCAoKmhvb2sp KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgZG1hX2ZlbmNlICpzaWduYWwpLAo+ID4gKyAgICAgICAgICAgICAgIGdmcF90IGdm cCkKPiA+ICAgewo+ID4gICAgICAgc3RydWN0IGV4ZWN1dGVfY2IgKmNiOwo+ID4gICAKPiA+IEBA IC0zNDEsNiArMzQxLDggQEAgX19pOTE1X3JlcXVlc3RfYXdhaXRfZXhlY3V0aW9uKHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxLAo+ID4gICAgICAgfQo+ID4gICAgICAgc3Bpbl91bmxvY2tfaXJxKCZz aWduYWwtPmxvY2spOwo+ID4gICAKPiA+ICsgICAgIC8qIENvcHkgYWNyb3NzIHNlbWFwaG9yZSBz dGF0dXMgYXMgd2UgbmVlZCB0aGUgc2FtZSBiZWhhdmlvdXIgKi8KPiA+ICsgICAgIHJxLT5zY2hl ZC5mbGFncyB8PSBzaWduYWwtPnNjaGVkLmZsYWdzOwo+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiAg IH0KPiA+ICAgCj4gPiBAQCAtODI0LDMxICs4MjYsMjEgQEAgYWxyZWFkeV9idXN5d2FpdGluZyhz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiA+ICAgfQo+ID4gICAKPiA+ICAgc3RhdGljIGludAo+ ID4gLWVtaXRfc2VtYXBob3JlX3dhaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqdG8sCj4gPiAtICAg ICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpmcm9tLAo+ID4gLSAgICAgICAgICAg ICAgICAgZ2ZwX3QgZ2ZwKQo+ID4gK19fZW1pdF9zZW1hcGhvcmVfd2FpdChzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICp0bywKPiA+ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAq ZnJvbSwKPiA+ICsgICAgICAgICAgICAgICAgICAgdTMyIHNlcW5vKQo+ID4gICB7Cj4gPiAgICAg ICBjb25zdCBpbnQgaGFzX3Rva2VuID0gSU5URUxfR0VOKHRvLT5pOTE1KSA+PSAxMjsKPiA+ICAg ICAgIHUzMiBod3NwX29mZnNldDsKPiA+IC0gICAgIGludCBsZW47Cj4gPiArICAgICBpbnQgbGVu LCBlcnI7Cj4gPiAgICAgICB1MzIgKmNzOwo+ID4gICAKPiA+ICAgICAgIEdFTV9CVUdfT04oSU5U RUxfR0VOKHRvLT5pOTE1KSA8IDgpOwo+ID4gICAKPiA+IC0gICAgIC8qIEp1c3QgZW1pdCB0aGUg Zmlyc3Qgc2VtYXBob3JlIHdlIHNlZSBhcyByZXF1ZXN0IHNwYWNlIGlzIGxpbWl0ZWQuICovCj4g PiAtICAgICBpZiAoYWxyZWFkeV9idXN5d2FpdGluZyh0bykgJiBmcm9tLT5lbmdpbmUtPm1hc2sp Cj4gPiAtICAgICAgICAgICAgIGdvdG8gYXdhaXRfZmVuY2U7Cj4gPiAtCj4gPiAtICAgICBpZiAo aTkxNV9yZXF1ZXN0X2F3YWl0X3N0YXJ0KHRvLCBmcm9tKSA8IDApCj4gPiAtICAgICAgICAgICAg IGdvdG8gYXdhaXRfZmVuY2U7Cj4gPiAtCj4gPiAtICAgICAvKiBPbmx5IHN1Ym1pdCBvdXIgc3Bp bm5lciBhZnRlciB0aGUgc2lnbmFsZXIgaXMgcnVubmluZyEgKi8KPiA+IC0gICAgIGlmIChfX2k5 MTVfcmVxdWVzdF9hd2FpdF9leGVjdXRpb24odG8sIGZyb20sIE5VTEwsIGdmcCkpCj4gPiAtICAg ICAgICAgICAgIGdvdG8gYXdhaXRfZmVuY2U7Cj4gPiAtCj4gPiAgICAgICAvKiBXZSBuZWVkIHRv IHBpbiB0aGUgc2lnbmFsZXIncyBIV1NQIHVudGlsIHdlIGFyZSBmaW5pc2hlZCByZWFkaW5nLiAq Lwo+ID4gLSAgICAgaWYgKGludGVsX3RpbWVsaW5lX3JlYWRfaHdzcChmcm9tLCB0bywgJmh3c3Bf b2Zmc2V0KSkKPiA+IC0gICAgICAgICAgICAgZ290byBhd2FpdF9mZW5jZTsKPiA+ICsgICAgIGVy ciA9IGludGVsX3RpbWVsaW5lX3JlYWRfaHdzcChmcm9tLCB0bywgJmh3c3Bfb2Zmc2V0KTsKPiA+ ICsgICAgIGlmIChlcnIpCj4gPiArICAgICAgICAgICAgIHJldHVybiBlcnI7Cj4gPiAgIAo+ID4g ICAgICAgbGVuID0gNDsKPiA+ICAgICAgIGlmIChoYXNfdG9rZW4pCj4gPiBAQCAtODcxLDcgKzg2 Myw3IEBAIGVtaXRfc2VtYXBob3JlX3dhaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqdG8sCj4gPiAg ICAgICAgICAgICAgICBNSV9TRU1BUEhPUkVfUE9MTCB8Cj4gPiAgICAgICAgICAgICAgICBNSV9T RU1BUEhPUkVfU0FEX0dURV9TREQpICsKPiA+ICAgICAgICAgICAgICAgaGFzX3Rva2VuOwo+ID4g LSAgICAgKmNzKysgPSBmcm9tLT5mZW5jZS5zZXFubzsKPiA+ICsgICAgICpjcysrID0gc2Vxbm87 Cj4gPiAgICAgICAqY3MrKyA9IGh3c3Bfb2Zmc2V0Owo+ID4gICAgICAgKmNzKysgPSAwOwo+ID4g ICAgICAgaWYgKGhhc190b2tlbikgewo+ID4gQEAgLTg4MCw2ICs4NzIsMjggQEAgZW1pdF9zZW1h cGhvcmVfd2FpdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bywKPiA+ICAgICAgIH0KPiA+ICAgCj4g PiAgICAgICBpbnRlbF9yaW5nX2FkdmFuY2UodG8sIGNzKTsKPiA+ICsgICAgIHJldHVybiAwOwo+ ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50Cj4gPiArZW1pdF9zZW1hcGhvcmVfd2FpdChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICp0bywKPiA+ICsgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3Jl cXVlc3QgKmZyb20sCj4gPiArICAgICAgICAgICAgICAgICBnZnBfdCBnZnApCj4gPiArewo+ID4g KyAgICAgLyogSnVzdCBlbWl0IHRoZSBmaXJzdCBzZW1hcGhvcmUgd2Ugc2VlIGFzIHJlcXVlc3Qg c3BhY2UgaXMgbGltaXRlZC4gKi8KPiA+ICsgICAgIGlmIChhbHJlYWR5X2J1c3l3YWl0aW5nKHRv KSAmIGZyb20tPmVuZ2luZS0+bWFzaykKPiA+ICsgICAgICAgICAgICAgZ290byBhd2FpdF9mZW5j ZTsKPiA+ICsKPiA+ICsgICAgIGlmIChpOTE1X3JlcXVlc3RfYXdhaXRfc3RhcnQodG8sIGZyb20p IDwgMCkKPiA+ICsgICAgICAgICAgICAgZ290byBhd2FpdF9mZW5jZTsKPiA+ICsKPiA+ICsgICAg IC8qIE9ubHkgc3VibWl0IG91ciBzcGlubmVyIGFmdGVyIHRoZSBzaWduYWxlciBpcyBydW5uaW5n ISAqLwo+ID4gKyAgICAgaWYgKF9fYXdhaXRfZXhlY3V0aW9uKHRvLCBmcm9tLCBOVUxMLCBnZnAp KQo+ID4gKyAgICAgICAgICAgICBnb3RvIGF3YWl0X2ZlbmNlOwo+ID4gKwo+ID4gKyAgICAgaWYg KF9fZW1pdF9zZW1hcGhvcmVfd2FpdCh0bywgZnJvbSwgZnJvbS0+ZmVuY2Uuc2Vxbm8pKQo+ID4g KyAgICAgICAgICAgICBnb3RvIGF3YWl0X2ZlbmNlOwo+ID4gKwo+ID4gICAgICAgdG8tPnNjaGVk LnNlbWFwaG9yZXMgfD0gZnJvbS0+ZW5naW5lLT5tYXNrOwo+ID4gICAgICAgdG8tPnNjaGVkLmZs YWdzIHw9IEk5MTVfU0NIRURfSEFTX1NFTUFQSE9SRV9DSEFJTjsKPiA+ICAgICAgIHJldHVybiAw Owo+ID4gQEAgLTk5Myw2ICsxMDA3LDU4IEBAIGk5MTVfcmVxdWVzdF9hd2FpdF9kbWFfZmVuY2Uo c3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQo+ID4gICAg ICAgcmV0dXJuIDA7Cj4gPiAgIH0KPiA+ICAgCj4gPiArc3RhdGljIGJvb2wgaW50ZWxfdGltZWxp bmVfc3luY19oYXNfc3RhcnQoc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkK PiA+ICt7Cj4gPiArICAgICByZXR1cm4gX19pbnRlbF90aW1lbGluZV9zeW5jX2lzX2xhdGVyKHRs LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW5jZS0+ Y29udGV4dCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmVuY2UtPnNlcW5vIC0gMSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgaW50ZWxfdGlt ZWxpbmVfc3luY19zZXRfc3RhcnQoc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCwKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlKQo+ID4gK3sKPiA+ICsgICAgIHJldHVybiBfX2ludGVsX3RpbWVsaW5lX3N5bmNfc2V0 KHRsLCBmZW5jZS0+Y29udGV4dCwgZmVuY2UtPnNlcW5vIC0gMSk7Cj4gPiArfQo+ID4gKwo+ID4g K3N0YXRpYyBpbnQKPiA+ICtfX2k5MTVfcmVxdWVzdF9hd2FpdF9leGVjdXRpb24oc3RydWN0IGk5 MTVfcmVxdWVzdCAqdG8sCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBp OTE1X3JlcXVlc3QgKmZyb20sCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg KCpob29rKShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKnNpZ25hbCkpCj4gPiArewo+ ID4gKyAgICAgYm9vbCBoYXNfc3luYzsKPiA+ICsgICAgIGludCBlcnI7Cj4gPiArCj4gPiArICAg ICAvKiBTdWJtaXQgYm90aCByZXF1ZXN0cyBhdCB0aGUgc2FtZSB0aW1lICovCj4gPiArICAgICBl cnIgPSBfX2F3YWl0X2V4ZWN1dGlvbih0bywgZnJvbSwgaG9vaywgSTkxNV9GRU5DRV9HRlApOwo+ ID4gKyAgICAgaWYgKGVycikKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIGVycjsKPiA+ICsKPiA+ ICsgICAgIGlmICghdG8tPmVuZ2luZS0+c2NoZWR1bGUpCj4gPiArICAgICAgICAgICAgIHJldHVy biAwOwo+ID4gKwo+ID4gKyAgICAgLyogU3F1YXNoIHJlcGVhdGVkIGRlcGVuZW5kaWNlcyB0byB0 aGUgc2FtZSB0aW1lbGluZXMgKi8KPiA+ICsgICAgIGlmIChpbnRlbF90aW1lbGluZV9zeW5jX2hh c19zdGFydChpOTE1X3JlcXVlc3RfdGltZWxpbmUodG8pLAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZmcm9tLT5mZW5jZSkpCj4gPiArICAgICAgICAgICAgIHJl dHVybiAwOwo+ID4gKwo+ID4gKyAgICAgLyogRW5zdXJlIGJvdGggc3RhcnQgdG9nZXRoZXIgYWZ0 ZXIgYWxsIHNlbWFwaG9yZXMgaW4gc2lnbmFsICovCj4gPiArICAgICBpZiAoZnJvbS0+c2NoZWQu c2VtYXBob3JlcyAmJiAhaGFzX3N5bmMpIHsKPiA+ICsgICAgICAgICAgICAgZXJyID1fX2VtaXRf c2VtYXBob3JlX3dhaXQodG8sIGZyb20sIGZyb20tPmZlbmNlLnNlcW5vIC0gMSk7Cj4gCj4gRm9y Z290IHRvIGdpdCBhZGQgc29tZXRoaW5nPyBoYXNfc3luYyBpcyB1bmluaXRpYWxpemVkLgoKaGFz X3N5bmMgd2FzIGludGVsX3RpbWVsaW5lX3N5bmNfaGFzX3N0YXJ0LCBhZnRlciByZWFycmFuZ2lu ZyB0aGUgY29kZQppdCBkaWVkLgotQ2hyaXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4