From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: Re: [PATCH v5 1/2] x86/mem-sharing: Bulk mem-sharing entire domains Date: Sat, 11 Jun 2016 18:08:26 -0600 Message-ID: References: <1465687481-10095-1-git-send-email-tamas@tklengyel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bBsx4-0001RP-3c for xen-devel@lists.xenproject.org; Sun, 12 Jun 2016 00:08:30 +0000 Received: by mail-wm0-f66.google.com with SMTP id m124so6654180wme.3 for ; Sat, 11 Jun 2016 17:08:28 -0700 (PDT) Received: from mail-wm0-f51.google.com (mail-wm0-f51.google.com. [74.125.82.51]) by smtp.gmail.com with ESMTPSA id c142sm6399941wme.18.2016.06.11.17.08.27 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 11 Jun 2016 17:08:27 -0700 (PDT) Received: by mail-wm0-f51.google.com with SMTP id n184so34288171wmn.1 for ; Sat, 11 Jun 2016 17:08:27 -0700 (PDT) In-Reply-To: <1465687481-10095-1-git-send-email-tamas@tklengyel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org T24gU2F0LCBKdW4gMTEsIDIwMTYgYXQgNToyNCBQTSwgVGFtYXMgSyBMZW5neWVsIDx0YW1hc0B0 a2xlbmd5ZWwuY29tPiB3cm90ZToKPiBDdXJyZW50bHkgbWVtLXNoYXJpbmcgY2FuIGJlIHBlcmZv cm1lZCBvbiBhIHBhZ2UtYnktcGFnZSBiYXNlIGZyb20gdGhlIGNvbnRyb2wKPiBkb21haW4uIEhv d2V2ZXIsIHdoZW4gY29tcGxldGVseSBkZWR1cGxpY2F0aW5nIChjbG9uaW5nKSBhIFZNLCB0aGlz IHJlcXVpcmVzCj4gYXQgbGVhc3QgMyBoeXBlcmNhbGxzIHBlciBwYWdlLiBBcyB0aGUgdXNlciBo YXMgdG8gbG9vcCB0aHJvdWdoIGFsbCBwYWdlcyB1cAo+IHRvIG1heF9ncGZuLCB0aGlzIHByb2Nl c3MgaXMgdmVyeSBzbG93IGFuZCB3YXN0ZWZ1bC4KPgo+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBh IG5ldyBtZW1fc2hhcmluZyBtZW1vcCBmb3IgYnVsayBkZWR1cGxpY2F0aW9uIHdoZXJlCj4gdGhl IHVzZXIgZG9lc24ndCBoYXZlIHRvIHNlcGFyYXRlbHkgbm9taW5hdGUgZWFjaCBwYWdlIGluIGJv dGggdGhlIHNvdXJjZSBhbmQKPiBkZXN0aW5hdGlvbiBkb21haW4sIGFuZCB0aGUgbG9vcGluZyBv dmVyIGFsbCBwYWdlcyBoYXBwZW4gaW4gdGhlIGh5cGVydmlzb3IuCj4gVGhpcyBzaWduaWZpY2Fu dGx5IHJlZHVjZXMgdGhlIG92ZXJoZWFkIG9mIGNvbXBsZXRlbHkgZGVkdXBsaWNhdGluZyBlbnRp cmUKPiBkb21haW5zLgo+Cj4gU2lnbmVkLW9mZi1ieTogVGFtYXMgSyBMZW5neWVsIDx0YW1hc0B0 a2xlbmd5ZWwuY29tPgo+IEFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgo+ IC0tLQo+IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgo+IEdlb3JnZSBE dW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KPiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+Cj4gQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K Ck1pc3NlZCBDYzogaGVyZS4KCj4KPiB2NDogQWRkIHBhZGRpbmcgdG8gYnVsayBvcCBhbmQgZW5m b3JjZSBpdCBiZWluZyAwCj4gICAgIFVzZSBjb3JyZWN0IFhTTSBwZXJtaXNzaW9uIGNoZWNrCj4g LS0tCj4gIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIHwgIDE1ICsrKysrKwo+ICB0b29s cy9saWJ4Yy94Y19tZW1zaHIuYyAgICAgICB8ICAxOSArKysrKysrCj4gIHhlbi9hcmNoL3g4Ni9t bS9tZW1fc2hhcmluZy5jIHwgMTIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ICB4ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmggICB8ICAxNSArKysrKy0KPiAg NCBmaWxlcyBjaGFuZ2VkLCAxNjkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGlieGMvaW5j bHVkZS94ZW5jdHJsLmgKPiBpbmRleCA2YWUxYTJiLi4zNGRjYzcyIDEwMDY0NAo+IC0tLSBhL3Rv b2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCj4gKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94 ZW5jdHJsLmgKPiBAQCAtMjMyNyw2ICsyMzI3LDIxIEBAIGludCB4Y19tZW1zaHJfYWRkX3RvX3Bo eXNtYXAoeGNfaW50ZXJmYWNlICp4Y2gsCj4gICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBj bGllbnRfZG9tYWluLAo+ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgY2xpZW50 X2dmbik7Cj4KPiArLyogQWxsb3dzIHRvIGRlZHVwbGljYXRlIHRoZSBlbnRpcmUgbWVtb3J5IG9m IGEgY2xpZW50IGRvbWFpbiBpbiBidWxrLiBVc2luZwo+ICsgKiB0aGlzIGZ1bmN0aW9uIGlzIGVx dWl2YWxlbnQgb2YgY2FsbGluZyB4Y19tZW1zaHJfbm9taW5hdGVfZ2ZuIGZvciBlYWNoIGdmbgo+ ICsgKiBpbiB0aGUgdHdvIGRvbWFpbnMgZm9sbG93ZWQgYnkgeGNfbWVtc2hyX3NoYXJlX2dmbnMu IElmIHN1Y2Nlc3NmdWxsLAo+ICsgKiByZXR1cm5zIHRoZSBudW1iZXIgb2Ygc2hhcmVkIHBhZ2Vz IGluICdzaGFyZWQnLiBCb3RoIGRvbWFpbnMgbXVzdCBiZSBwYXVzZWQuCj4gKyAqCj4gKyAqIE1h eSBmYWlsIHdpdGggLUVJTlZBTCBpZiB0aGUgc291cmNlIGFuZCBjbGllbnQgZG9tYWluIGhhdmUg ZGlmZmVyZW50Cj4gKyAqIG1lbW9yeSBzaXplIG9yIGlmIG1lbW9yeSBzaGFyaW5nIGlzIG5vdCBl bmFibGVkIG9uIGVpdGhlciBvZiB0aGUgZG9tYWlucy4KPiArICogTWF5IGFsc28gZmFpbCB3aXRo IC1FTk9NRU0gaWYgdGhlcmUgaXNuJ3QgZW5vdWdoIG1lbW9yeSBhdmFpbGFibGUgdG8gc3RvcmUK PiArICogdGhlIHNoYXJpbmcgbWV0YWRhdGEgYmVmb3JlIGRlZHVwbGljYXRpb24gY2FuIGhhcHBl bi4KPiArICovCj4gK2ludCB4Y19tZW1zaHJfYnVsa19zaGFyZSh4Y19pbnRlcmZhY2UgKnhjaCwK PiArICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3Qgc291cmNlX2RvbWFpbiwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgY2xpZW50X2RvbWFpbiwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpzaGFyZWQpOwo+ICsKPiAgLyogRGVidWcgY2FsbHM6 IHJldHVybiB0aGUgbnVtYmVyIG9mIHBhZ2VzIHJlZmVyZW5jaW5nIHRoZSBzaGFyZWQgZnJhbWUg YmFja2luZwo+ICAgKiB0aGUgaW5wdXQgYXJndW1lbnQuIFNob3VsZCBiZSBvbmUgb3IgZ3JlYXRl ci4KPiAgICoKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfbWVtc2hyLmMgYi90b29scy9s aWJ4Yy94Y19tZW1zaHIuYwo+IGluZGV4IGRlYjBhYTQuLjcxMzUwZDIgMTAwNjQ0Cj4gLS0tIGEv dG9vbHMvbGlieGMveGNfbWVtc2hyLmMKPiArKysgYi90b29scy9saWJ4Yy94Y19tZW1zaHIuYwo+ IEBAIC0xODEsNiArMTgxLDI1IEBAIGludCB4Y19tZW1zaHJfYWRkX3RvX3BoeXNtYXAoeGNfaW50 ZXJmYWNlICp4Y2gsCj4gICAgICByZXR1cm4geGNfbWVtc2hyX21lbW9wKHhjaCwgc291cmNlX2Rv bWFpbiwgJm1zbyk7Cj4gIH0KPgo+ICtpbnQgeGNfbWVtc2hyX2J1bGtfc2hhcmUoeGNfaW50ZXJm YWNlICp4Y2gsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IHNvdXJjZV9kb21h aW4sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGNsaWVudF9kb21haW4sCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqc2hhcmVkKQo+ICt7Cj4gKyAgICBp bnQgcmM7Cj4gKyAgICB4ZW5fbWVtX3NoYXJpbmdfb3BfdCBtc287Cj4gKwo+ICsgICAgbWVtc2V0 KCZtc28sIDAsIHNpemVvZihtc28pKTsKPiArCj4gKyAgICBtc28ub3AgPSBYRU5NRU1fc2hhcmlu Z19vcF9idWxrX3NoYXJlOwo+ICsgICAgbXNvLnUuYnVsay5jbGllbnRfZG9tYWluID0gY2xpZW50 X2RvbWFpbjsKPiArCj4gKyAgICByYyA9IHhjX21lbXNocl9tZW1vcCh4Y2gsIHNvdXJjZV9kb21h aW4sICZtc28pOwo+ICsgICAgaWYgKCAhcmMgJiYgc2hhcmVkICkgKnNoYXJlZCA9IG1zby51LmJ1 bGsuc2hhcmVkOwo+ICsKPiArICAgIHJldHVybiByYzsKPiArfQo+ICsKPiAgaW50IHhjX21lbXNo cl9kb21haW5fcmVzdW1lKHhjX2ludGVyZmFjZSAqeGNoLAo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9taWRfdCBkb21pZCkKPiAgewo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv bW0vbWVtX3NoYXJpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCj4gaW5kZXgg YTUyMjQyMy4uYmEwNmZiMCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJp bmcuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCj4gQEAgLTEyOTQsNiAr MTI5NCw1NCBAQCBpbnQgcmVsaW5xdWlzaF9zaGFyZWRfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCkK PiAgICAgIHJldHVybiByYzsKPiAgfQo+Cj4gK3N0YXRpYyBpbnQgYnVsa19zaGFyZShzdHJ1Y3Qg ZG9tYWluICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwgdW5zaWduZWQgbG9uZyBsaW1pdCwKPiArICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBtZW1fc2hhcmluZ19vcF9idWxrICpidWxrKQo+ICt7 Cj4gKyAgICBpbnQgcmMgPSAwOwo+ICsgICAgc2hyX2hhbmRsZV90IHNoLCBjaDsKPiArCj4gKyAg ICB3aGlsZSggbGltaXQgPiBidWxrLT5zdGFydCApCj4gKyAgICB7Cj4gKyAgICAgICAgLyoKPiAr ICAgICAgICAgKiBXZSBvbmx5IGJyZWFrIG91dCBpZiB3ZSBydW4gb3V0IG9mIG1lbW9yeSBhcyBp bmRpdmlkdWFsIHBhZ2VzIG1heQo+ICsgICAgICAgICAqIGxlZ2l0aW1hdGVseSBiZSB1bnNoYXJh YmxlIGFuZCB3ZSBqdXN0IHdhbnQgdG8gc2tpcCBvdmVyIHRob3NlLgo+ICsgICAgICAgICAqLwo+ ICsgICAgICAgIHJjID0gbWVtX3NoYXJpbmdfbm9taW5hdGVfcGFnZShkLCBidWxrLT5zdGFydCwg MCwgJnNoKTsKPiArICAgICAgICBpZiAoIHJjID09IC1FTk9NRU0gKQo+ICsgICAgICAgICAgICBi cmVhazsKPiArICAgICAgICBpZiAoICFyYyApCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBy YyA9IG1lbV9zaGFyaW5nX25vbWluYXRlX3BhZ2UoY2QsIGJ1bGstPnN0YXJ0LCAwLCAmY2gpOwo+ ICsgICAgICAgICAgICBpZiAoIHJjID09IC1FTk9NRU0gKQo+ICsgICAgICAgICAgICAgICAgYnJl YWs7Cj4gKyAgICAgICAgICAgIGlmICggIXJjICkKPiArICAgICAgICAgICAgewo+ICsgICAgICAg ICAgICAgICAgLyogSWYgd2UgZ2V0IGhlcmUgdGhpcyBzaG91bGQgYmUgZ3VhcmFudGVlZCB0byBz dWNjZWVkLiAqLwo+ICsgICAgICAgICAgICAgICAgcmMgPSBtZW1fc2hhcmluZ19zaGFyZV9wYWdl cyhkLCBidWxrLT5zdGFydCwgc2gsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNkLCBidWxrLT5zdGFydCwgY2gpOwo+ICsgICAgICAgICAgICAgICAgQVNT RVJUKCFyYyk7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIC8q IENoZWNrIGZvciBjb250aW51YXRpb24gaWYgaXQncyBub3QgdGhlIGxhc3QgaXRlcmF0aW9uLiAq Lwo+ICsgICAgICAgIGlmICggbGltaXQgPiArK2J1bGstPnN0YXJ0ICYmIGh5cGVyY2FsbF9wcmVl bXB0X2NoZWNrKCkgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgcmMgPSAxOwo+ICsgICAg ICAgICAgICBicmVhazsKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAgLyoKPiArICAg ICAqIFdlIG9ubHkgcHJvcGFnYXRlIC1FTk9NRU0gYXMgaW5kaXZpZHVhbCBwYWdlcyBtYXkgZmFp bCB3aXRoIC1FSU5WQUwsCj4gKyAgICAgKiBhbmQgZm9yIGJ1bGsgc2hhcmluZyB3ZSBvbmx5IGNh cmUgaWYgLUVOT01FTSB3YXMgZW5jb3VudGVyZWQgc28gd2UgcmVzZXQKPiArICAgICAqIHJjIGhl cmUuCj4gKyAgICAgKi8KPiArICAgIGlmICggcmMgPCAwICYmIHJjICE9IC1FTk9NRU0gKQo+ICsg ICAgICAgIHJjID0gMDsKPiArCj4gKyAgICByZXR1cm4gcmM7Cj4gK30KPiArCj4gIGludCBtZW1f c2hhcmluZ19tZW1vcChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tZW1fc2hhcmluZ19vcF90 KSBhcmcpCj4gIHsKPiAgICAgIGludCByYzsKPiBAQCAtMTQ2OCw2ICsxNTE2LDc5IEBAIGludCBt ZW1fc2hhcmluZ19tZW1vcChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tZW1fc2hhcmluZ19v cF90KSBhcmcpCj4gICAgICAgICAgfQo+ICAgICAgICAgIGJyZWFrOwo+Cj4gKyAgICAgICAgY2Fz ZSBYRU5NRU1fc2hhcmluZ19vcF9idWxrX3NoYXJlOgo+ICsgICAgICAgIHsKPiArICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBtYXhfc2dmbiwgbWF4X2NnZm47Cj4gKyAgICAgICAgICAgIHN0cnVj dCBkb21haW4gKmNkOwo+ICsKPiArICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwo+ICsgICAgICAg ICAgICBpZiggbXNvLnUuYnVsay5fcGFkWzBdIHx8IG1zby51LmJ1bGsuX3BhZFsxXSB8fCBtc28u dS5idWxrLl9wYWRbMl0gKQo+ICsgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gKwo+ICsgICAg ICAgICAgICBpZiAoICFtZW1fc2hhcmluZ19lbmFibGVkKGQpICkKPiArICAgICAgICAgICAgICAg IGdvdG8gb3V0Owo+ICsKPiArICAgICAgICAgICAgcmMgPSByY3VfbG9ja19saXZlX3JlbW90ZV9k b21haW5fYnlfaWQobXNvLnUuYnVsay5jbGllbnRfZG9tYWluLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2QpOwo+ICsgICAgICAgICAgICBp ZiAoIHJjICkKPiArICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ICsKPiArICAgICAgICAgICAg LyoKPiArICAgICAgICAgICAgICogV2UgcmV1c2UgWEVOTUVNX3NoYXJpbmdfb3Bfc2hhcmUgWFNN IGNoZWNrIGhlcmUgYXMgdGhpcyBpcyBlc3NlbnRpYWxseQo+ICsgICAgICAgICAgICAgKiB0aGUg c2FtZSBjb25jZXB0IHJlcGVhdGVkIG92ZXIgbXVsdGlwbGUgcGFnZXMuCj4gKyAgICAgICAgICAg ICAqLwo+ICsgICAgICAgICAgICByYyA9IHhzbV9tZW1fc2hhcmluZ19vcChYU01fRE1fUFJJViwg ZCwgY2QsIFhFTk1FTV9zaGFyaW5nX29wX3NoYXJlKTsKPiArICAgICAgICAgICAgaWYgKCByYyAp Cj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGNk KTsKPiArICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ICsgICAgICAgICAgICB9Cj4gKwo+ICsg ICAgICAgICAgICBpZiAoICFtZW1fc2hhcmluZ19lbmFibGVkKGNkKSApCj4gKyAgICAgICAgICAg IHsKPiArICAgICAgICAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGNkKTsKPiArICAgICAgICAg ICAgICAgIHJjID0gLUVJTlZBTDsKPiArICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ICsgICAg ICAgICAgICB9Cj4gKwo+ICsgICAgICAgICAgICBpZiAoICFhdG9taWNfcmVhZCgmZC0+cGF1c2Vf Y291bnQpIHx8Cj4gKyAgICAgICAgICAgICAgICAgIWF0b21pY19yZWFkKCZjZC0+cGF1c2VfY291 bnQpICkKPiArICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgcmN1X3VubG9ja19kb21h aW4oY2QpOwo+ICsgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwo+ICsgICAgICAgICAgICAg ICAgZ290byBvdXQ7Cj4gKyAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgIG1heF9zZ2Zu ID0gZG9tYWluX2dldF9tYXhpbXVtX2dwZm4oZCk7Cj4gKyAgICAgICAgICAgIG1heF9jZ2ZuID0g ZG9tYWluX2dldF9tYXhpbXVtX2dwZm4oY2QpOwo+ICsKPiArICAgICAgICAgICAgaWYgKCBtYXhf c2dmbiAhPSBtYXhfY2dmbiB8fCBtYXhfc2dmbiA8IG1zby51LmJ1bGsuc3RhcnQgKQo+ICsgICAg ICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihjZCk7Cj4gKyAg ICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7Cj4gKyAgICAgICAgICAgICAgICBnb3RvIG91dDsK PiArICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICAgICAgcmMgPSBidWxrX3NoYXJlKGQsIGNk LCBtYXhfc2dmbiArIDEsICZtc28udS5idWxrKTsKPiArICAgICAgICAgICAgaWYgKCByYyA+IDAg KQo+ICsgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICBpZiAoIF9fY29weV90b19ndWVz dChhcmcsICZtc28sIDEpICkKPiArICAgICAgICAgICAgICAgICAgICByYyA9IC1FRkFVTFQ7Cj4g KyAgICAgICAgICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgICAgICAgcmMgPSBoeXBlcmNh bGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVSVklTT1JfbWVtb3J5X29wLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxoIiwgWEVO TUVNX3NoYXJpbmdfb3AsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcmcpOwo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIGVs c2UKPiArICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgbXNvLnUuYnVsay5zdGFydCA9 IDA7Cj4gKyAgICAgICAgICAgICAgICBtc28udS5idWxrLnNoYXJlZCA9IGF0b21pY19yZWFkKCZj ZC0+c2hyX3BhZ2VzKTsKPiArICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICAgICAgcmN1X3Vu bG9ja19kb21haW4oY2QpOwo+ICsgICAgICAgIH0KPiArICAgICAgICBicmVhazsKPiArCj4gICAg ICAgICAgY2FzZSBYRU5NRU1fc2hhcmluZ19vcF9kZWJ1Z19nZm46Cj4gICAgICAgICAgewo+ICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGdmbiA9IG1zby51LmRlYnVnLnUuZ2ZuOwo+IGRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv bWVtb3J5LmgKPiBpbmRleCAyOWVjNTcxLi4wODRmMDZlIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNs dWRlL3B1YmxpYy9tZW1vcnkuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaAo+ IEBAIC00NjUsNiArNDY1LDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9hY2Nl c3Nfb3BfdCk7Cj4gICNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfZGVidWdfZ3JlZiAgICAgICAg NQo+ICAjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2FkZF9waHlzbWFwICAgICAgIDYKPiAgI2Rl ZmluZSBYRU5NRU1fc2hhcmluZ19vcF9hdWRpdCAgICAgICAgICAgICA3Cj4gKyNkZWZpbmUgWEVO TUVNX3NoYXJpbmdfb3BfYnVsa19zaGFyZSAgICAgICAgOAo+Cj4gICNkZWZpbmUgWEVOTUVNX1NI QVJJTkdfT1BfU19IQU5ETEVfSU5WQUxJRCAgKC0xMCkKPiAgI2RlZmluZSBYRU5NRU1fU0hBUklO R19PUF9DX0hBTkRMRV9JTlZBTElEICAoLTkpCj4gQEAgLTUwMCw3ICs1MDEsMTkgQEAgc3RydWN0 IHhlbl9tZW1fc2hhcmluZ19vcCB7Cj4gICAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgY2xp ZW50X2dmbjsgICAgLyogSU46IHRoZSBjbGllbnQgZ2ZuICovCj4gICAgICAgICAgICAgIHVpbnQ2 NF9hbGlnbmVkX3QgY2xpZW50X2hhbmRsZTsgLyogSU46IGhhbmRsZSB0byB0aGUgY2xpZW50IHBh Z2UgKi8KPiAgICAgICAgICAgICAgZG9taWRfdCAgY2xpZW50X2RvbWFpbjsgLyogSU46IHRoZSBj bGllbnQgZG9tYWluIGlkICovCj4gLSAgICAgICAgfSBzaGFyZTsKPiArICAgICAgICB9IHNoYXJl Owo+ICsgICAgICAgIHN0cnVjdCBtZW1fc2hhcmluZ19vcF9idWxrIHsgICAgICAgICAvKiBPUF9C VUxLX1NIQVJFICovCj4gKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qgc3RhcnQ7ICAgICAg ICAgIC8qIElOOiBzdGFydCBnZm4uIFNldCB0byAwIGZvcgo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsIGRlZHVwbGljYXRpb24uIEZpZWxkIGlz Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0 IHRvIDAgd2hlbiBoeXBlcmNhbGwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29tcGxldGVzICovCj4gKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVk X3Qgc2hhcmVkOyAgICAgICAgIC8qIE9VVDogdGhlIG51bWJlciBvZiBnZm5zCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgYXJlIHNoYXJlZCBh ZnRlciB0aGlzCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9wZXJhdGlvbiwgaW5jbHVkaW5nIHBhZ2VzCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgd2VyZSBhbHJlYWR5IHNoYXJlZCAqLwo+ICsg ICAgICAgICAgICBkb21pZF90IGNsaWVudF9kb21haW47ICAgICAgICAgICAvKiBJTjogdGhlIGNs aWVudCBkb21haW4gaWQgKi8KPiArICAgICAgICAgICAgdWludDE2X3QgX3BhZFszXTsKPiArICAg ICAgICB9IGJ1bGs7Cj4gICAgICAgICAgc3RydWN0IG1lbV9zaGFyaW5nX29wX2RlYnVnIHsgICAg IC8qIE9QX0RFQlVHX3h4eCAqLwo+ICAgICAgICAgICAgICB1bmlvbiB7Cj4gICAgICAgICAgICAg ICAgICB1aW50NjRfYWxpZ25lZF90IGdmbjsgICAgICAvKiBJTjogZ2ZuIHRvIGRlYnVnICAgICAg ICAgICovCj4gLS0KPiAyLjguMQo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=