From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v8.1 15/27] xsplice, symbols: Implement fast symbol names -> virtual addresses lookup Date: Fri, 22 Apr 2016 11:21:45 -0400 Message-ID: <20160422152145.GA15003@char.us.oracle.com> References: <1460584928-32440-1-git-send-email-konrad.wilk@oracle.com> <1460584928-32440-16-git-send-email-konrad.wilk@oracle.com> <57169A9102000078000E6D8E@prv-mh.provo.novell.com> 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 1atcu9-00074x-QR for xen-devel@lists.xenproject.org; Fri, 22 Apr 2016 15:22:02 +0000 Content-Disposition: inline In-Reply-To: <57169A9102000078000E6D8E@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: keir@xen.org, ross.lagerwall@citrix.com, andrew.cooper3@citrix.com, mpohlack@amazon.com, sasha.levin@oracle.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBBcHIgMTksIDIwMTYgYXQgMDE6NTI6MzNQTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gPj4+IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4g MDQvMTQvMTYgMTI6MDIgQU0gPj4+Cj4gPk5FVyBDT0RFOgo+ID4KPiA+VG8gbWFrZSB0aGF0IHdv cmsgd2UgYWRkIHRocmVlIHRhYmxlczoKPiAKPiBXaHkgdGhyZWU/IFR3byAob3IgYSBzaW5nbGUg b25lIHdpdGggZWxlbWVudCBwYWlycykgb3VnaHQgdG8gYmUgc3VmZmljaWVudDoKPiBBZmFpY3Qg eW91IGNvdWxkIGp1c3QgaGF2ZSAoc3ltYm9sLWFkZHJlc3Msc3ltYm9sLW9mZnNldCkgcGFpcnMg d2hpY2ggeW91Cj4gdGhlbiBzb3J0IGFuZCBzZWFyY2ggYnkgbmFtZSAodXNpbmcgc3ltYm9sc19l eHBhbmRfc3ltYm9sKCkgb24KPiBzeW1ib2wtb2Zmc2V0LCB3aGljaCBpbiB0dXJuIHlvdSBzdG9y ZSB1c2luZyB0aGUgcmVzdWx0IG9mIGdldF9zeW1ib2xfb2Zmc2V0KCkKPiBkdXJpbmcgc2V0dXAg b2YgdGhlIHRhYmxlKS4KPiAKPiA+MSkgc3ltYm9sc19hZGRyZXNzZXNfaW5kZXhfc29ydGVkWzAu LnN5bWJvbHNfbnVtX3N5bXNdLiBUaGUgdmFsdWVzIGFyZQo+ICA+aW5kaWNpZXMgaW50byBzeW1i b2xzX2FkZHJlc3NlcyBhcnJheS4gVGhpcyBpcyBhIDEtMSB0YWJsZToKPiA+Cj4gID5zeW1ib2xz X2FkZHJlc3Nlc19pbmRleF9zb3J0ZWQ6Cj4gICAgICA+LmxvbmcgICA2MzE1Cj4gICAgICA+Lmxv bmcgICA2MDk3Cj4gPgo+ICA+VG8gZ2V0IHRoZSBhZGRyZXNzIG9mIGEgc3ltYm9sIGF0IG9mZnNl dCAwIGluIHN5bWJvbHNfbmFtZV9zb3J0ZWQKPiAgPihzZWUgYmVsb3cpIHdlIGxvb2sgaW4gc3lt Ym9sc19hZGRyZXNzZXNfaW5kZXhfc29ydGVkWzBdIHRvIGdldAo+ICA+NjMxNSBhbmQgdGhlbiBs b29rIGluIHN5bWJvbHNfYWRkcmVzc2VzX2luZGV4WzYzMTVdIHRvIGZpbmQgaXQuCj4gPgo+ID4y KSBUaGUgc3ltYm9sc19uYW1lc19zb3J0ZWQgc3RyZWFtIC0gc2FtZSBmb3JtYXQgYXMgc3ltYm9s c19uYW1lcyBidXQKPiAgPmNvbnN0cnVjdHVlZCBieSBzb3J0aW5nIHRoZSA8dHlwZT5bZmlsZW5h bWUjXTxzeW1ib2w+IGJ5IDxzeW1ib2w+LAo+ICA+dGhlbiBbZmlsZW5hbWUjXSBhbmQgbGFzdGx5 IHR5cGUuIFJlY2FsbCB0aGF0IHN5bWJvbF9uYW1lcyBpcyBzb3J0ZWQKPiAgPmJhc2VkIG9uIGFk ZHJlc3NlcyBvZiB0aGUgc3ltYm9scy4KPiAKPiBXaHkgd291bGQgeW91IHRyZWF0IHRoZSA8Zmls ZW5hbWU+IyBwcmVmaXggc3BlY2lhbGx5PyBUaGUgZnVsbCB0aGluZyBpcyB0aGUKPiBzeW1ib2wg eW91IHNob3VsZCBjYXJlIGFib3V0IGltby4KPiAKPiA+MykgVG8gbWFrZSBpdCBzaW1wbGVyIHRv IHNlYXJjaCB3ZSBhbHNvIGFkZCBhbiBzeW1ib2xzX21hcmtlcnNfc29ydGVkCj4gID5hcnJheSAo b2Ygc2l6ZSBzeW1ib2xzX251bV9zeW1zLzI1NSkuCj4gCj4gPlNlYXJjaGluZyBmb3Igc3ltYm9s cyBpcyBzaW1wbGlmaWVkIGFzIHdlIGNhbiBkbyBhIGJpbmFyeSBzZWFyY2gKPiA+b24gc3ltYm9s X25hbWVzX3NvcnRlZCAoYW5kIHVzaW5nIHN5bWJvbHNfbWFya2Vyc19zb3J0ZWQpLiBTaW5jZSB0 aGUKPiA+c3ltYm9scyBhcmUgc29ydGVkIGl0IHRha2VzIG9uIGF2ZXJhZ2UgMTMgY2FsbHMgdG8g c3ltYm9sc19leHBhbmRfc3ltYm9sLgo+ID4KPiA+RG9pbmcgc21hbGwgdGVzdHMgKHNlYXJjaCBm b3IgZml2ZSBkaWZmZXJlbnQgc3ltYm9scykgdXNpbmcgdGhlIG9sZAo+ID5hbmQgbmV3IG1lY2hh bmlzbSBzaG93IDJtcyB2cyAwbXMgaW1wcm92ZW1lbnQuCj4gCj4gV2hhdCBkb2VzICIybSB2cyAw bXMiIGltcHJvdmVtZW50IG1lYW4gaGVyZT8gSWYgeW91IG1lYW4gdG8gc2F5IHRoYXQgb24KPiBz b21lIHN5bWJvbHMgdGhlcmUncyBubyBnYWluIGF0IGFsbCwgdGhlbiBJJ2QgcXVlc3Rpb24gd2hl dGhlciBtaWxsaXNlY29uZAo+IGdyYW51bGFyaXR5IGlzIGVub3VnaCB0byBzZWUgYW4gaW1wcm92 ZW1lbnQuCj4gCj4gV2l0aCB0aGUgYmFzaWMgZGF0YSBxdWVzdGlvbiBhYm92ZSBJJ20gbm90IGdv aW5nIHRvIGxvb2sgYXQgdGhlIGFjdHVhbCBjb2RlCj4gZm9yIG5vdzsgSSdsbCBsZWF2ZSB0aGlz IHVudGlsIGVpdGhlciBJIHVuZGVyc3RhbmQgd2h5IHRoZSBzdWdnZXN0ZWQgdmFyaWFudAo+IGNh bid0IHdvcmssIG9yIHVudGlsIGEgZnV0dXJlIHZlcnNpb24gaW1wbGVtZW50aW5nIHRoYXQgb25l LgoKSGVyZSBpcyB3aGF0IEkgY2FtZSB1cCB1c2luZyB5b3VyIGlkZWEuIERvIHlvdSB3YW50IG1l IHRvIGFkZCAnU3VnZ2VzdGVkLWJ5JyBKYW4gb24gaXQ/CgpGcm9tIDM3MTczZjY3NGU0YmNlMGJj MDUxNWQyOGIyNTM2ZDI5YzU1YjdlN2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtv bnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KRGF0ZTogVGh1LCAy MSBBcHIgMjAxNiAxNjo0Nzo0MyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIHhzcGxpY2UsIHN5bWJv bHM6IEltcGxlbWVudCBmYXN0IHN5bWJvbCBuYW1lcyAtPiB2aXJ0dWFsCiBhZGRyZXNzZXMgbG9v a3VwCgpUaGUgY3VycmVudCBtZWNoYW5pc20gaXMgZ2VhcmVkIHRvd2FyZHMgZmFzdCB2aXJ0dWFs IGFkZHJlc3MgLT4Kc3ltYm9sIG5hbWVzIGxvb2t1cC4gVGhpcyBpcyBmaW5lIGZvciB0aGUgbm9y bWFsIHVzZSBjYXNlcwooQlVHX09OLCBXQVJOX09OLCBldGMpLCBidXQgZm9yIHhTcGxpY2UgLSB3 aGVyZSB3ZSBuZWVkIHRvIGZpbmQKaHlwZXJ2aXNvciBzeW1ib2xzIC0gaXQgaXMgc2xvdy4KClRv IHVuZGVyc3RhbmQgdGhpcyBwYXRjaCwgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZXhpc3RpbmcKbWV0 aG9kIGlzIGV4cGxhaW5lZCBmaXJzdC4gRm9yIGZvbGtzIGZhbWlsYXIgZ28gdG8gJ05FVyBDT0RF OicuCgpIT1cgSVQgV09SS1M6CgpUaGUgc3ltYm9sIHRhYmxlIGxvb2t1cCBtZWNoYW5pc20gdXNl cyBhIHNpbXBsZSBlbmNvZGluZyBtZWNoYW5pc20Kd2hlcmUgaXQgZXh0cmFjdHMgdGhlIGNvbW1v biBhc2NpaSBjaGFyYWN0ZXJzIHRoYXQgdGhlIHN5bWJvbCdzIHVzZS4KClRoaXMgc2F2ZXMgdXMg c3BhY2UuIFRoZSBsb29rdXAgbWVjaGFuaXNtIGlzIGdlYXJlZCB0b3dhcmRzIGxvb2tpbmcKdXAg c3ltYm9scyBiYXNlZCBvbiBhZGRyZXNzLiBXZSBoYXZlIG9uZSAwLi5OICh3aGVyZSBOIGlzCnRo ZSBudW1iZXIgb2Ygc3ltYm9scywgc28gNjg0OSBmb3IgZXhhbXBsZSkgdGFibGU6CgpzeW1ib2xz X2FkZHJlc3Nlc1swLi5OXQoKQW5kIGFuIDEtMSAoaW4gYSBsb29zZSBmYXNoaW9uKSBvZiB0aGUg c3ltYm9scyAoZW5jb2RlZCkgaW4gYQpzeW1ib2xzX25hbWVzIHN0cmVhbSBvZiBzaXplIE4uCgpU aGUgTiBpcyB2YXJpYWJsZSAobGF0ZXIgb24gdGhhdCBiZWxvdykKClRoZSBzeW1ib2xzX25hbWVz IGFyZSBzb3J0ZWQgYmFzZWQgb24gc3ltYm9sc19hZGRyZXNzZXMsIHdoaWNoCm1lYW5zIHRoYXQg dGhlIGRlY29kZWQgZW50cmllcyBpbnNpZGUgc3ltYm9sc19uYW1lcyBhcmUgbm90IGluCmFzY2Vu ZGluZyBvciBkZXNjZW5kaW5nIG9yZGVyLgoKVGhlcmUgaXMgYWxzbyB0aGUgZW5jb2RpbmcgbWVj aGFuaXNtIC0gdGhlIHRhYmxlIG9mIDI1NSBlbnRyaWVzCmNhbGxlZCBzeW1ib2xzX3Rva2VuX2lu ZGV4W10uIEFuZCB0aGUgc3ltYm9sc190b2tlbl90YWJsZSB3aGljaAppcyBhbiBzdHJlYW0gb2Yg QVNDSUlaIGNoYXJhY3RlcnMsIHN1Y2ggYXMgKGl0IHJlYWxseQppcyBub3QgYSB0YWJsZSBhcyB0 aGUgdmFsdWVzIGFyZSB2YXJpYWJsZSk6CgpAMCAgIC5hc2NpeiAgImNyZWRpdCIKQDYgICAuYXNj aXogICJtYXNrIgouLgpAMzAwIC5hc2NpeiAgIlMiCgpBbmQgdGhlIHN5bWJvbHNfdG9rZW5faW5k ZXg6CkAwICAgICAgICAuc2hvcnQgIDAKQDEgICAgICAgIC5zaG9ydCAgNwpAMiAgICAgICAgLnNo b3J0ICAxMgpANCAgICAgICAgLnNob3J0ICAxNgouLi4KQDg0ICAgICAgICAgLnNob3J0ICAzMDAK ClRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVtIGlzIHRoYXQgdGhlIHN5bWJvbHNfdG9rZW5f aW5kZXgKZ2l2ZXMgdXMgdGhlIG9mZnNldCB0byBzeW1ib2xzX3Rva2VuX3RhYmxlLgoKVGhlIHN5 bWJvbF9uYW1lc1tdIGFycmF5IGlzIGEgc3RyZWFtIG9mIGVuY29kZWQgdmFsdWVzLiBFYWNoIHZh bHVlCmZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiAtIDxsZW4+IGZvbGxvd2VkIGJ5IDxlbmNvZGlu ZyB2YWx1ZXM+LgpBbmQgdGhlIGFub3RoZXIgPGxlbj4gZm9sbG93ZWQgYnkgPGVuY29kaW5nIHZh bHVlcz4uCgpIZW5jZSB0byBmaW5kIHRoZSByaWdodCBvbmUgeW91IG5lZWQgdG8gcmVhZCA8bGVu PiwgYWRkIDxsZW4+Cih0byBza2lwIG92ZXIpLCByZWFkIDxsZW4+LCBhZGQgPGxlbj4sIGFuZCBz byBvbiB1bnRpbCBvbmUKZmluZHMgdGhlIHJpZ2h0IHR1cGxlIG9mZnNldC4KClRoZSA8ZW5jb2Rp bmcgdmFsdWVzPiBhcmUgdGhlIGluZGljaWVzIGludG8gdGhlIHN5bWJvbHNfdG9rZW5faW5kZXgu CgpNZWFuaW5nIGlmIHlvdSBoYXZlOgogIDB4MDQsIDB4NTQsIDB4ZGEsIDB4ZTIsIDB4NzQKICBb NCwgODQsIDIxOCwgMjI2LCAxMTYgaW4gaHVtYW4gbnVtYmVyaW5nXQoKVGhlIDB4MDQgdGVsbHMg dXMgdGhhdCB0aGUgc3ltYm9sIGlzIGZvdXIgYnl0ZXMgcGFzdCB0aGlzIG9uZSAoc28gbmV4dApz eW1ib2wgb2Zmc2V0IHN0YXJ0cyBhdCA1KS4gSWYgd2UgbG9va3VwIHN5bWJvbHNfdG9rZW5faW5k ZXhbODRdIHdlIGdldCAzMDAuCnN5bWJvbHNfdG9rZW5bMzAwXSBnZXRzIHVzIHRoZSAiUyIuIEFu ZCBzbyBvbiwgdGhlIHN0cmluZyBldmVudHVhbGx5CmVuZCB1cCBiZWluZyBkZWNvZGUgdG8gYmUg J1Nfc3RleHQnLiBUaGUgZmlyc3QgY2hhcmFjdGVyIGlzIHRoZSB0eXBlLAp0aGVuIG9wdGlvbmFs bHkgZm9sbHdlZCBieSB0aGUgZmlsZW5hbWUgKGFuZCAjIHJpZ2h0IGFmdGVyIGZpbGVuYW1lKQph bmQgdGhlbiBsYXN0bHkgdGhlIHN5bWJvbCwgc3VjaCBhczoKCnR2cG11X2ludGVsLmMjY29yZTJf dnBtdV9kb19pbnRlcnJ1cHQKCktlZXAgaW4gbWluZCB0aGF0IHRoZXJlIGFyZSB0d28gZml4ZWQg c2l6ZWQgdGFibGVzOgpzeW1ib2xzX2FkZHJlc3Nlc1swLi5zeW1ib2xzX251bV9zeW1zXSwgYW5k CnN5bWJvbHNfbWFya2Vyc1swLi5zeW1ib2xzX251bV9zeW1zLzI1NV0uCgpUaGUgc3ltYm9sc19t YXJrZXJzIGlzIHVzZWQgdG8gc3BlZWQgc2VhcmNoaW5nIGZvciB0aGUgcmlnaHQgYWRkcmVzcy4K SXQgZ2l2ZXMgdXMgdGhlIG9mZnNldHMgd2l0aGluIHN5bWJvbF9uYW1lcyB0aGF0IHN0YXJ0IGF0 IHRoZSA8bGVuPjxlbmNvZGVkIHZhbHVlPi4KClRoZSB3YXkgdG8gZmluZCBhIHN5bWJvbCBiYXNl ZCBvbiB0aGUgYWRkcmVzcyBpczoKMSkgRmlndXJlIG91dCB0aGUgJ3R1cGxlIG9mZnNldCcgZnJv bSBzeW1ib2xzX2FkZHJlc3NbMC4uc3ltYm9sc19udW1fc3ltc10uCiAgIFRoaXMgdGFibGUgaXMg c29ydGVkIGJ5IHZpcnR1YWwgYWRkcmVzc2VzIHNvIGZpbmRpbmcgdGhlIHZhbHVlIGlzIHNpbXBs ZS4KMikgR2V0IHN0YXJ0aW5nIG9mZnNldCBvZiBzeW1ib2xfbmFtZXMgYnkgcmV0cmlldmluZyB2 YWx1ZSBvZgogICBzeW1ib2xfbWFya2Vyc1sndHVwbGUgb2Zmc2V0JyAvIDI1NV0uCjMpLiBJdGVy YXRlIHVwIHRvICd0dXBsZV9vZmZzZXQgJiAyNTUnIGluIHN5bWJvbHNfbWFya2VycyBzdHJlYW0g c3RhcnRpbmcKICAgYXQgJ29mZnNldCcuCjQpLiBEZWNvZGUgdGhlIDxsZW4+PGVuY29kZWQgdmFs dWU+CgpUaGlzIGhvd2V2ZXIgZG9lcyBub3Qgd29yayB2ZXJ5IHdlbGwgaWYgd2Ugd2FudCB0byBz ZWFyY2ggdGhlIG90aGVyCndheSAtIHdlIGhhdmUgdGhlIHN5bWJvbCBuYW1lIGFuZCB3YW50IHRv IGZpbmQgdGhlIGFkZHJlc3MuCgpORVcgQ09ERToKClRvIG1ha2UgdGhhdCB3b3JrIHdlIGFkZCBv bmUgZml4ZWQgc2l6ZSB0YWJsZSBjYWxsZWQgc3ltYm9sc19zb3J0ZWRfb2Zmc2V0cyB3aGljaApo YXMgdHdvIGVsZW1lbnRzOiBvZmZzZXQgaW4gc3ltYm9sIHN0cmVhbSwgb2Zmc2V0IGluIHRoZSBz eW1ib2wtYWRkcmVzcy4KClRoaXMgd2hvbGUgYXJyYXkgaXMgc29ydGVkIG9uIHRoZSBvcmlnaW5h bCBzeW1ib2wgbmFtZSAoaW4gY2FzZSBvZiBjb2xsaXNpb24Kd2UgYWxzbyB0YWtlIGludG8gYWNj b3VudCB0aGUgdHlwZSkuCgpUaGUgdmFsdWVzIGFyZSBmb3IgZXhhbXBsZToKCnN5bWJvbHNfc29y dGVkX29mZnNldHM6CiAgICAubG9uZyA4MzM2MywgNjMwMiAjIFsuYnNzLCBsZW49NV0KICAgIC5s b25nIDgwNDU5LCA2MDg0ICMgWy5kYXRhLCBsZW49NV0KLi4KW1RoZSAjIGFkZGVkIGZvciBjbGFy aXR5XQoKV2hpY2ggbWFrZXMgaXQgaW5jcmVkaWJseSBlYXN5IHRvIGdldCBpbiB0aGUgc3ltYm9s c19uYW1lcyBhbmQgYWxzbwpzeW1ib2xzX2FkZHJlc3NlcyAob3Igc3ltYm9sc19vZmZzZXRzKQoK U2VhcmNoaW5nIGZvciBzeW1ib2xzIGlzIHNpbXBsaWZpZWQgYXMgd2UgY2FuIGRvIGEgYmluYXJ5 IHNlYXJjaApvbiBzeW1ib2xzX3NvcnRlZF9vZmZzZXRzLiBTaW5jZSB0aGUgc3ltYm9scyBhcmUg c29ydGVkIGl0IHRha2VzIG9uCmF2ZXJhZ2UgMTMgY2FsbHMgdG8gc3ltYm9sc19leHBhbmRfc3lt Ym9sLgoKU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0Bv cmFjbGUuY29tPgotLS0KQ0M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNDOiBKYW4gQmV1 bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNDOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVy M0BjaXRyaXguY29tPgoKdjg6IE5ldwogLSBSZW1vdmUgdGhlIGRlYnVnIGNvZGUKIC0gUmV0dXJu IHRoZSAnbWlkJyBpbmRleCBpbiBzeW1ib2xfYWRkcmVzc2VzLCBub3QgdGhlICdsb3cnLgp2OToK IC0gTWFrZSBpdCByZXR1cm4gdm9pZCoKIC0gRGl0Y2ggdGhlIG9sZCBpbXBsZW1lbnRhdGlvbi4g VXNlIGEgc2luZ2xlIGZpeGVkLXNpemUgYXJyYXkKICAgd2l0aCB0d28gdWludDMyX3QgdmFsdWVz IC0gb2Zmc2V0IGluIHN0cmVhbSBhbmQgb2Zmc2V0IGluIGFkZHJlc3MuCi0tLQogeGVuL2FyY2gv eDg2L01ha2VmaWxlICAgICAgfCAgMyArKysKIHhlbi9jb21tb24vS2NvbmZpZyAgICAgICAgIHwg MTIgKysrKysrKysrKwogeGVuL2NvbW1vbi9zeW1ib2xzLWR1bW15LmMgfCAgNSArKysrCiB4ZW4v Y29tbW9uL3N5bWJvbHMuYyAgICAgICB8IDQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogeGVuL2luY2x1ZGUveGVuL3N5bWJvbHMuaCAgfCAxMCArKysrKysrKwogeGVuL3Rvb2xz L3N5bWJvbHMuYyAgICAgICAgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZSBiL3hlbi9hcmNoL3g4 Ni9NYWtlZmlsZQppbmRleCBmZGY0MjAyLi5mOGIxYjIzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L01ha2VmaWxlCkBAIC03NCw2ICs3NCw5IEBA IGVmaS15IDo9ICQoc2hlbGwgaWYgWyAhIC1yICQoQkFTRURJUikvaW5jbHVkZS94ZW4vY29tcGls ZS5oIC1vIFwKIAogaWZkZWYgQ09ORklHX1hTUExJQ0UKIGFsbF9zeW1ib2xzID0gLS1hbGwtc3lt Ym9scworaWZkZWYgQ09ORklHX0ZBU1RfU1lNQk9MX0xPT0tVUAorYWxsX3N5bWJvbHMgPSAtLWFs bC1zeW1ib2xzIC0tYWRkLWV4dHJhLXNvcnRlZAorZW5kaWYKIGVsc2UKIGFsbF9zeW1ib2xzID0K IGVuZGlmCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL0tjb25maWcgYi94ZW4vY29tbW9uL0tjb25m aWcKaW5kZXggNjkyZWY1MS4uZTRmODZjMiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9LY29uZmln CisrKyBiL3hlbi9jb21tb24vS2NvbmZpZwpAQCAtMjAwLDQgKzIwMCwxNiBAQCBjb25maWcgWFNQ TElDRQogCiAJICBJZiB1bnN1cmUsIHNheSBZLgogCitjb25maWcgRkFTVF9TWU1CT0xfTE9PS1VQ CisJYm9vbCAiRmFzdCBzeW1ib2wgbG9va3VwIChiaWdnZXIgYmluYXJ5KSIKKwlkZWZhdWx0IHkK KwlkZXBlbmRzIG9uIFhTUExJQ0UKKwktLS1oZWxwLS0tCisJICBXaGVuIHNlYXJjaGluZyBmb3Ig c3ltYm9sIGFkZHJlc3NlcyB3ZSBjYW4gdXNlIHRoZSBidWlsdC1pbiBzeXN0ZW0KKwkgIHRoYXQg aXMgb3B0aW1pemVkIGZvciBzZWFyY2hpbmcgc3ltYm9scyB1c2luZyBhZGRyZXNzZXMgYXMgdGhl IGtleS4KKwkgIEhvd2V2ZXIgdXNpbmcgaXQgZm9yIHRoZSBpbnZlcnNlIChmaW5kIGFkZHJlc3Mg dXNpbmcgdGhlIHN5bWJvbCBuYW1lKQorCSAgaXQgaXMgc2xvdy4gVGhpcyBleHRyYSBkYXRhIGFu ZCBjb2RlICh+NTVrQikgc3BlZWRzIHVwIHRoZSBzZWFyY2guCisJICBUaGUgb25seSB1c2VyIG9m IHRoaXMgaXMgeFNwbGljZS4KKworCSAgSWYgdW5zdXJlLCBzYXkgWS4KIGVuZG1lbnUKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vc3ltYm9scy1kdW1teS5jIGIveGVuL2NvbW1vbi9zeW1ib2xzLWR1 bW15LmMKaW5kZXggNTA5MGMzYi4uMDQ0ZGZkMyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zeW1i b2xzLWR1bW15LmMKKysrIGIveGVuL2NvbW1vbi9zeW1ib2xzLWR1bW15LmMKQEAgLTUsNiArNSw3 IEBACiAKICNpbmNsdWRlIDx4ZW4vY29uZmlnLmg+CiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+Cisj aW5jbHVkZSA8eGVuL3N5bWJvbHMuaD4KIAogI2lmZGVmIFNZTUJPTFNfT1JJR0lOCiBjb25zdCB1 bnNpZ25lZCBpbnQgc3ltYm9sc19vZmZzZXRzWzFdOwpAQCAtMTQsNiArMTUsMTAgQEAgY29uc3Qg dW5zaWduZWQgbG9uZyBzeW1ib2xzX2FkZHJlc3Nlc1sxXTsKIGNvbnN0IHVuc2lnbmVkIGludCBz eW1ib2xzX251bV9zeW1zOwogY29uc3QgdTggc3ltYm9sc19uYW1lc1sxXTsKIAorI2lmZGVmIENP TkZJR19GQVNUX1NZTUJPTF9MT09LVVAKK2NvbnN0IHN0cnVjdCBzeW1ib2xfb2Zmc2V0IHN5bWJv bHNfc29ydGVkX29mZnNldHNbMV07CisjZW5kaWYKKwogY29uc3QgdTggc3ltYm9sc190b2tlbl90 YWJsZVsxXTsKIGNvbnN0IHUxNiBzeW1ib2xzX3Rva2VuX2luZGV4WzFdOwogCmRpZmYgLS1naXQg YS94ZW4vY29tbW9uL3N5bWJvbHMuYyBiL3hlbi9jb21tb24vc3ltYm9scy5jCmluZGV4IDE4YmJm ZWYuLjc4OWQ5MGUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc3ltYm9scy5jCisrKyBiL3hlbi9j b21tb24vc3ltYm9scy5jCkBAIC0zMSw2ICszMSwxMCBAQCBleHRlcm4gY29uc3QgdW5zaWduZWQg bG9uZyBzeW1ib2xzX2FkZHJlc3Nlc1tdOwogZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGludCBzeW1i b2xzX251bV9zeW1zOwogZXh0ZXJuIGNvbnN0IHU4IHN5bWJvbHNfbmFtZXNbXTsKIAorI2lmZGVm IENPTkZJR19GQVNUX1NZTUJPTF9MT09LVVAKK2V4dGVybiBjb25zdCBzdHJ1Y3Qgc3ltYm9sX29m ZnNldCBzeW1ib2xzX3NvcnRlZF9vZmZzZXRzW107CisjZW5kaWYKKwogZXh0ZXJuIGNvbnN0IHU4 IHN5bWJvbHNfdG9rZW5fdGFibGVbXTsKIGV4dGVybiBjb25zdCB1MTYgc3ltYm9sc190b2tlbl9p bmRleFtdOwogCkBAIC0yMDgsOCArMjEyLDQ1IEBAIGludCB4ZW5zeW1zX3JlYWQodWludDMyX3Qg KnN5bW51bSwgY2hhciAqdHlwZSwKICAgICByZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19G QVNUX1NZTUJPTF9MT09LVVAKIHZvaWQgKnN5bWJvbHNfbG9va3VwX2J5X25hbWUoY29uc3QgY2hh ciAqc3ltbmFtZSkKIHsKKyAgICBjaGFyIG5hbWVidWZbS1NZTV9OQU1FX0xFTiArIDFdOworICAg IHVuc2lnbmVkIGxvbmcgbG93LCBoaWdoOworICAgIHN0YXRpYyBjb25zdCBjaGFyICpmaWxlbmFt ZV90b2tlbiA9ICIjIjsKKworICAgIGlmICggKnN5bW5hbWUgPT0gJ1wwJyApCisgICAgICAgIHJl dHVybiBOVUxMOworCisgICAgLyogVW5zdXBwb3J0ZWQgc2VhcmNoIGZvciBmaWxlbmFtZSBpbiBz eW1ib2wgcmlnaHQgbm93LiAqLworICAgIGlmICggc3RycGJyayhzeW1uYW1lLCBmaWxlbmFtZV90 b2tlbikgKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGxvdyA9IDA7CisgICAgaGlnaCA9 IHN5bWJvbHNfbnVtX3N5bXM7CisgICAgd2hpbGUgKCBsb3cgPCBoaWdoICkKKyAgICB7CisgICAg ICAgIHVuc2lnbmVkIGxvbmcgbWlkID0gbG93ICsgKChoaWdoIC0gbG93KSAvIDIpOworICAgICAg ICBjb25zdCBzdHJ1Y3Qgc3ltYm9sX29mZnNldCAqczsKKyAgICAgICAgaW50IHJjOworCisgICAg ICAgIHMgPSAmc3ltYm9sc19zb3J0ZWRfb2Zmc2V0c1ttaWRdOworICAgICAgICAodm9pZClzeW1i b2xzX2V4cGFuZF9zeW1ib2wocy0+c3RyZWFtLCBuYW1lYnVmKTsKKyAgICAgICAgLyogRm9ybWF0 IGlzOiBbZmlsZW5hbWVdIzxzeW1ib2w+LiBzeW1ib2xzX2V4cGFuZF9zeW1ib2wgZWF0cyB0eXBl LiovCisgICAgICAgIHJjID0gc3RyY21wKHN5bW5hbWUsIG5hbWVidWYpOworICAgICAgICBpZiAo IHJjIDwgMCApCisgICAgICAgICAgICBoaWdoID0gbWlkOworICAgICAgICBlbHNlIGlmICggcmMg PiAwICkKKyAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7CisgICAgICAgIGVsc2UKKyAgICAgICAg ICAgIHJldHVybiAodm9pZCAqKXN5bWJvbHNfYWRkcmVzcyhzLT5hZGRyKTsKKyAgICB9CisgICAg cmV0dXJuIE5VTEw7Cit9CisKKyNlbHNlCit2b2lkICpzeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNv bnN0IGNoYXIgKnN5bW5hbWUpCisgewogICAgIGNoYXIgbmFtZVtLU1lNX05BTUVfTEVOICsgMV07 CiAgICAgdWludDMyX3Qgc3ltbnVtID0gMDsKICAgICBjaGFyIHR5cGU7CkBAIC0yMzIsNiArMjcz LDcgQEAgdm9pZCAqc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpzeW1uYW1lKQog ICAgIHJldHVybiBOVUxMOwogfQogCisjZW5kaWYKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAg KiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oIGIveGVuL2lu Y2x1ZGUveGVuL3N5bWJvbHMuaAppbmRleCAyMTIyYTVkLi5kNGM0ZTFjIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zeW1ib2xzLmgK QEAgLTI1LDQgKzI1LDE0IEBAIGludCB4ZW5zeW1zX3JlYWQodWludDMyX3QgKnN5bW51bSwgY2hh ciAqdHlwZSwKIAogdm9pZCAqc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpzeW1u YW1lKTsKIAorI2lmZGVmIENPTkZJR19GQVNUX1NZTUJPTF9MT09LVVAKKy8qCisgKiBBIHNvcnRl ZCAoYnkgc3ltYm9scykgbG9va3VwIHRhYmxlIHRhYmxlIHRvIHN5bWJvbHNfbmFtZXMgKHN0cmVh bSkKKyAqIGFuZCBzeW1ib2xzX2FkZHJlc3MgKG9yIG9mZnNldCkuCisgKi8KK3N0cnVjdCBzeW1i b2xfb2Zmc2V0IHsKKyAgICB1aW50MzJfdCBzdHJlYW07IC8qIC4uIGluIHRoZSBjb21wcmVzc2Vk IHN0cmVhbS4qLworICAgIHVpbnQzMl90IGFkZHI7ICAgLyogLi4gYW5kIGluIHRoZSBmaXhlZCBz aXplIGFkZHJlc3MgYXJyYXkuICovCit9OworI2VuZGlmCiAjZW5kaWYgLypfWEVOX1NZTUJPTFNf SCovCmRpZmYgLS1naXQgYS94ZW4vdG9vbHMvc3ltYm9scy5jIGIveGVuL3Rvb2xzL3N5bWJvbHMu YwppbmRleCAxOTZkYjc0Li43OGQ5ZWY4IDEwMDY0NAotLS0gYS94ZW4vdG9vbHMvc3ltYm9scy5j CisrKyBiL3hlbi90b29scy9zeW1ib2xzLmMKQEAgLTQwLDYgKzQwLDEwIEBAIHN0cnVjdCBzeW1f ZW50cnkgewogCXVuc2lnbmVkIGxvbmcgbG9uZyBhZGRyOwogCXVuc2lnbmVkIGludCBsZW47CiAJ dW5zaWduZWQgY2hhciAqc3ltOworCWNoYXIgKm9yaWdfc3ltYm9sOworCXVuc2lnbmVkIGludCBh ZGRyX2lkeDsKKwl1bnNpZ25lZCBpbnQgc3RyZWFtX29mZnNldDsKKwl1bnNpZ25lZCBjaGFyIHR5 cGU7CiB9OwogI2RlZmluZSBTWU1CT0xfTkFNRShzKSAoKGNoYXIgKikocyktPnN5bSArIDEpCiAK QEAgLTQ3LDggKzUxLDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgc3ltX2VudHJ5ICp0YWJsZTsKIHN0YXRp YyB1bnNpZ25lZCBpbnQgdGFibGVfc2l6ZSwgdGFibGVfY250Owogc3RhdGljIHVuc2lnbmVkIGxv bmcgbG9uZyBfc3RleHQsIF9ldGV4dCwgX3Npbml0dGV4dCwgX2Vpbml0dGV4dCwgX3NleHRyYXRl eHQsIF9lZXh0cmF0ZXh0Owogc3RhdGljIGludCBhbGxfc3ltYm9scyA9IDA7CitzdGF0aWMgaW50 IGV4dHJhX3NvcnRlZCA9IDA7CiBzdGF0aWMgY2hhciBzeW1ib2xfcHJlZml4X2NoYXIgPSAnXDAn Owogc3RhdGljIGVudW0geyBmbXRfYnNkLCBmbXRfc3lzdiB9IGlucHV0X2Zvcm1hdDsKK3N0YXRp YyBpbnQgY29tcGFyZV9uYW1lKGNvbnN0IHZvaWQgKnAxLCBjb25zdCB2b2lkICpwMik7CiAKIGlu dCB0b2tlbl9wcm9maXRbMHgxMDAwMF07CiAKQEAgLTE3NCw5ICsxODAsMTMgQEAgc3RhdGljIGlu dCByZWFkX3N5bWJvbChGSUxFICppbiwgc3RydWN0IHN5bV9lbnRyeSAqcykKIAkJc3ltID0gc3Rw Y3B5KHN5bSwgZmlsZW5hbWUpOwogCQkqc3ltKysgPSAnIyc7CiAJfQorCiAJc3RyY3B5KHN5bSwg c3RyKTsKKwlpZiAoZXh0cmFfc29ydGVkKSB7CisJCXMtPm9yaWdfc3ltYm9sID0gc3RyZHVwKFNZ TUJPTF9OQU1FKHMpKTsKKwkJcy0+dHlwZSA9IHN0eXBlOyAvKiBBcyBzLT5zeW1bMF0gZW5kcyBt YW5nbGVkLiAqLworCX0KIAlzLT5zeW1bMF0gPSBzdHlwZTsKCiAJcmMgPSAwOwogCiAgc2tpcF90 YWlsOgpAQCAtMjc2LDYgKzI4NiwyNyBAQCBzdGF0aWMgaW50IGV4cGFuZF9zeW1ib2wodW5zaWdu ZWQgY2hhciAqZGF0YSwgaW50IGxlbiwgY2hhciAqcmVzdWx0KQogCXJldHVybiB0b3RhbDsKIH0K IAorLyogU29ydCBieSBvcmlnaW5hbCAobm9uIG1hbmdsZWQpIHN5bWJvbCBuYW1lLCB0aGVuIHR5 cGUuICovCitzdGF0aWMgaW50IGNvbXBhcmVfbmFtZV9vcmlnKGNvbnN0IHZvaWQgKnAxLCBjb25z dCB2b2lkICpwMikKK3sKKwljb25zdCBzdHJ1Y3Qgc3ltX2VudHJ5ICpzeW0xID0gcDE7CisJY29u c3Qgc3RydWN0IHN5bV9lbnRyeSAqc3ltMiA9IHAyOworCWludCByYzsKKworCXJjID0gc3RyY21w KHN5bTEtPm9yaWdfc3ltYm9sLCBzeW0yLT5vcmlnX3N5bWJvbCk7CisKKwlpZiAoIXJjKSB7CisJ CWlmIChzeW0xLT50eXBlIDwgc3ltMi0+dHlwZSkKKwkJCXJjID0gLTE7CisJCWVsc2UgaWYgKHN5 bTEtPnR5cGUgPiBzeW0yLT50eXBlKQorCQkJcmMgPSAxOworCQllbHNlCisJCQlyYyA9IDA7CisJ fQorCisJcmV0dXJuIHJjOworfQorCiBzdGF0aWMgdm9pZCB3cml0ZV9zcmModm9pZCkKIHsKIAl1 bnNpZ25lZCBpbnQgaSwgaywgb2ZmOwpAQCAtMzI1LDYgKzM1Niw3IEBAIHN0YXRpYyB2b2lkIHdy aXRlX3NyYyh2b2lkKQogCQkJcHJpbnRmKCIsIDB4JTAyeCIsIHRhYmxlW2ldLnN5bVtrXSk7CiAJ CXByaW50ZigiXG4iKTsKIAorCQl0YWJsZVtpXS5zdHJlYW1fb2Zmc2V0ID0gb2ZmOwogCQlvZmYg Kz0gdGFibGVbaV0ubGVuICsgMTsKIAl9CiAJcHJpbnRmKCJcbiIpOwpAQCAtMzM0LDcgKzM2Niw2 IEBAIHN0YXRpYyB2b2lkIHdyaXRlX3NyYyh2b2lkKQogCQlwcmludGYoIlx0LmxvbmdcdCVkXG4i LCBtYXJrZXJzW2ldKTsKIAlwcmludGYoIlxuIik7CiAKLQlmcmVlKG1hcmtlcnMpOwogCiAJb3V0 cHV0X2xhYmVsKCJzeW1ib2xzX3Rva2VuX3RhYmxlIik7CiAJb2ZmID0gMDsKQEAgLTM1MCw2ICsz ODEsMjcgQEAgc3RhdGljIHZvaWQgd3JpdGVfc3JjKHZvaWQpCiAJZm9yIChpID0gMDsgaSA8IDI1 NjsgaSsrKQogCQlwcmludGYoIlx0LnNob3J0XHQlZFxuIiwgYmVzdF9pZHhbaV0pOwogCXByaW50 ZigiXG4iKTsKKworCWlmICghZXh0cmFfc29ydGVkKSB7CisJCWZyZWUobWFya2Vycyk7CisJCXJl dHVybjsKKwl9CisKKwkvKiBTb3J0ZWQgYnkgb3JpZ2luYWwgc3ltYm9sIG5hbWVzLCBmaWxlbmFt ZSwgYW5kIGxhc3RseSB0eXBlLiAqLworCXFzb3J0KHRhYmxlLCB0YWJsZV9jbnQsIHNpemVvZigq dGFibGUpLCBjb21wYXJlX25hbWVfb3JpZyk7CisKKwlvdXRwdXRfbGFiZWwoInN5bWJvbHNfc29y dGVkX29mZnNldHMiKTsKKwkvKiBBbiBmaXhlZCBzaXplZCBhcnJheSB3aXRoIHR3byBlbnRyaWVz OiBvZmZzZXQgaW4gdGhlCisJICogY29tcHJlc3NlZCBzdHJlYW0gKGZvciBzeW1ib2wgbmFtZSks IGFuZCBvZmZzZXQgaW4KKwkgKiBzeW1ib2xzX2FkZHJlc3NlcyAob3Igc3ltYm9sc19vZmZzZXQp LiAqLworCWZvciAoaSA9IDA7IGkgPCB0YWJsZV9jbnQ7IGkrKykgeworCQlwcmludGYoIlx0Lmxv bmcgJWQiLCB0YWJsZVtpXS5zdHJlYW1fb2Zmc2V0KTsKKwkJcHJpbnRmKCIsICVkIiwgdGFibGVb aV0uYWRkcl9pZHgpOworCQlwcmludGYoIlxuIik7CisJfQorCXByaW50ZigiXG4iKTsKKworCWZy ZWUobWFya2Vycyk7CiB9CiAKIApAQCAtNDEwLDYgKzQ2Miw3IEBAIHN0YXRpYyB2b2lkIGNvbXBy ZXNzX3N5bWJvbHModW5zaWduZWQgY2hhciAqc3RyLCBpbnQgaWR4KQogCQlsZW4gPSB0YWJsZVtp XS5sZW47CiAJCXAxID0gdGFibGVbaV0uc3ltOwogCisJCXRhYmxlW2ldLmFkZHJfaWR4ID0gaTsK IAkJLyogZmluZCB0aGUgdG9rZW4gb24gdGhlIHN5bWJvbCAqLwogCQlwMiA9IG1lbW1lbV9wdnQo cDEsIGxlbiwgc3RyLCAyKTsKIAkJaWYgKCFwMikgY29udGludWU7CkBAIC01NjEsNiArNjE0LDgg QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCWlucHV0X2Zvcm1hdCA9IGZt dF9zeXN2OwogCQkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sICItLXNvcnQiKSA9PSAwKQogCQkJ CXVuc29ydGVkID0gdHJ1ZTsKKwkJCWVsc2UgaWYgKHN0cmNtcChhcmd2W2ldLCAiLS1hZGQtZXh0 cmEtc29ydGVkIikgPT0gMCkKKwkJCQlleHRyYV9zb3J0ZWQgPSAxOwogCQkJZWxzZSBpZiAoc3Ry Y21wKGFyZ3ZbaV0sICItLXdhcm4tZHVwIikgPT0gMCkKIAkJCQl3YXJuX2R1cCA9IHRydWU7CiAJ CQllbHNlCi0tIAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==