From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH v3 4/5] xen: sched_null: support for hard affinity Date: Fri, 7 Apr 2017 15:57:35 +0100 Message-ID: <9ef86fc5-f92c-636b-b8f3-88de1ffe9c90@citrix.com> References: <149156740206.26316.13423335183353072520.stgit@Solace.fritz.box> <149156810362.26316.5028743341081886203.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cwVKX-00077x-CX for xen-devel@lists.xenproject.org; Fri, 07 Apr 2017 14:57:41 +0000 In-Reply-To: <149156810362.26316.5028743341081886203.stgit@Solace.fritz.box> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Dario Faggioli , xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Jonathan Davies , Julien Grall , Marcus Granado List-Id: xen-devel@lists.xenproject.org T24gMDcvMDQvMTcgMTM6MjgsIERhcmlvIEZhZ2dpb2xpIHdyb3RlOgo+IEFzIGEgKHJ1ZGltZW50 YWwpIHdheSBvZiBkaXJlY3RpbmcgYW5kIGFmZmVjdGluZyB0aGUKPiBwbGFjZW1lbnQgbG9naWMg aW1wbGVtZW50ZWQgYnkgdGhlIHNjaGVkdWxlciwgc3VwcG9ydAo+IHZDUFUgaGFyZCBhZmZpbml0 eS4KPiAKPiBCYXNpY2FsbHksIGEgdkNQVSB3aWxsIG5vdyBiZSBhc3NpZ25lZCBvbmx5IHRvIGEg cENQVQo+IHRoYXQgaXMgcGFydCBvZiBpdHMgb3duIGhhcmQgYWZmaW5pdHkuIElmIHN1Y2ggcENQ VShzKQo+IGlzIChhcmUpIGJ1c3ksIHRoZSB2Q1BVIHdpbGwgd2FpdCwgbGlrZSBpdCBoYXBwZW5z Cj4gd2hlbiB0aGVyZSBhcmUgbm8gZnJlZSBwQ1BVcy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBEYXJp byBGYWdnaW9saSA8ZGFyaW8uZmFnZ2lvbGlAY2l0cml4LmNvbT4KClJldmlld2VkLWJ5OiBHZW9y Z2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Cgo+IC0tLQo+IENjOiBHZW9yZ2Ug RHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Cj4gQ2M6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KPiBDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxA YXJtLmNvbT4KPiBDYzogSm9uYXRoYW4gRGF2aWVzIDxKb25hdGhhbi5EYXZpZXNAY2l0cml4LmNv bT4KPiBDYzogTWFyY3VzIEdyYW5hZG8gPG1hcmN1cy5ncmFuYWRvQGNpdHJpeC5jb20+Cj4gLS0t Cj4gQ2hhbmdlcyBmcm9tIHYyOgo+IC0gd2hlbiByZW1vdmluZyBhIHZDUFUgZnJvbSB0aGUgc2No ZWR1bGVyLCBjb3JyZWN0bHkgaGFuZGxlIHRoZSBjYXNlIHdoZXJlCj4gICB0aGVyZSBhcmUgbXVs dGlwbGUgdkNQVXMgaW4gdGhlIHdhaXRxdWV1ZSwgd2l0aCBkaWZmZXJlbnQgYWZmaW5pdGllcy4K PiAKPiBDaGFuZ2VzIGZyb20gdjE6Cj4gLSBjb2Rpbmcgc3R5bGUgZml4ZXMgKHJlbW92ZWQgc29t ZSBoYXJkIHRhYnMpOwo+IC0gYmV0dGVyIHNpZ25hdHVyZSBmb3IgY2hlY2tfbnZjX2FmZmluaXR5 KCkgKGFsc28gcmVuYW1lZCBpbgo+ICAgdmNwdV9jaGVja19hZmZpbml0eSgpKTsKPiAtIGZpeGVk IGJ1ZyBpbiBudWxsX3ZjcHVfcmVtb3ZlKCkgdXNpbmcgdW5pbml0aWFsaXplZCBjcHVtYXNrLgo+ IC0tLQo+ICB4ZW4vY29tbW9uL3NjaGVkX251bGwuYyB8ICAgNzEgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDQ1IGluc2Vy dGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3Nj aGVkX251bGwuYyBiL3hlbi9jb21tb24vc2NoZWRfbnVsbC5jCj4gaW5kZXggYzJjNDE4Mi4uNzA1 YzAwYSAxMDA2NDQKPiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkX251bGwuYwo+ICsrKyBiL3hlbi9j b21tb24vc2NoZWRfbnVsbC5jCj4gQEAgLTExNSw2ICsxMTUsMTQgQEAgc3RhdGljIGlubGluZSBz dHJ1Y3QgbnVsbF9kb20gKm51bGxfZG9tKGNvbnN0IHN0cnVjdCBkb21haW4gKmQpCj4gICAgICBy ZXR1cm4gZC0+c2NoZWRfcHJpdjsKPiAgfQo+ICAKPiArc3RhdGljIGlubGluZSBib29sIHZjcHVf Y2hlY2tfYWZmaW5pdHkoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjcHUpCj4gK3sKPiAr ICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgdi0+Y3B1X2hhcmRfYWZm aW5pdHksCj4gKyAgICAgICAgICAgICAgICBjcHVwb29sX2RvbWFpbl9jcHVtYXNrKHYtPmRvbWFp bikpOwo+ICsKPiArICAgIHJldHVybiBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3B1bWFza19zY3Jh dGNoX2NwdShjcHUpKTsKPiArfQo+ICsKPiAgc3RhdGljIGludCBudWxsX2luaXQoc3RydWN0IHNj aGVkdWxlciAqb3BzKQo+ICB7Cj4gICAgICBzdHJ1Y3QgbnVsbF9wcml2YXRlICpwcnY7Cj4gQEAg LTI3NiwxNiArMjg0LDIyIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGlja19jcHUoc3RydWN0IG51 bGxfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgdmNwdSAqdikKPiAgCj4gICAgICBBU1NFUlQoc3Bpbl9p c19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKPiAg Cj4gKyAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIHYtPmNwdV9oYXJk X2FmZmluaXR5LCBjcHVzKTsKPiArCj4gICAgICAvKgo+IC0gICAgICogSWYgb3VyIHByb2Nlc3Nv ciBpcyBmcmVlLCBvciB3ZSBhcmUgYXNzaWduZWQgdG8gaXQsIGFuZCBpdCBpcwo+IC0gICAgICog YWxzbyBzdGlsbCB2YWxpZCwganVzdCBnbyBmb3IgaXQuCj4gKyAgICAgKiBJZiBvdXIgcHJvY2Vz c29yIGlzIGZyZWUsIG9yIHdlIGFyZSBhc3NpZ25lZCB0byBpdCwgYW5kIGl0IGlzIGFsc28KPiAr ICAgICAqIHN0aWxsIHZhbGlkIGFuZCBwYXJ0IG9mIG91ciBhZmZpbml0eSwganVzdCBnbyBmb3Ig aXQuCj4gKyAgICAgKiAoTm90ZSB0aGF0IHdlIG1heSBjYWxsIHZjcHVfY2hlY2tfYWZmaW5pdHko KSwgYnV0IHdlIGRlbGliZXJhdGVseQo+ICsgICAgICogZG9uJ3QsIHNvIHdlIGdldCB0byBrZWVw IGluIHRoZSBzY3JhdGNoIGNwdW1hc2sgd2hhdCB3ZSBoYXZlIGp1c3QKPiArICAgICAqIHB1dCBp biBpdC4pCj4gICAgICAgKi8KPiAgICAgIGlmICggbGlrZWx5KChwZXJfY3B1KG5wYywgY3B1KS52 Y3B1ID09IE5VTEwgfHwgcGVyX2NwdShucGMsIGNwdSkudmNwdSA9PSB2KQo+IC0gICAgICAgICAg ICAgICAgJiYgY3B1bWFza190ZXN0X2NwdShjcHUsIGNwdXMpKSApCj4gKyAgICAgICAgICAgICAg ICAmJiBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpKSkgKQo+ ICAgICAgICAgIHJldHVybiBjcHU7Cj4gIAo+IC0gICAgLyogSWYgbm90LCBqdXN0IGdvIGZvciBh IHZhbGlkIGZyZWUgcENQVSwgaWYgYW55ICovCj4gLSAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3Nj cmF0Y2hfY3B1KGNwdSksICZwcnYtPmNwdXNfZnJlZSwgY3B1cyk7Cj4gKyAgICAvKiBJZiBub3Qs IGp1c3QgZ28gZm9yIGEgZnJlZSBwQ1BVLCB3aXRoaW4gb3VyIGFmZmluaXR5LCBpZiBhbnkgKi8K PiArICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1bWFza19zY3Jh dGNoX2NwdShjcHUpLAo+ICsgICAgICAgICAgICAgICAgJnBydi0+Y3B1c19mcmVlKTsKPiAgICAg IG5ld19jcHUgPSBjcHVtYXNrX2ZpcnN0KGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSk7Cj4gIAo+ ICAgICAgaWYgKCBsaWtlbHkobmV3X2NwdSAhPSBucl9jcHVfaWRzKSApCj4gQEAgLTMwMiw3ICsz MTYsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHBpY2tfY3B1KHN0cnVjdCBudWxsX3ByaXZhdGUg KnBydiwgc3RydWN0IHZjcHUgKnYpCj4gICAgICAgKiBhcyB3ZSB3aWxsIGFjdHVhbGx5IGFzc2ln biB0aGUgdkNQVSB0byB0aGUgcENQVSB3ZSByZXR1cm4gZnJvbSBoZXJlLAo+ICAgICAgICogb25s eSBpZiB0aGUgcENQVSBpcyBmcmVlLgo+ICAgICAgICovCj4gLSAgICByZXR1cm4gY3B1bWFza19h bnkoY3B1cyk7Cj4gKyAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIGNw dXMsIHYtPmNwdV9oYXJkX2FmZmluaXR5KTsKPiArICAgIHJldHVybiBjcHVtYXNrX2FueShjcHVt YXNrX3NjcmF0Y2hfY3B1KGNwdSkpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCB2Y3B1X2Fzc2ln bihzdHJ1Y3QgbnVsbF9wcml2YXRlICpwcnYsIHN0cnVjdCB2Y3B1ICp2LAo+IEBAIC0zNjEsNiAr Mzc2LDcgQEAgc3RhdGljIHZvaWQgbnVsbF92Y3B1X2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2KQo+ICB7Cj4gICAgICBzdHJ1Y3QgbnVsbF9wcml2YXRl ICpwcnYgPSBudWxsX3ByaXYob3BzKTsKPiAgICAgIHN0cnVjdCBudWxsX3ZjcHUgKm52YyA9IG51 bGxfdmNwdSh2KTsKPiArICAgIHVuc2lnbmVkIGludCBjcHU7Cj4gICAgICBzcGlubG9ja190ICps b2NrOwo+ICAKPiAgICAgIEFTU0VSVCghaXNfaWRsZV92Y3B1KHYpKTsKPiBAQCAtMzY4LDIzICsz ODQsMjUgQEAgc3RhdGljIHZvaWQgbnVsbF92Y3B1X2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2KQo+ICAgICAgbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9j a19pcnEodik7Cj4gICByZXRyeToKPiAgCj4gLSAgICB2LT5wcm9jZXNzb3IgPSBwaWNrX2NwdShw cnYsIHYpOwo+ICsgICAgY3B1ID0gdi0+cHJvY2Vzc29yID0gcGlja19jcHUocHJ2LCB2KTsKPiAg Cj4gICAgICBzcGluX3VubG9jayhsb2NrKTsKPiAgCj4gICAgICBsb2NrID0gdmNwdV9zY2hlZHVs ZV9sb2NrKHYpOwo+ICAKPiArICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1 KSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHksCj4gKyAgICAgICAgICAgICAgICBjcHVwb29sX2RvbWFp bl9jcHVtYXNrKHYtPmRvbWFpbikpOwo+ICsKPiAgICAgIC8qIElmIHRoZSBwQ1BVIGlzIGZyZWUs IHdlIGFzc2lnbiB2IHRvIGl0ICovCj4gLSAgICBpZiAoIGxpa2VseShwZXJfY3B1KG5wYywgdi0+ cHJvY2Vzc29yKS52Y3B1ID09IE5VTEwpICkKPiArICAgIGlmICggbGlrZWx5KHBlcl9jcHUobnBj LCBjcHUpLnZjcHUgPT0gTlVMTCkgKQo+ICAgICAgewo+ICAgICAgICAgIC8qCj4gICAgICAgICAg ICogSW5zZXJ0IGlzIGZvbGxvd2VkIGJ5IHZjcHVfd2FrZSgpLCBzbyB0aGVyZSdzIG5vIG5lZWQg dG8gcG9rZQo+ICAgICAgICAgICAqIHRoZSBwY3B1IHdpdGggdGhlIFNDSEVEVUxFX1NPRlRJUlEs IGFzIHdha2Ugd2lsbCBkbyB0aGF0Lgo+ICAgICAgICAgICAqLwo+IC0gICAgICAgIHZjcHVfYXNz aWduKHBydiwgdiwgdi0+cHJvY2Vzc29yKTsKPiArICAgICAgICB2Y3B1X2Fzc2lnbihwcnYsIHYs IGNwdSk7Cj4gICAgICB9Cj4gLSAgICBlbHNlIGlmICggY3B1bWFza19pbnRlcnNlY3RzKCZwcnYt PmNwdXNfZnJlZSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1cG9vbF9k b21haW5fY3B1bWFzayh2LT5kb21haW4pKSApCj4gKyAgICBlbHNlIGlmICggY3B1bWFza19pbnRl cnNlY3RzKCZwcnYtPmNwdXNfZnJlZSwgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpKSApCj4gICAg ICB7Cj4gICAgICAgICAgLyoKPiAgICAgICAgICAgKiBJZiB0aGUgcENQVSBpcyBub3QgZnJlZSAo ZS5nLiwgYmVjYXVzZSB3ZSByYWNlZCB3aXRoIGFub3RoZXIKPiBAQCAtNDEzLDI3ICs0MzEsMjcg QEAgc3RhdGljIHZvaWQgbnVsbF92Y3B1X2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpv cHMsIHN0cnVjdCB2Y3B1ICp2KQo+ICBzdGF0aWMgdm9pZCBfdmNwdV9yZW1vdmUoc3RydWN0IG51 bGxfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgdmNwdSAqdikKPiAgewo+ICAgICAgdW5zaWduZWQgaW50 IGNwdSA9IHYtPnByb2Nlc3NvcjsKPiAtICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47 Cj4gICAgICBzdHJ1Y3QgbnVsbF92Y3B1ICp3dmM7Cj4gIAo+ICAgICAgQVNTRVJUKGxpc3RfZW1w dHkoJm51bGxfdmNwdSh2KS0+d2FpdHFfZWxlbSkpOwo+ICAKPiArICAgIHZjcHVfZGVhc3NpZ24o cHJ2LCB2LCBjcHUpOwo+ICsKPiAgICAgIHNwaW5fbG9jaygmcHJ2LT53YWl0cV9sb2NrKTsKPiAg Cj4gICAgICAvKgo+IC0gICAgICogSWYgdiBpcyBhc3NpZ25lZCB0byBhIHBDUFUsIGxldCdzIHNl ZSBpZiB0aGVyZSBpcyBzb21lb25lIHdhaXRpbmcuCj4gLSAgICAgKiBJZiB5ZXMsIHdlIGFzc2ln biBpdCB0byBjcHUsIGluIHNwaXRlIG9mIHYuCj4gKyAgICAgKiBJZiB2IGlzIGFzc2lnbmVkIHRv IGEgcENQVSwgbGV0J3Mgc2VlIGlmIHRoZXJlIGlzIHNvbWVvbmUgd2FpdGluZywKPiArICAgICAq IHN1aXRhYmxlIHRvIGJlIGFzc2lnbmVkIHRvIGl0Lgo+ICAgICAgICovCj4gLSAgICB3dmMgPSBs aXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJnBydi0+d2FpdHEsIHN0cnVjdCBudWxsX3ZjcHUsIHdh aXRxX2VsZW0pOwo+IC0gICAgaWYgKCB3dmMgJiYgY3B1bWFza190ZXN0X2NwdShjcHUsIGNwdXBv b2xfZG9tYWluX2NwdW1hc2soZCkpICkKPiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIHd2Yywg JnBydi0+d2FpdHEsIHdhaXRxX2VsZW0gKQo+ICAgICAgewo+IC0gICAgICAgIGxpc3RfZGVsX2lu aXQoJnd2Yy0+d2FpdHFfZWxlbSk7Cj4gLSAgICAgICAgdmNwdV9hc3NpZ24ocHJ2LCB3dmMtPnZj cHUsIGNwdSk7Cj4gLSAgICAgICAgY3B1X3JhaXNlX3NvZnRpcnEoY3B1LCBTQ0hFRFVMRV9TT0ZU SVJRKTsKPiAtICAgIH0KPiAtICAgIGVsc2UKPiAtICAgIHsKPiAtICAgICAgICB2Y3B1X2RlYXNz aWduKHBydiwgdiwgY3B1KTsKPiArICAgICAgICBpZiAoIHZjcHVfY2hlY2tfYWZmaW5pdHkod3Zj LT52Y3B1LCBjcHUpICkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIGxpc3RfZGVsX2luaXQo Jnd2Yy0+d2FpdHFfZWxlbSk7Cj4gKyAgICAgICAgICAgIHZjcHVfYXNzaWduKHBydiwgd3ZjLT52 Y3B1LCBjcHUpOwo+ICsgICAgICAgICAgICBjcHVfcmFpc2Vfc29mdGlycShjcHUsIFNDSEVEVUxF X1NPRlRJUlEpOwo+ICsgICAgICAgICAgICBicmVhazsKPiArICAgICAgICB9Cj4gICAgICB9Cj4g IAo+ICAgICAgc3Bpbl91bmxvY2soJnBydi0+d2FpdHFfbG9jayk7Cj4gQEAgLTU0NywxMSArNTY1 LDEyIEBAIHN0YXRpYyB2b2lkIG51bGxfdmNwdV9taWdyYXRlKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IHZjcHUgKnYsCj4gICAgICAgKiBMZXQncyBub3cgY29uc2lkZXIgbmV3 X2NwdSwgd2hpY2ggaXMgd2hlcmUgdiBpcyBiZWluZyBzZW50LiBJdCBjYW4gYmUKPiAgICAgICAq IGVpdGhlciBmcmVlLCBvciBoYXZlIGEgdkNQVSBhbHJlYWR5IGFzc2lnbmVkIHRvIGl0Lgo+ICAg ICAgICoKPiAtICAgICAqIEluIHRoZSBmb3JtZXIgY2FzZSwgd2Ugc2hvdWxkIGFzc2lnbiB2IHRv IGl0LCBhbmQgdHJ5IHRvIGdldCBpdCB0byBydW4uCj4gKyAgICAgKiBJbiB0aGUgZm9ybWVyIGNh c2UsIHdlIHNob3VsZCBhc3NpZ24gdiB0byBpdCwgYW5kIHRyeSB0byBnZXQgaXQgdG8gcnVuLAo+ ICsgICAgICogaWYgcG9zc2libGUsIGFjY29yZGluZyB0byBhZmZpbml0eS4KPiAgICAgICAqCj4g ICAgICAgKiBJbiBsYXR0ZXIsIGFsbCB3ZSBjYW4gZG8gaXMgdG8gcGFyayB2IGluIHRoZSB3YWl0 cXVldWUuCj4gICAgICAgKi8KPiAtICAgIGlmICggcGVyX2NwdShucGMsIG5ld19jcHUpLnZjcHUg PT0gTlVMTCApCj4gKyAgICBpZiAoIHBlcl9jcHUobnBjLCBuZXdfY3B1KS52Y3B1ID09IE5VTEwg JiYgdmNwdV9jaGVja19hZmZpbml0eSh2LCBuZXdfY3B1KSApCj4gICAgICB7Cj4gICAgICAgICAg LyogdiBtaWdodCBoYXZlIGJlZW4gaW4gdGhlIHdhaXRxdWV1ZSwgc28gcmVtb3ZlIGl0ICovCj4g ICAgICAgICAgc3Bpbl9sb2NrKCZwcnYtPndhaXRxX2xvY2spOwo+IEBAIC02MzUsNyArNjU0LDcg QEAgc3RhdGljIHN0cnVjdCB0YXNrX3NsaWNlIG51bGxfc2NoZWR1bGUoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLAo+ICAgICAgewo+ICAgICAgICAgIHNwaW5fbG9jaygmcHJ2LT53YWl0cV9s b2NrKTsKPiAgICAgICAgICB3dmMgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJnBydi0+d2Fp dHEsIHN0cnVjdCBudWxsX3ZjcHUsIHdhaXRxX2VsZW0pOwo+IC0gICAgICAgIGlmICggd3ZjICkK PiArICAgICAgICBpZiAoIHd2YyAmJiB2Y3B1X2NoZWNrX2FmZmluaXR5KHd2Yy0+dmNwdSwgY3B1 KSApCj4gICAgICAgICAgewo+ICAgICAgICAgICAgICB2Y3B1X2Fzc2lnbihwcnYsIHd2Yy0+dmNw dSwgY3B1KTsKPiAgICAgICAgICAgICAgbGlzdF9kZWxfaW5pdCgmd3ZjLT53YWl0cV9lbGVtKTsK PiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK