From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH 12/32] drm/i915: Invert the GEM wakeref hierarchy Date: Thu, 18 Apr 2019 14:07:49 +0100 Message-ID: <155559286924.4314.12445180445128039391@skylake-alporthouse-com> References: <20190417075657.19456-1-chris@chris-wilson.co.uk> <20190417075657.19456-12-chris@chris-wilson.co.uk> <07b1d8d6-eb75-e5c1-1792-6d1d0ebfa499@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 482266E138 for ; Thu, 18 Apr 2019 13:07:54 +0000 (UTC) In-Reply-To: <07b1d8d6-eb75-e5c1-1792-6d1d0ebfa499@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 UXVvdGluZyBUdnJ0a28gVXJzdWxpbiAoMjAxOS0wNC0xOCAxMzo0Mjo1OSkKPiAKPiBPbiAxNy8w NC8yMDE5IDA4OjU2LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiArc3RhdGljIGJvb2wgc3dpdGNo X3RvX2tlcm5lbF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiA+ICt7 Cj4gPiArICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKPiA+ICsKPiA+ICsgICAgIC8qIEFs cmVhZHkgaW5zaWRlIHRoZSBrZXJuZWwgY29udGV4dCwgc2FmZSB0byBwb3dlciBkb3duLiAqLwo+ ID4gKyAgICAgaWYgKGVuZ2luZS0+d2FrZXJlZl9zZXJpYWwgPT0gZW5naW5lLT5zZXJpYWwpCj4g PiArICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+ID4gKwo+ID4gKyAgICAgLyogR1BVIGlzIHBv aW50aW5nIHRvIHRoZSB2b2lkLCBhcyBnb29kIGFzIGluIHRoZSBrZXJuZWwgY29udGV4dC4gKi8K PiA+ICsgICAgIGlmIChpOTE1X3Jlc2V0X2ZhaWxlZChlbmdpbmUtPmk5MTUpKQo+ID4gKyAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKPiA+ICsKPiA+ICsgICAgIC8qCj4gPiArICAgICAgKiBOb3Rl LCB3ZSBkbyB0aGlzIHdpdGhvdXQgdGFraW5nIHRoZSB0aW1lbGluZS0+bXV0ZXguIFdlIGNhbm5v dAo+ID4gKyAgICAgICogYXMgd2UgbWF5IGJlIGNhbGxlZCB3aGlsZSByZXRpcmluZyB0aGUga2Vy bmVsIGNvbnRleHQgYW5kIHNvCj4gPiArICAgICAgKiBhbHJlYWR5IHVuZGVybmVhdGggdGhlIHRp bWVsaW5lLT5tdXRleC4gSW5zdGVhZCB3ZSByZWx5IG9uIHRoZQo+ID4gKyAgICAgICogZXhjbHVz aXZlIHByb3BlcnR5IG9mIHRoZSBpbnRlbF9lbmdpbmVfcGFyayB0aGF0IHByZXZlbnRzIGFueW9u ZQo+ID4gKyAgICAgICogZWxzZSBmcm9tIGNyZWF0aW5nIGEgcmVxdWVzdCBvbiB0aGlzIGVuZ2lu ZS4gVGhpcyBhbHNvIHJlcXVpcmVzCj4gPiArICAgICAgKiB0aGF0IHRoZSByaW5nIGlzIGVtcHR5 IGFuZCB3ZSBhdm9pZCBhbnkgd2FpdHMgd2hpbGUgY29uc3RydWN0aW5nCj4gPiArICAgICAgKiB0 aGUgY29udGV4dCwgYXMgdGhleSBhc3N1bWUgcHJvdGVjdGlvbiBieSB0aGUgdGltZWxpbmUtPm11 dGV4Lgo+ID4gKyAgICAgICogVGhpcyBzaG91bGQgaG9sZCB0cnVlIGFzIHdlIGNhbiBvbmx5IHBh cmsgdGhlIGVuZ2luZSBhZnRlcgo+ID4gKyAgICAgICogcmV0aXJpbmcgdGhlIGxhc3QgcmVxdWVz dCwgdGh1cyBhbGwgcmluZ3Mgc2hvdWxkIGJlIGVtcHR5IGFuZAo+ID4gKyAgICAgICogYWxsIHRp bWVsaW5lcyBpZGxlLgo+ID4gKyAgICAgICovCj4gPiArICAgICBycSA9IF9faTkxNV9yZXF1ZXN0 X2NyZWF0ZShlbmdpbmUtPmtlcm5lbF9jb250ZXh0LCBHRlBfTk9XQUlUKTsKPiA+ICsgICAgIGlm IChJU19FUlIocnEpKQo+ID4gKyAgICAgICAgICAgICAvKiBDb250ZXh0IHN3aXRjaCBmYWlsZWQs IGhvcGUgZm9yIHRoZSBiZXN0ISBNYXliZSByZXNldD8gKi8KPiA+ICsgICAgICAgICAgICAgcmV0 dXJuIHRydWU7Cj4gPiArCj4gPiArICAgICAvKiBDaGVjayBhZ2FpbiBvbiB0aGUgbmV4dCByZXRp cmVtZW50LiAqLwo+ID4gKyAgICAgZW5naW5lLT53YWtlcmVmX3NlcmlhbCA9IGVuZ2luZS0+c2Vy aWFsICsgMTsKPiAKPiBJcyBlbmdpbmUtPnNlcmlhbCBndWFyYW50ZWVkIHRvIGJlIHN0YWJsZSBh dCB0aGlzIHBvaW50PyBJIGd1ZXNzIHNvIAo+IHNpbmNlIHRoZXJlIGNhbiBvbmx5IGJlIG9uZSBw YXJrIGF0IGEgdGltZS4KClllcywgd2UncmUgaW5zaWRlIHRoZSBlbmdpbmUgdW5wYXJrIHJvdXRp bmUgc28gd2UgYXJlIHNlcmlhbGlzZWQgYWdhaW5zdAphbGwgb3RoZXIgdXNlcnMgb2YgdGhlIGVu Z2luZS4KCj4gPiArICAgICBfX2k5MTVfcmVxdWVzdF9jb21taXQocnEpOwo+ID4gKwo+ID4gKyAg ICAgcmV0dXJuIGZhbHNlOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGludGVsX2VuZ2lu ZV9wYXJrKHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKPiA+ICt7Cj4gPiArICAgICBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQo+ID4gKyAgICAgICAgICAgICBjb250YWluZXJfb2Yo d2YsIHR5cGVvZigqZW5naW5lKSwgd2FrZXJlZik7Cj4gPiArCj4gPiArICAgICAvKgo+ID4gKyAg ICAgICogSWYgb25lIGFuZCBvbmx5IG9uZSByZXF1ZXN0IGlzIGNvbXBsZXRlZCBiZXR3ZWVuIHBt IGV2ZW50cywKPiA+ICsgICAgICAqIHdlIGtub3cgdGhhdCB3ZSBhcmUgaW5zaWRlIHRoZSBrZXJu ZWwgY29udGV4dCBhbmQgaXQgaXMKPiA+ICsgICAgICAqIHNhZmUgdG8gcG93ZXIgZG93bi4gKFdl IGFyZSBwYXJhbm9pZCBpbiBjYXNlIHRoYXQgcnVudGltZQo+ID4gKyAgICAgICogc3VzcGVuZCBj YXVzZXMgY29ycnVwdGlvbiB0byB0aGUgYWN0aXZlIGNvbnRleHQgaW1hZ2UsIGFuZAo+ID4gKyAg ICAgICogd2FudCB0byBhdm9pZCB0aGF0IGltcGFjdGluZyB1c2Vyc3BhY2UuKQo+ID4gKyAgICAg ICovCj4gPiArICAgICBpZiAoIXN3aXRjaF90b19rZXJuZWxfY29udGV4dChlbmdpbmUpKQo+ID4g KyAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOwo+IAo+IEJ1dCBpdCBpcyBpZ25vcmVkIGJ5IGlu dGVsX2VuZ2luZV9wbV9wdXQuIFNob3VsZCBpdCBiZSBhIFdBUk5fT04gb3IgCj4gc29tZXRoaW5n PwoKVGhlIGludGVsX3dha2VyZWYgdGFrZXMgYWN0aW9uIGFuZCBkZWZlcnMgdGhlIHB1dC9wYXJr aW5nLiBUaGF0J3MgYWxsIHdlCm5lZWQgaGVyZSwgYXMgdGhlIEdFTSBsYXllciBzdGF5cyBhd2Fr ZSB3aXRoIGl0cyBiYWNrZ3JvdW5kIHJldGlyZQp3b3JrZXIgc3RpbGwgcG9raW5nIG9jY2FzaW9u YWxseS4KCj4gPiBAQCAtNzE4LDYgKzcyMSw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0X3ByZXBhcmUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gPiAgICAgICBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmU7Cj4gPiAgICAgICBlbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiA+ICAg Cj4gPiArICAgICBpbnRlbF9ndF9wbV9nZXQoaTkxNSk7Cj4gCj4gSXQncyBub3QgaW4gdGhlIHNw aXJpdCBvZiB0aGUgcGF0Y2ggdG8gbGV0IGVuZ2luZXMgd2FrZSB1cCB0aGUgZ3Q/CgpZb3UgY291 bGQsIHRoaXMgd2FzIGp1c3QgYmVjYXVzZSBJIGxpa2VkIHRoZSBsb29rIG9mIGl0LiBJbiBhbiBv cGVyYXRpb24KYWZmZWN0aW5nIGFsbCBlbmdpbmVzLCBpdCBmZWx0IHRoZSByaWdodCB0aGluZyB0 byBkby4KCj4gPiAgICAgICBmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkKPiA+ICAg ICAgICAgICAgICAgcmVzZXRfcHJlcGFyZV9lbmdpbmUoZW5naW5lKTsKPiA+ICAgCj4gPiBAQCAt NzU1LDQ4ICs3NTksMTAgQEAgc3RhdGljIGludCBndF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKPiA+ICAgc3RhdGljIHZvaWQgcmVzZXRfZmluaXNoX2VuZ2luZShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gPiAgIHsKPiA+ICAgICAgIGVuZ2luZS0+cmVzZXQu ZmluaXNoKGVuZ2luZSk7Cj4gPiArICAgICBpbnRlbF9lbmdpbmVfcG1fcHV0KGVuZ2luZSk7Cj4g PiAgICAgICBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dChlbmdpbmUtPnVuY29yZSwgRk9SQ0VX QUtFX0FMTCk7Cj4gPiAgIH0KPiA+ICAgCj4gPiAtc3RydWN0IGk5MTVfZ3B1X3Jlc3RhcnQgewo+ ID4gLSAgICAgc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Cj4gPiAtICAgICBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNTsKPiA+IC19Owo+ID4gLQo+ID4gLXN0YXRpYyB2b2lkIHJlc3RhcnRf d29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gCj4gT2ggd293IEkgZGlkIG5vdCBzZWUg dGhpcyBwYXJ0IG9mIHRoZSBjb2RlIHNvIGZhci4gQXNrIGEgc2Vjb25kIHBhaXIgb2YgCj4gZXll cyB0byBjaGVjayBvbiBpdD8KClRoaXMgaXMgdGhlIGJlc3QgcGFydCEgUmVzb2x2ZWQgYSB2ZXJ5 LCB2ZXJ5IGFubm95aW5nIHRob3JuIHdpdGggdGhlCnJlc2V0IHJlcXVpcmluZyBhIHdvcmtlci4K Cj4gPiBAQCAtMTEzNyw2ICsxMDc2LDkgQEAgaW50IGk5MTVfcmVzZXRfZW5naW5lKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgY29uc3QgY2hhciAqbXNnKQo+ID4gICAgICAgR0VNX1RS QUNFKCIlcyBmbGFncz0lbHhcbiIsIGVuZ2luZS0+bmFtZSwgZXJyb3ItPmZsYWdzKTsKPiA+ICAg ICAgIEdFTV9CVUdfT04oIXRlc3RfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCwg JmVycm9yLT5mbGFncykpOwo+ID4gICAKPiA+ICsgICAgIGlmICghaW50ZWxfd2FrZXJlZl9hY3Rp dmUoJmVuZ2luZS0+d2FrZXJlZikpCj4gPiArICAgICAgICAgICAgIHJldHVybiAwOwo+IAo+IEkg Z3Vlc3MgdGhlcmUgY2FuJ3QgYmUgYW55IHJhY2VzIGhlcmUgc2luY2Ugc3R1Y2sgZW5naW5lIGNh bid0IGJlIAo+IHBhcmtlZC4gRG8gd2UgaGF2ZSBhbnkgdGVzdHMgd2hpY2ggdHJpZ2dlciB0aGlz IHdpdGhvdXQgYSBndWlsdHkgCj4gcmVxdWVzdD8gSSBraW5kIG9mIHJlbWVtYmVyIHRoYXQgaXNu J3QgcG9zc2libGUgc28gcHJvYmFibHkgbm90LgoKV2UgZG8sIHdlIGhhdmUgdGhlIHJlc2V0IGlk bGUgZW5naW5lIHNlbGZ0ZXN0cy4gTm90IHRoYXQgaXQgcHJvdmVzIHZlcnkKbXVjaCwganVzdCB0 aGF0IHdlIGRvbid0IGRpZS4KCj4gPiAtc3RhdGljIGludCBpbml0X3JlbmRlcl9yaW5nKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiA+ICtzdGF0aWMgaW50IHJjc19yZXN1bWUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gPiAtICAgICBpbnQgcmV0 ID0gaW5pdF9yaW5nX2NvbW1vbihlbmdpbmUpOwo+ID4gLSAgICAgaWYgKHJldCkKPiA+IC0gICAg ICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICAgCj4gPiAgICAgICAvKiBXYVRpbWVkU2luZ2xlVmVy dGV4RGlzcGF0Y2g6Y2wsYncsY3RnLGVsayxpbGssc25iICovCj4gPiAgICAgICBpZiAoSVNfR0VO X1JBTkdFKGRldl9wcml2LCA0LCA2KSkKPiA+IEBAIC04NzUsNyArODc1LDcgQEAgc3RhdGljIGlu dCBpbml0X3JlbmRlcl9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiA+ICAg ICAgIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpCj4gPiAgICAgICAgICAgICAgIEVOR0lO RV9XUklURShlbmdpbmUsIFJJTkdfSU1SLCB+ZW5naW5lLT5pcnFfa2VlcF9tYXNrKTsKPiA+ICAg Cj4gPiAtICAgICByZXR1cm4gMDsKPiA+ICsgICAgIHJldHVybiB4Y3NfcmVzdW1lKGVuZ2luZSk7 Cj4gCj4gVGhpcyBpbnZlcnRzIHRoZSBvcmRlciBiZXR3ZWVuIHRoZSBjb21tb24gYW5kIHJjcyBp bml0LiBPbmUgdGhpbmcgd2hpY2ggCj4ganVtcCBvdXQgaXMgdGhlIFJJTkdfSU1SIHdoaWNoIGlz IG5vdyBkb25lIGFmdGVyIHN0YXJ0aW5nIHRoZSBlbmdpbmUuIAo+IENhbiB3ZSBsb3NlIGFuIGlu dGVycnVwdCBub3c/CgpUaGF0IHdyaXRlIHNob3VsZG4ndCBiZSB0aGVyZSwgd2UgdGFrZSBjYXJl IG9mIHRoYXQgaW5zaWRlIHRoZSByZXN0YXJ0LgoKPiA+ICAgc3RhdGljIHZvaWQgaWRsZV93b3Jr X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9Cj4gPiAgICAgICAgICAgICAgIGNvbnRhaW5lcl9v Zih3b3JrLCB0eXBlb2YoKmk5MTUpLCBnZW0uaWRsZV93b3JrLndvcmspOwo+ID4gLSAgICAgYm9v bCByZWFybV9oYW5nY2hlY2s7Cj4gPiAtCj4gPiAtICAgICBpZiAoIVJFQURfT05DRShpOTE1LT5n dC5hd2FrZSkpCj4gPiAtICAgICAgICAgICAgIHJldHVybjsKPiA+IC0KPiA+IC0gICAgIGlmIChS RUFEX09OQ0UoaTkxNS0+Z3QuYWN0aXZlX3JlcXVlc3RzKSkKPiA+IC0gICAgICAgICAgICAgcmV0 dXJuOwo+ID4gLQo+ID4gLSAgICAgcmVhcm1faGFuZ2NoZWNrID0KPiA+IC0gICAgICAgICAgICAg Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpOTE1LT5ncHVfZXJyb3IuaGFuZ2NoZWNrX3dvcmsp Owo+ID4gICAKPiA+ICAgICAgIGlmICghbXV0ZXhfdHJ5bG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9t dXRleCkpIHsKPiAKPiBTaG91bGQgc3RydWN0X211dGV4IGJlIHRha2VuIGJ5IGk5MTVfZ2VtX3Bh cmssIGluc2lkZSB0aGUgd2FrZXJlZiBsb2NrPyAKPiBPciB0aGF0IHdvdWxkIGNyZWF0ZSBhIGxv Y2sgaW52ZXJzaW9uIHNvbWV3aGVyZSBlbHNlPwoKTk8hIFllcywgdGhhdCB3b3VsZCBjcmVhdGUg dGhlIG1vc3QgbWlnaHR5IG9mIGludmVyc2lvbnMhIE5ldmVyLCBldmVyLApldmVyLCB0YWtlIHN0 cnVjdF9tdXRleCBpbnNpZGUgYW5vdGhlciBsb2NrLCBmb3IgaXRzIHRoZSBvdXRlciBsb2NrIGZv cgp0aGUgZW50aXJlIGRyaXZlciAoZ2l2ZSBvciB0YWtlIGFuIGluc2lnbmlmaWNhbnQgYW1vdW50 KS4KCkFib3V0IHRoZSBvbmx5IGxvY2sgaXQgaXMgdW5kZXIgaXMgdGhlIG1tYXBfc2VtLCBhbmQg bG9vayBhdCB0aGUgcGFpbgp0aGF0IGNhdXNlcy4gOigKCj4gPiArYm9vbCBpOTE1X3JldGlyZV9y ZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiA+ICAgewo+ID4gICAgICAg c3RydWN0IGludGVsX3JpbmcgKnJpbmcsICp0bXA7Cj4gPiAgIAo+ID4gICAgICAgbG9ja2RlcF9h c3NlcnRfaGVsZCgmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gPiAgIAo+ID4gLSAgICAgaWYg KCFpOTE1LT5ndC5hY3RpdmVfcmVxdWVzdHMpCj4gPiAtICAgICAgICAgICAgIHJldHVybjsKPiAK PiBZb3UgZG9uJ3Qgd2FudCB0byByZXBsYWNlIHRoaXMgd2l0aCBhIHdha2VyZWZfYWN0aXZlIGNo ZWNrPwoKSSBkaWRuJ3QgZmVlbCBpdCB3YXMgd29ydGggaXQgaW4gdGhlIHNob3J0IHRlcm0uIEF0 IHRoZSBlbmQgb2YgdGhlIGRheSwKdGhlIG1haW4gY2FsbGVyIG9mIGk5MTVfcmV0aXJlX3JlcXVl c3RzKCkgc2hvdWxkIGJlIHRoZSByZXRpcmVtZW50Cndvcmtlciwgd2l0aCBhIHBlcmhhcHMgYSBj YWxsIGZyb20gdGhlIHNocmlua2VyIChidXQgaG9wZWZ1bGx5IG5vdCkuCgpbc25pcF0KCj4gQXMg c2FpZCBiZWZvcmUgY29uY2VwdCBpcyB2ZXJ5IGVsZWdhbnQgYW5kIEkgbGlrZSBpdC4KPiAKPiBC dXQgaXQgaXMgYSBtb25zdGVyIHJlZmFjdG9yIGFuZCBhcyBtdWNoIGFzIGRpZCBjcm9zcy1yZWZl cmVuY2UgdGhlIGRpZmYgCj4gdmVyc3VzIHRoZSBwYXRjaGVkIHRyZWUgdG8gZ2V0IGEgZnVsbCBw aWN0dXJlIEkgaGF2ZSB0byBzYXkgbXkgcmV2aWV3IGlzIAo+IG1vcmUgYWJvdXQgaGlnaCBsZXZl bCBhbmQgdHJ1c3RpbmcgdGhlIENJIHRvIGNhdGNoIGFueSBkZXRhaWxzLiA6SQo+IAo+IE15IG1h aW4gY29uY2VybmlnIGlzIGxvY2sgbmVzdGluZywgZXNwZWNpYWxseSB0aGUgbmVzdGVkIGFubm90 YXRpb24gaW4gCj4gdGhlIHByZWNlZGluZyBwYXRjaC4gRG9lcyBsb2NrZGVwIGNhdGNoIGFueXRo aW5nIGlmIHlvdSBkb24ndCBoYXZlIHRoYXQgCj4gYW5ub3RhdGlvbj8KClllcy4gVGhlIHNocmlu a2VyIGNhbGxzIHRoZSBpbnRlbF93YWtlcmVmX3B1dCwgYnV0IHdlIG5lZWQgdG8gdGFrZSBtb3Jl CmxvY2tzIGluc2lkZSB0aGUgaW50ZWxfd2FrZXJlZl9nZXQgKHRoZSBwaW5fbWFwLCBhbmQgbW9y ZSBpbiB1bnBhcmspLgpIZW5jZSB0aGV5IGdldCBjYXVnaHQgaW4gdGhlIHNhbWUgbG9ja19tYXAg YW5kIGxvY2tkZXAgZ2V0cyBxdWl0ZSBhbmdyeQpldmVuIHRob3VnaCB0aGV5IGNhbm5vdCBvdmVy bGFwLgotQ2hyaXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4