From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH v2 6/6] xen/x86: use PCID feature for XPTI Date: Thu, 08 Mar 2018 08:27:42 -0700 Message-ID: <5AA1647E02000078001AFDFF@prv-mh.provo.novell.com> References: <20180302081403.16953-1-jgross@suse.com> <20180302081403.16953-7-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etxSR-0000ok-JD for xen-devel@lists.xenproject.org; Thu, 08 Mar 2018 15:27:51 +0000 In-Reply-To: <20180302081403.16953-7-jgross@suse.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Juergen Gross Cc: andrew.cooper3@citrix.com, Dario Faggioli , wei.liu2@citrix.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDAyLjAzLjE4IGF0IDA5OjE0LCA8amdyb3NzQHN1c2UuY29tPiB3cm90ZToKPiBBdm9p ZCBmbHVzaGluZyB0aGUgY29tcGxldGUgVExCIHdoZW4gc3dpdGNoaW5nICVjcjMgZm9yIG1pdGln YXRpb24gb2YKPiBNZWx0ZG93biBieSB1c2luZyB0aGUgUENJRCBmZWF0dXJlIGlmIGF2YWlsYWJs ZS4KPiAKPiBXZSBhcmUgdXNpbmcgNCBQQ0lEIHZhbHVlcyBmb3IgYSA2NCBiaXQgcHYgZG9tYWlu IHN1YmplY3QgdG8gWFBUSToKPiAKPiAtIGh5cGVydmlzb3IgYWN0aXZlIGFuZCBndWVzdCBpbiBr ZXJuZWwgbW9kZQo+IC0gZ3Vlc3QgYWN0aXZlIGFuZCBpbiBrZXJuZWwgbW9kZQo+IC0gaHlwZXJ2 aXNvciBhY3RpdmUgYW5kIGd1ZXN0IGluIHVzZXIgbW9kZQo+IC0gZ3Vlc3QgYWN0aXZlIGFuZCBp biB1c2VyIG1vZGUKPiAKPiBUaGUgMiBoeXBlcnZpc29yIGNhc2VzIGNvdWxkIHBvc3NpYmx5IGJl IG1lcmdlZCwgYnV0IGZvciBzZWN1cml0eQo+IHJlYXNvbnMgdGhpcyBpcyBsZWZ0IGZvciBhbm90 aGVyIHBhdGNoLgoKSSBkb24ndCB1bmRlcnN0YW5kIHRoaXMgcGFydCAtIG9uZSBsZXNzIFBDSUQg Y2FuJ3QgbWVhbiB0aGUgY29kZSBpcwpnb2luZyB0byBiZWNvbWUgbW9yZSBjb21wbGljYXRlZCwg Y2FuIGl0PyBBbmQgd2l0aG91dCBQQ0lEIHRoZXJlJ3MKbm8gZXh0cmEgYm91bmRhcnkgdGhlcmUg YW55d2F5LiBGdXJ0aGVybW9yZSB3aXRoIHR3byBkaWZmZXJlbnQKUENJRHMgSU5WTFBHIG1heSBu b3QgZG8gYW55bW9yZSB3aGF0IHdlIGV4cGVjdCBpdCB0byBkby4gVGhpcwooZm9yIHRoZSBndWVz dCkgc2ltaWxhcmx5IHdvdWxkIGFmZmVjdCBlLmcuIE1NVUVYVF9JTlZMUEdfKi4KCj4gQEAgLTQx Nyw2ICs0MTgsOCBAQCBzdGF0aWMgYm9vbCBwcmVwYXJlX3NldCh2b2lkKQo+ICAJY3I0ID0gcmVh ZF9jcjQoKTsKPiAgCWlmIChjcjQgJiBYODZfQ1I0X1BHRSkKPiAgCQl3cml0ZV9jcjQoY3I0ICYg flg4Nl9DUjRfUEdFKTsKPiArCWVsc2UgaWYgKCBjcHVfaGFzX2ludnBjaWQgKQo+ICsJCWludnBj aWRfZmx1c2hfYWxsKCk7Cj4gIAllbHNlCj4gIAkJYXNtIHZvbGF0aWxlKCAibW92ICUwLCAlJWNy MyIgOiA6ICJyIiAocmVhZF9jcjMoKSkgOiAibWVtb3J5IiApOwo+ICAKPiBAQCAtNDQwLDYgKzQ0 Myw4IEBAIHN0YXRpYyB2b2lkIHBvc3Rfc2V0KGJvb2wgcGdlKQo+ICAJLyogIFJlZW5hYmxlIENS NC5QR0UgKGFsc28gZmx1c2hlcyB0aGUgVExCKSAqLwo+ICAJaWYgKHBnZSkKPiAgCQl3cml0ZV9j cjQocmVhZF9jcjQoKSB8IFg4Nl9DUjRfUEdFKTsKPiArCWVsc2UgaWYgKCBjcHVfaGFzX2ludnBj aWQgKQo+ICsJCWludnBjaWRfZmx1c2hfYWxsKCk7Cj4gIAllbHNlCj4gIAkJYXNtIHZvbGF0aWxl KCAibW92ICUwLCAlJWNyMyIgOiA6ICJyIiAocmVhZF9jcjMoKSkgOiAibWVtb3J5IiApOwoKSSdt IGNvbmZ1c2VkIGJ5IHRoZSBvcmRlcmluZyBvZiB0aGVzZSAtIEkgdGFrZSBpdCB5b3UgaW1wbHkg dGhhdCB3aXRoClBDSUQgZW5hYmxlZCB3ZSdsbCBoYXZlIENSNC5QR0UgY2xlYXIgYXQgYWxsIHRp bWVzIChidXQgc2VlIGFsc28KYmVsb3cgb24gdGhhdCBhc3BlY3QpLiBCdXQgaXMgaXQgd29ydGgg bWFraW5nIHRoZSBjb2RlIGFib3ZlCmRlcGVuZCBvbiBpdD8gSXQgd291bGQgbG9vayBtb3JlIG5h dHVyYWwgYW5kIGxlc3MgcHJvbmUgdG8gYmVjb21lCmEgaGlkZGVuIHRyYXAgaWYgeW91IGNoZWNr ZWQgY3B1X2hhc19pbnZwY2lkIGZpcnN0LgoKQW5kIHdoYXQgYWJvdXQgdGhlIFBDSUQtYnV0LW5v LUlOVlBDSUQgY2FzZT8gQSBzaW1wbGUgQ1IzCndyaXRlIGRvZXNuJ3QgZmx1c2ggImZvcmVpZ24i IFBDSURzIGFpdWkuIE9oLCBJJ3ZlIGp1c3QgZm91bmQgZnVydGhlcgpkb3duIHRoYXQgeW91IGVu YWJsZSBQQ0lEIG9ubHkgd2hlbiBib3RoIGFyZSBhdmFpbGFibGUuIFRoZQpkZXNjcmlwdGlvbiBh bG9uZSBkb2Vzbid0IG1ha2UgdGhhdCBjbGVhci4KCj4gLS0tIGEveGVuL2FyY2gveDg2L2ZsdXNo dGxiLmMKPiArKysgYi94ZW4vYXJjaC94ODYvZmx1c2h0bGIuYwo+IEBAIC03NSwzOSArNzUsNDYg QEAgc3RhdGljIHZvaWQgcG9zdF9mbHVzaCh1MzIgdCkKPiAgc3RhdGljIHZvaWQgZG9fZmx1c2hf dGxiKHVuc2lnbmVkIGxvbmcgY3IzKQo+ICB7Cj4gICAgICB1bnNpZ25lZCBsb25nIGNyNDsKPiAr ICAgIHUzMiB0Owo+ICsKPiArICAgIHQgPSBwcmVfZmx1c2goKTsKPiAgCj4gICAgICBjcjQgPSBy ZWFkX2NyNCgpOwo+IC0gICAgaWYgKCBjcjQgJiBYODZfQ1I0X1BHRSApCj4gKwo+ICsgICAgaWYg KCBjcHVfaGFzX2ludnBjaWQgKQo+ICAgICAgewo+IC0gICAgICAgIHdyaXRlX2NyNChjcjQgJiB+ WDg2X0NSNF9QR0UpOwo+ICAgICAgICAgIGlmICggY3IzICkKPiAgICAgICAgICAgICAgYXNtIHZv bGF0aWxlICggIm1vdiAlMCwgJSVjcjMiIDogOiAiciIgKGNyMykgOiAibWVtb3J5IiApOwo+IC0g ICAgICAgIGVsc2UKPiAtICAgICAgICAgICAgYmFycmllcigpOwo+IC0gICAgICAgIHdyaXRlX2Ny NChjcjQpOwo+ICsgICAgICAgIGlmICggIWNyMyB8fCAoY3IzICYgWDg2X0NSM19OT0ZMVVNIKSB8 fCAoY3I0ICYgWDg2X0NSNF9QR0UpICkKPiArICAgICAgICAgICAgaW52cGNpZF9mbHVzaF9hbGwo KTsKCkFuZHJldyBoYXMgYWxyZWFkeSBleHBsYWluZWQgaG93IHRoaXMgbWF5IG5vdCBiZSBjb3Jy ZWN0IGluIGFsbCBjYXNlcy4KCkFzIHRvIHRoZSBmdW5jdGlvbidzIG5hbWUgLSBieSB0aGUgdGlt ZSB3ZSBnZXQgaGVyZSBJJ20gbm8gbG9uZ2VyCnN1cmUgd2hhdCB0aGUgYmVzdCBuYW1lIGZvciBp dCB3b3VsZCBiZS4KCj4gQEAgLTEyOCwzMCArMTM1LDMzIEBAIHVuc2lnbmVkIGludCBmbHVzaF9h cmVhX2xvY2FsKGNvbnN0IHZvaWQgKnZhLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gICAgICB7Cj4g ICAgICAgICAgaWYgKCBvcmRlciA9PSAwICkKPiAgICAgICAgICB7Cj4gLSAgICAgICAgICAgIC8q Cj4gLSAgICAgICAgICAgICAqIFdlIGRvbid0IElOVkxQRyBtdWx0aS1wYWdlIHJlZ2lvbnMgYmVj YXVzZSB0aGUgMk0vNE0vMUcKPiAtICAgICAgICAgICAgICogcmVnaW9uIG1heSBub3QgaGF2ZSBi ZWVuIG1hcHBlZCB3aXRoIGEgc3VwZXJwYWdlLiBBbHNvIHRoZXJlCj4gLSAgICAgICAgICAgICAq IGFyZSB2YXJpb3VzIGVycmF0YSBzdXJyb3VuZGluZyBJTlZMUEcgdXNhZ2Ugb24gc3VwZXJwYWdl cywgYW5kCj4gLSAgICAgICAgICAgICAqIGEgZnVsbCBmbHVzaCBpcyBpbiBhbnkgY2FzZSBub3Qg KnRoYXQqIGV4cGVuc2l2ZS4KPiAtICAgICAgICAgICAgICovCj4gLSAgICAgICAgICAgIGFzbSB2 b2xhdGlsZSAoICJpbnZscGcgJTAiCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogOiAi bSIgKCooY29uc3QgY2hhciAqKSh2YSkpIDogIm1lbW9yeSIgKTsKPiAtICAgICAgICB9Cj4gLSAg ICAgICAgZWxzZQo+IC0gICAgICAgIHsKPiAtICAgICAgICAgICAgdTMyIHQgPSBwcmVfZmx1c2go KTsKPiArICAgICAgICAgICAgaWYgKCByZWFkX2NyMygpICYgWDg2X0NSM19QQ0lETUFTSyApCgpX b3VsZG4ndCB5b3UgYmV0dGVyIGxvb2sgYXQgQ1I0LlBDSURFPyBBbmQgdGhlbiBhbHNvIGZsdXNo IFBDSUQgMApiZWxvdywganVzdCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlPwoKPiArICAgICAgICAg ICAgewo+ICsgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBhZGRyID0gKHVuc2lnbmVkIGxv bmcpdmE7Cj4gIAo+IC0gICAgICAgICAgICBpZiAoICFjcHVfaGFzX2ludnBjaWQgKQo+IC0gICAg ICAgICAgICAgICAgZG9fZmx1c2hfdGxiKDApOwo+ICsgICAgICAgICAgICAgICAgLyoKPiArICAg ICAgICAgICAgICAgICAqIEZsdXNoIHRoZSBhZGRyZXNzZXMgZm9yIGFsbCBwb3RlbnRpYWwgYWRk cmVzcyBzcGFjZXMuCj4gKyAgICAgICAgICAgICAgICAgKi8KClNpbmdsZSBsaW5lIGNvbW1lbnQu Cgo+ICsgICAgICAgICAgICAgICAgaW52cGNpZF9mbHVzaF9vbmUoUENJRF9QVl9QUklWLCBhZGRy KTsKPiArICAgICAgICAgICAgICAgIGludnBjaWRfZmx1c2hfb25lKFBDSURfUFZfVVNFUiwgYWRk cik7Cj4gKyAgICAgICAgICAgICAgICBpbnZwY2lkX2ZsdXNoX29uZShQQ0lEX1BWX1BSSVYgfCBQ Q0lEX1BWX1hFTiwgYWRkcik7Cj4gKyAgICAgICAgICAgICAgICBpbnZwY2lkX2ZsdXNoX29uZShQ Q0lEX1BWX1VTRVIgfCBQQ0lEX1BWX1hFTiwgYWRkcik7CgpPdGhlciB0aGFuIElOVkxQRyB0aGlz IGRvZXNuJ3QgaW52YWxpZGF0ZSBnbG9iYWwgbWFwcGluZ3MsIHlldCBJCmNhbid0IGlkZW50aWZ5 IGFueSBjb2RlIHRvIGdsb2JhbGx5IGRpc2FibGUgKG9yIG5ldmVyIGVuYWJsZSkKQ1I0LlBHRS4K Ck91dCBvZiBjdXJpb3NpdHksIGhvdyBkbyA0IElOVlBDSURzIGNvbXBhcmUgdG8gYSBzaW5nbGUg SU5WTFBHCnBlcmZvcm1hbmNlIHdpc2U/Cgo+ICsgICAgICAgICAgICB9Cj4gICAgICAgICAgICAg IGVsc2UKPiArICAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAgLyoKPiAtICAgICAgICAg ICAgICAgICAqIFVzaW5nIGludnBjaWQgdG8gZmx1c2ggYWxsIG1hcHBpbmdzIHdvcmtzCj4gLSAg ICAgICAgICAgICAgICAgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgUENJRCBpcyBlbmFibGVkIG9y IG5vdC4KPiAtICAgICAgICAgICAgICAgICAqIEl0IGlzIGZhc3RlciB0aGFuIHJlYWQtbW9kaWZ5 LXdyaXRlIENSNC4KPiArICAgICAgICAgICAgICAgICAqIFdlIGRvbid0IElOVkxQRyBtdWx0aS1w YWdlIHJlZ2lvbnMgYmVjYXVzZSB0aGUgMk0vNE0vMUcKPiArICAgICAgICAgICAgICAgICAqIHJl Z2lvbiBtYXkgbm90IGhhdmUgYmVlbiBtYXBwZWQgd2l0aCBhIHN1cGVycGFnZS4gQWxzbyB0aGVy ZQo+ICsgICAgICAgICAgICAgICAgICogYXJlIHZhcmlvdXMgZXJyYXRhIHN1cnJvdW5kaW5nIElO VkxQRyB1c2FnZSBvbiBzdXBlcnBhZ2VzLAo+ICsgICAgICAgICAgICAgICAgICogYW5kIGEgZnVs bCBmbHVzaCBpcyBpbiBhbnkgY2FzZSBub3QgKnRoYXQqIGV4cGVuc2l2ZS4KPiAgICAgICAgICAg ICAgICAgICAqLwo+IC0gICAgICAgICAgICAgICAgaW52cGNpZF9mbHVzaF9hbGwoKTsKPiAtCj4g LSAgICAgICAgICAgIHBvc3RfZmx1c2godCk7Cj4gKyAgICAgICAgICAgICAgICBhc20gdm9sYXRp bGUgKCAiaW52bHBnICUwIgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiA6ICJt IiAoKihjb25zdCBjaGFyICopKHZhKSkgOiAibWVtb3J5IiApOwo+ICsgICAgICAgICAgICB9Cj4g KyAgICAgICAgfQo+ICsgICAgICAgIGVsc2UKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIGRv X2ZsdXNoX3RsYigwKTsKPiAgICAgICAgICB9CgpQb2ludGxlc3MgYnJhY2VzLgoKPiAtLS0gYS94 ZW4vYXJjaC94ODYvbW0uYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCj4gQEAgLTUwNiw2ICs1 MDYsOCBAQCB2b2lkIGZyZWVfc2hhcmVkX2RvbWhlYXBfcGFnZShzdHJ1Y3QgcGFnZV9pbmZvICpw YWdlKQo+ICB2b2lkIG1ha2VfY3IzKHN0cnVjdCB2Y3B1ICp2LCBtZm5fdCBtZm4pCj4gIHsKPiAg ICAgIHYtPmFyY2guY3IzID0gbWZuX3gobWZuKSA8PCBQQUdFX1NISUZUOwo+ICsgICAgaWYgKCBp c19wdl92Y3B1KHYpICYmIHYtPmRvbWFpbi0+YXJjaC5wdl9kb21haW4ucGNpZCApCj4gKyAgICAg ICAgdi0+YXJjaC5jcjMgfD0gWDg2X0NSM19OT0ZMVVNIIHwgZ2V0X3B2X3BjaWQodiwgMSk7CgpJ cyBpdCBhIGdvb2QgaWRlYSB0byBzdXBwcmVzcyB0aGUgZmx1c2ggdGhpcyB3YXkgZm9yIGV2ZXJ5 IHJlYWRlcgpvZiB2LT5hcmNoLmNyMz8gRm9yIGV4YW1wbGUsIHdoYXQgYWJvdXQgdGhlIHVzZSBp bgpkYmdfcHZfdmEybWZuKCk/IEkgdGhpbmsgaXQgc2hvdWxkIGJlIHRoZSBjb25zdW1lcnMgb2Yg dGhlIGZpZWxkCnRvIGRlY2lkZSB3aGV0aGVyIHRvIE9SIGluIHRoYXQgZmxhZyAod2hpY2ggaXNu J3QgcGFydCBvZiB0aGUKcmVnaXN0ZXIgdmFsdWUgYW55d2F5KS4KCj4gQEAgLTUxNCw3ICs1MTYs MTUgQEAgdm9pZCB3cml0ZV9wdGJhc2Uoc3RydWN0IHZjcHUgKnYpCj4gICAgICB7Cj4gICAgICAg ICAgZ2V0X2NwdV9pbmZvKCktPnJvb3RfcGd0X2NoYW5nZWQgPSB0cnVlOwo+ICAgICAgICAgIGdl dF9jcHVfaW5mbygpLT5wdl9jcjMgPSBfX3BhKHRoaXNfY3B1KHJvb3RfcGd0KSk7Cj4gLSAgICAg ICAgYXNtIHZvbGF0aWxlICggIm1vdiAlMCwgJSVjcjMiIDogOiAiciIgKHYtPmFyY2guY3IzKSA6 ICJtZW1vcnkiICk7Cj4gKyAgICAgICAgaWYgKCB2LT5kb21haW4tPmFyY2gucHZfZG9tYWluLnBj aWQgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgZ2V0X2NwdV9pbmZvKCktPnB2X2NyMyB8 PSBYODZfQ1IzX05PRkxVU0ggfCBnZXRfcHZfcGNpZCh2LCAwKTsKPiArICAgICAgICAgICAgd3Jp dGVfY3IzKHYtPmFyY2guY3IzKTsKPiArICAgICAgICB9Cj4gKyAgICAgICAgZWxzZQo+ICsgICAg ICAgIHsKPiArICAgICAgICAgICAgYXNtIHZvbGF0aWxlICggIm1vdiAlMCwgJSVjcjMiIDogOiAi ciIgKHYtPmFyY2guY3IzKSA6ICJtZW1vcnkiICk7Cj4gKyAgICAgICAgfQoKUG9pbnRsZXNzIGJy YWNlcyBhZ2Fpbi4KCj4gLS0tIGEveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCj4gKysrIGIveGVu L2FyY2gveDg2L3B2L2RvbWFpbi5jCj4gQEAgLTk2LDggKzk2LDEyIEBAIHZvaWQgeHB0aV9kb21h aW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQo+ICAgICAgfQo+ICAKPiAgICAgIGlmICggZC0+YXJj aC5wdl9kb21haW4ueHB0aSApCj4gKyAgICB7Cj4gKyAgICAgICAgZC0+YXJjaC5wdl9kb21haW4u cGNpZCA9IGNwdV9oYXNfcGNpZCAmJiBjcHVfaGFzX2ludnBjaWQ7CgpQZXJoYXBzIGFnYWluIGJl dHRlciB0byBrZXkgb2ZmIG9mIENSNC5QQ0lERT8gRm9yIGV4YW1wbGUgSSBpbWFnaW5lCndlJ2xs IHdhbnQgdG8gaGF2ZSBhIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gc3VwcHJlc3MgdGhlIHVzZSBv ZiBQQ0lECmluIGNhc2Ugb2YgcHJvYmxlbXMuCgo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv ZG9tYWluLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCj4gQEAgLTI2MCw4 ICsyNjAsMjAgQEAgc3RydWN0IHB2X2RvbWFpbgo+ICAKPiAgICAgIC8qIFhQVEkgYWN0aXZlPyAq Lwo+ICAgICAgYm9vbCB4cHRpOwo+ICsKPiArICAgIC8qIFVzZSBQQ0lEIGZvciB0aGUgZGlmZmVy ZW50IGFkZHJlc3Mgc3BhY2VzPyAqLwo+ICsgICAgYm9vbCBwY2lkOwo+ICB9Owo+ICAKPiArLyog UENJRCB2YWx1ZXMgZm9yIHRoZSBhZGRyZXNzIHNwYWNlczogKi8KPiArI2RlZmluZSBQQ0lEX1BW X1BSSVYgICAgICAweDAwMDEKPiArI2RlZmluZSBQQ0lEX1BWX1VTRVIgICAgICAweDAwMDIKPiAr I2RlZmluZSBQQ0lEX1BWX1hFTiAgICAgICAweDAwMDQgICAgLyogVG8gYmUgT1JlZCB0byBhYm92 ZSB2YWx1ZXMuICovCj4gKwo+ICsjZGVmaW5lIGdldF9wdl9wY2lkKHYsIHhlbikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgKCgoeGVuKSA/IFBD SURfUFZfWEVOIDogMCkgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+ICsgICAgICgoKHYpLT5hcmNoLmZsYWdzICYgVEZfa2VybmVsX21vZGUpID8gUENJRF9QVl9Q UklWIDogUENJRF9QVl9VU0VSKSkKCklubGluZSBmdW5jdGlvbj8gUGx1cyAtIHRoZSAieGVuIiBw YXJhbWV0ZXIgaXMgcmVhbGx5IG9mIGJvb2xlYW4ga2luZCwKd2hpY2ggbWVhbnMgdGhlIGNhbGxl cnMgd2FudCB0byBwYXNzIHRydWUvZmFsc2UgaW5zdGVhZCBvZiAxLzAuCgo+IEBAIC02MTUsMTgg KzYyNywxOCBAQCB2b2lkIHZjcHVfc2hvd19yZWdpc3RlcnMoY29uc3Qgc3RydWN0IHZjcHUgKik7 Cj4gIHVuc2lnbmVkIGxvbmcgcHZfZ3Vlc3RfY3I0X2ZpeHVwKGNvbnN0IHN0cnVjdCB2Y3B1ICos IHVuc2lnbmVkIGxvbmcgZ3Vlc3RfY3I0KTsKPiAgCj4gIC8qIENvbnZlcnQgYmV0d2VlbiBndWVz dC12aXNpYmxlIGFuZCByZWFsIENSNCB2YWx1ZXMuICovCj4gLSNkZWZpbmUgcHZfZ3Vlc3RfY3I0 X3RvX3JlYWxfY3I0KHYpICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAtICAgICgoKHYpLT5h cmNoLnB2X3ZjcHUuY3RybHJlZ1s0XSAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+IC0gICAg ICB8IChtbXVfY3I0X2ZlYXR1cmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Cj4gLSAgICAgICAgICYgKFg4Nl9DUjRfUEdFIHwgWDg2X0NSNF9QU0UgfCBYODZfQ1I0X1NNRVAg fCAgICAgIFwKPiAtICAgICAgICAgICAgWDg2X0NSNF9TTUFQIHwgWDg2X0NSNF9PU1hTQVZFIHwg ICAgICAgICAgICAgICAgXAo+IC0gICAgICAgICAgICBYODZfQ1I0X0ZTR1NCQVNFKSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCj4gLSAgICAgIHwgKCh2KS0+ZG9tYWluLT5hcmNoLnZ0 c2MgPyBYODZfQ1I0X1RTRCA6IDApKSAgICAgICAgIFwKPiAtICAgICAmIH4oWDg2X0NSNF9ERSB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsjZGVmaW5lIHB2X2d1 ZXN0X2NyNF90b19yZWFsX2NyNCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsg ICAgKCgodiktPmFyY2gucHZfdmNwdS5jdHJscmVnWzRdICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+ICsgICAgICB8IChtbXVfY3I0X2ZlYXR1cmVzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAmIChYODZfQ1I0X1BHRSB8IFg4Nl9DUjRf UFNFIHwgWDg2X0NSNF9TTUVQIHwgICAgICAgICAgXAo+ICsgICAgICAgICAgICBYODZfQ1I0X1NN QVAgfCBYODZfQ1I0X09TWFNBVkUgfCAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAg ICBYODZfQ1I0X0ZTR1NCQVNFIHwgWDg2X0NSNF9QQ0lERSkpICAgICAgICAgICAgICAgICAgXAo+ ICsgICAgICB8ICgodiktPmRvbWFpbi0+YXJjaC52dHNjID8gWDg2X0NSNF9UU0QgOiAwKSkgICAg ICAgICAgICAgXAo+ICsgICAgICYgfihYODZfQ1I0X0RFIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgICAoKHYpLT5kb21haW4tPmFyY2gucHZf ZG9tYWluLnhwdGkgPyBYODZfQ1I0X1BHRSA6IDApKSkKCkkgZG9uJ3Qgc2VlIHdoeSB5b3UgbmVl ZCB0byByZXBvc2l0aW9uIHRoZSBiYWNrc2xhc2hlcyBoZXJlLCB3aXRob3V0CndoaWNoIHRoaXMg d291bGQgYnkgcXVpdGUgYSBiaXQgZWFzaWVyIHRvIHJldmlldy4KCj4gLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni94ODYtZGVmbnMuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYveDg2LWRl Zm5zLmgKPiBAQCAtNDYsNiArNDYsNyBAQAo+ICAgKiBJbnRlbCBDUFUgZmxhZ3MgaW4gQ1IzCj4g ICAqLwo+ICAjZGVmaW5lIFg4Nl9DUjNfTk9GTFVTSCAoX0FDKDEsIFVMTCkgPDwgNjMpCj4gKyNk ZWZpbmUgWDg2X0NSM19QQ0lETUFTSyBfQUMoMHgwMDAwMDAwMDAwMDAwZmZmLCBVTEwpIC8qIE1h c2sgZm9yIFBDSUQgKi8KCkknbSBub3QgaW50ZW5kaW5nIHRvIGNvdW50IHdoZXRoZXIgdGhlIG51 bWJlciBvZiB6ZXJvcyBoZXJlIGlzICJyaWdodCI7CmFueSBudW1iZXIgb2YgdGhlbSBpcyBva2F5 IGFjdHVhbGx5LiBXaHkgZG9uJ3QgeW91IG9taXQgdGhlbT8KCkphbgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==