From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH 0/3] Enable L2 Cache Allocation Technology Date: Thu, 25 Aug 2016 13:21:12 +0800 Message-ID: <1472102472-7105-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bcn9e-0007g4-GV for xen-devel@lists.xenproject.org; Thu, 25 Aug 2016 05:24:42 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: wei.liu2@citrix.com, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, yi.y.sun@linux.intel.com, jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org RGVzaWduIGRvY3VtZW50IGlzIGJlbG93Ogo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQolIEludGVsIEwyIENhY2hl IEFsbG9jYXRpb24gVGVjaG5vbG9neSAoTDIgQ0FUKSBGZWF0dXJlCiUgUmV2aXNpb24gMS4wCgpc Y2xlYXJwYWdlCgpIaSBhbGwsCgpXZSBwbGFuIHRvIGJyaW5nIGEgbmV3IFBTUiAoUGxhdGZvcm0g U2hhcmVkIFJlc291cmNlKSBmZWF0dXJlIGNhbGxlZApJbnRlbCBMMiBDYWNoZSBBbGxvY2F0aW9u IFRlY2hub2xvZ3kgKEwyIENBVCkgdG8gWGVuLgoKVGhpcyBpcyB0aGUgaW5pdGlhbCBkZXNpZ24g b2YgTDIgQ0FULiBJdCBtaWdodCBiZSBhIGxpdHRsZSBsb25nIGFuZApkZXRhaWxlZCwgaG9wZSBp dCBkb2Vzbid0IG1hdHRlci4KCkJlc2lkZXMgdGhlIEwyIENBVCBpbXBsZW1lbnRhaW9uLCB3ZSBy ZWZhY3RvciB0aGUgcHNyLmMgdG8gbWFrZSBpdCBtb3JlCmZsZXhpYmxlIHRvIGFkZCBuZXcgZmVh dHVyZXMgYW5kIGZ1bGZpbGwgdGhlIHByaW5jaXBsZSwgb3BlbiBmb3IgZXh0ZW5zaW9uCmJ1dCBj bG9zZWQgZm9yIG1vZGlmaWNhdGlvbi4gCgpDb21tZW50cyBhbmQgc3VnZ2VzdGlvbnMgYXJlIHdl bGNvbWUgOi0pCgojIEJhc2ljcwoKLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgIFN0YXR1czogKipUZWNo IFByZXZpZXcqKgoKQXJjaGl0ZWN0dXJlKHMpOiBJbnRlbCB4ODYKCiAgIENvbXBvbmVudChzKTog SHlwZXJ2aXNvciwgdG9vbHN0YWNrCgogICAgICAgSGFyZHdhcmU6IEF0b20gY29kZW5hbWUgR29s ZG1vbnQgYW5kIGJleW9uZAotLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgT3ZlcnZpZXcKCkwyIENBVCBhbGxvd3Mg YW4gT1Mgb3IgSHlwZXJ2aXNvci9WTU0gdG8gY29udHJvbCBhbGxvY2F0aW9uIG9mIGEKQ1BVJ3Mg c2hhcmVkIEwyIGNhY2hlIGJhc2VkIG9uIGFwcGxpY2F0aW9uIHByaW9yaXR5IG9yIENsYXNzIG9m IFNlcnZpY2UKKENPUykuIEVhY2ggQ0xPUyBpcyBjb25maWd1cmVkIHVzaW5nIGNhcGFjaXR5IGJp dG1hc2tzIChDQk0pIHdoaWNoCnJlcHJlc2VudCBjYWNoZSBjYXBhY2l0eSBhbmQgaW5kaWNhdGUg dGhlIGRlZ3JlZSBvZiBvdmVybGFwIGFuZAppc29sYXRpb24gYmV0d2VlbiBjbGFzc2VzLiBPbmNl IEwyIENBVCBpcyBjb25maWd1cmVkLCB0aGUgcHJvY2Vzc29yCmFsbG93cyBhY2Nlc3MgdG8gcG9y dGlvbnMgb2YgTDIgY2FjaGUgYWNjb3JkaW5nIHRvIHRoZSBlc3RhYmxpc2hlZApjbGFzcyBvZiBz ZXJ2aWNlIChDT1MpLgoKIyBUZWNobmljYWwgaW5mb3JtYXRpb24KCkwyIENBVCBpcyBhIG1lbWJl ciBvZiBJbnRlbCBQU1IgZmVhdHVyZXMgYW5kIHBhcnQgb2YgQ0FULCBpdCBzaGFyZXMKc29tZSBi YXNlIFBTUiBpbmZyYXN0cnVjdHVyZSBpbiBYZW4uCgojIyBIYXJkd2FyZSBwZXJzcGVjdGl2ZQoK TDIgQ0FUIGRlZmluZXMgYSBuZXcgcmFuZ2UgTVNScyB0byBhc3NpZ24gZGlmZmVyZW50IEwyIGNh Y2hlIGFjY2VzcwpwYXR0ZXJucyB3aGljaCBhcmUga25vd24gYXMgQ0JNcyAoQ2FwYWNpdHkgQml0 TWFzayksIGVhY2ggQ0JNIGlzCmFzc29jaWF0ZWQgd2l0aCBhIENPUy4KCmBgYAoKICAgICAgICAg ICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKICAgSUEzMl9QUVJfQVNTT0MgICAgICAgfCBNU1IgKHBlciBzb2NrZXQpICAgICAgICAg ICB8ICAgIEFkZHJlc3MgICAgIHwKICstLS0tKy0tLSstLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKIHwgICAgfENPU3wgICAgICAgfCAg ICAgfCBJQTMyX0wyX1FPU19NQVNLXzAgICAgICAgICB8ICAgICAweEQxMCAgICAgIHwKICstLS0t Ky0tLSstLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKICAgICAgICDilJQtLS0tLS0tLS0tLS0tPiB8IC4uLiAgICAgICAgICAgICAgICAg ICAgICAgIHwgIC4uLiAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwogICAgICAgICAgICAgICAg ICAgICAgICB8IElBMzJfTDJfUU9TX01BU0tfbiAgICAgICAgIHwgMHhEMTArbiAobjw2NCkgfAog ICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwpgYGAKCldoZW4gY29udGV4dCBzd2l0Y2ggaGFwcGVucywgdGhlIENPUyBv ZiBWQ1BVIGlzIHdyaXR0ZW4gdG8gcGVyLXRocmVhZApNU1IgYElBMzJfUFFSX0FTU09DYCwgYW5k IHRoZW4gaGFyZHdhcmUgZW5mb3JjZXMgTDIgY2FjaGUgYWxsb2NhdGlvbgphY2NvcmRpbmcgdG8g dGhlIGNvcnJlc3BvbmRpbmcgQ0JNLgoKIyMgVGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIEwyIENB VCBhbmQgTDMgQ0FUL0NEUAoKTDIgQ0FUIGlzIGluZGVwZW5kZW50IG9mIEwzIENBVC9DRFAsIHdo aWNoIG1lYW5zIEwyIENBVCB3b3VsZCBiZSBlbmFibGVkCndoaWxlIEwzIENBVC9DRFAgaXMgZGlz YWJsZWQsIG9yIEwyIENBVCBhbmQgTDMgQ0FUL0NEUCBhcmUgYWxsIGVuYWJsZWQuCgpMMiBDQVQg dXNlcyBhIG5ldyByYW5nZSBDQk1zIGZyb20gMHhEMTAgfiAweEQxMCtuIChuPDY0KSwgZm9sbG93 aW5nIGJ5CnRoZSBMMyBDQVQvQ0RQIENCTXMsIGFuZCBzdXBwb3J0cyBzZXR0aW5nIGRpZmZlcmVu dCBMMiBjYWNoZSBhY2Nlc3NpbmcKcGF0dGVybnMgZnJvbSBMMyBjYWNoZS4KCk4uQi4gTDIgQ0FU IGFuZCBMMyBDQVQvQ0RQIHNoYXJlIHRoZSBzYW1lIENPUyBmaWVsZCBpbiB0aGUgc2FtZQphc3Nv Y2lhdGUgcmVnaXN0ZXIgYElBMzJfUFFSX0FTU09DYCwgd2hpY2ggbWVhbnMgb25lIENPUyBhc3Nv Y2lhdGUgdG8gYQpwYWlyIG9mIEwyIENCTSBhbmQgTDMgQ0JNLgpCZXNpZGVzLCB0aGUgbWF4IENP UyBvZiBMMiBDQVQgbWF5IGJlIGRpZmZlcmVudCBmcm9tIEwzIENBVC9DRFAgKG9yCm90aGVyIFBT UiBmZWF0dXJlcyBpbiBmdXR1cmUpLiBJbiBzb21lIGNhc2VzLCBhIFZNIGlzIHBlcm1pdHRlZCB0 byBoYXZlIGEKQ09TIHRoYXQgaXMgYmV5b25kIG9uZSAob3IgbW9yZSkgb2YgUFNSIGZlYXR1cmVz IGJ1dCB3aXRoaW4gdGhlIG90aGVycy4gCkZvciBpbnN0YW5jZSwgbGV0J3MgYXNzdW1lIHRoZSBt YXggQ09TIG9mIEwyIENBVCBpcyA4IGJ1dCB0aGUgbWF4IENPUyBvZgpMMyBDQVQgaXMgMTYsIHdo ZW4gYSBWTSBpcyBhc3NpZ25lZCA5IGFzIENPUywgdGhlIEwzIENCTSBhc3NvY2lhdGVkIHRvCkNP UyA5IHdvdWxkIGJlIGVuZm9yY2VkLCBidXQgZm9yIEwyIENBVCwgdGhlIGJlaGF2aW9yIGlzIGZ1 bGx5IG9wZW4gKG5vCmxpbWl0KSBzaW5jZSBDT1MgOSBpcyBiZXlvbmQgdGhlIG1heCBDT1MgKDgp IG9mIEwyIENBVC4KCiMjIERlc2lnbiBPdmVydmlldwoKKiBDb3JlIENPUy9DQk0gYXNzb2NpYXRp b24KCiAgV2hlbiBlbmZvcmNpbmcgTDIgQ0FULCBhbGwgY29yZXMgb2YgZG9tYWlucyBoYXZlIHRo ZSBzYW1lIGRlZmF1bHQKICBDT1MgKENPUzApIHdoaWNoIGFzc29jaWF0ZWQgdG8gdGhlIGZ1bGx5 IG9wZW4gQ0JNIChhbGwgb25lcyBiaXRtYXNrKQogIHRvIGFjY2VzcyBhbGwgTDIgY2FjaGUuIFRo ZSBkZWZhdWx0IENPUyBpcyB1c2VkIG9ubHkgaW4gaHlwZXJ2aXNvcgogIGFuZCBpcyB0cmFuc3Bh cmVudCB0byB0b29sIHN0YWNrIGFuZCB1c2VyLgoKICBTeXN0ZW0gYWRtaW5pc3RyYXRvciBjYW4g Y2hhbmdlIFBTUiBhbGxvY2F0aW9uIHBvbGljeSBhdCBydW50aW1lIGJ5CiAgdG9vbCBzdGFjay4g U2luY2UgTDIgQ0FUIHNoYXJlIENPUyB3aXRoIEwzIENBVC9DRFAsIGEgQ09TIGNvcnJlc3BvbmRz CiAgdG8gYSAyLXR1cGxlLCBsaWtlIFtMMiBDQk0sIEwzIENCTV0gd2l0aCBvbmx5LUNBVCBlbmFi bGVkLCB3aGVuIENEUAogIGlzIGVuYWJsZWQsIG9uZSBDT1MgY29ycmVzcG9uZHMgdG8gYSAzLXR1 cGxlLCBsaWtlIFtMMiBDQk0sCiAgTDMgQ29kZV9DQk0sIEwzIERhdGFfQ0JNXS4gSWYgbmVpdGhl ciBMMyBDQVQgbm9yIEwzIENEUCBpcyBlbmFibGVkLAogIHRoaW5ncyB3b3VsZCBiZSBlYXNpZXIs IG9uZSBDT1MgY29ycmVzcG9uZHMgdG8gb25lIEwyIENCTS4KCiogVkNQVSBzY2hlZHVsZQoKICBU aGlzIHBhcnQgcmV1c2VzIEwzIENBVCBDT1MgaW5mcmFzdHJ1Y3R1cmUuCgoqIE11bHRpLXNvY2tl dHMKCiAgRGlmZmVyZW50IHNvY2tldHMgbWF5IGhhdmUgZGlmZmVyZW50IEwyIENBVCBjYXBhYmls aXR5IChlLmcuIG1heCBDT1MpCiAgYWx0aG91Z2ggaXQgaXMgY29uc2lzdGVudCBvbiB0aGUgc2Ft ZSBzb2NrZXQuIFNvIHRoZSBjYXBhYmlsaXR5IG9mCiAgcGVyLXNvY2tldCBMMiBDQVQgaXMgc3Bl Y2lmaWVkLgoKIyMgSW1wbGVtZW50YXRpb24gRGVzY3JpcHRpb24KCiogSHlwZXJ2aXNvciBpbnRl cmZhY2VzOgoKICAxLiBFeHQ6IEJvb3QgbGluZSBwYXJhbWV0ZXIgInBzcj1jYXQiIG5vdyB3aWxs IGVuYWJsZSBMMiBDQVQgYW5kIEwzCiAgICAgICAgICBDQVQgaWYgaGFyZHdhcmUgc3VwcG9ydGVk LgoKICAyLiBOZXc6IFNZU0NUTDoKICAgICAgICAgIC0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9s Ml9pbmZvOiBHZXQgTDIgQ0FUIGluZm9ybWF0aW9uLgoKICAzLiBOZXc6IERPTUNUTDoKICAgICAg ICAgIC0gWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MMl9DQk06IEdldCBMMiBDQk0gZm9yIGEg ZG9tYWluLgogICAgICAgICAgLSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wyX0NCTTogU2V0 IEwyIENCTSBmb3IgYSBkb21haW4uCgoqIHhsIGludGVyZmFjZXM6CgogIDEuIEV4dDogcHNyLWNh dC1zaG93IC1sMiBkb21haW4taWQKICAgICAgICAgIFNob3cgTDIgY2JtIGZvciBhIGRvbWFpbi4K ICAgICAgICAgID0+IFhFTl9TWVNDVExfUFNSX0NBVF9nZXRfbDJfaW5mbyAvCiAgICAgICAgICAg ICBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wyX0NCTQoKICAyLiBFeHQ6IHBzci1tYmEtc2V0 IC1sMiBkb21haW4taWQgY2JtCiAgICAgICAgICBTZXQgTDIgY2JtIGZvciBhIGRvbWFpbi4KICAg ICAgICAgID0+IFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDJfQ0JNCgogIDMuIEV4dDogcHNy LWh3aW5mbwogICAgICAgICAgU2hvdyBQU1IgSFcgaW5mb3JtYXRpb24sIGluY2x1ZGluZyBMMiBD QVQKICAgICAgICAgID0+IFhFTl9TWVNDVExfUFNSX0NBVF9nZXRfbDJfaW5mbwoKKiBLZXkgZGF0 YSBzdHJ1Y3R1cmU6CgogICAxLiBGZWF0dXJlIGxpc3QKCiAgICAgIGBgYAogICAgICBzdHJ1Y3Qg ZmVhdF9saXN0IHsKICAgICAgICAgIHVuc2lnbmVkIGludCBmZWF0dXJlOwogICAgICAgICAgc3Ry dWN0IGZlYXRfb3BzIG9wczsKICAgICAgICAgIHVuc2lnbmVkIGludCBmZWF0X2luZm9bTUFYX0ZF QVRfSU5GT19TSVpFXTsKICAgICAgICAgIHVpbnQ2NF90IGNvc19yZWdfdmFsW01BWF9DT1NfUkVH X05VTV07CiAgICAgICAgICBzdHJ1Y3QgZmVhdF9saXN0ICpwTmV4dDsKICAgICAgfTsKICAgICAg YGBgCgogICAgICBXaGVuIGEgUFNSIGVuZm9yY2VtZW50IGZlYXR1cmUgaXMgZW5hYmxlZCwgaXQg d2lsbCBiZSBhZGRlZCBpbnRvIGEKICAgICAgZmVhdHVyZSBsaXN0LiBUaGUgaGVhZCBvZiB0aGUg bGlzdCBpcyBjcmVhdGVkIGluIHBzciBpbml0aWFsaXphdGlvbi4KCSAKICAgICAgLSBNZW1iZXIg YGZlYXR1cmVgCgogICAgICAgIGBmZWF0dXJlYCBpcyBhbiBpbnRlZ2VyIG51bWJlciwgdG8gaW5k aWNhdGUgd2hpY2ggZmVhdHVyZSB0aGUgbGlzdCBtZW1iZXIKICAgICAgICBjb3JyZXNwb25kcyB0 by4KCiAgICAgIC0gTWVtYmVyIGBvcHNgCgogICAgICAgIGBvcHNgIG1haW50YWlucyBhIGNhbGxi YWNrIGZ1bmN0aW9uIGxpc3Qgb2YgdGhlIGZlYXR1cmUuIEl0IHdpbGwgYmUgaW50cm9kdWNlZAog ICAgICAgIGluIGRldGFpbHMgbGF0ZXIuCgogICAgICAtIE1lbWJlciBgZmVhdF9pbmZvYAoKICAg ICAgICBgZmVhdF9pbmZvYCBtYWludGFpbnMgdGhlIGZlYXR1cmUgSFcgaW5mb3JtYXRpb24gd2hp Y2ggY2FuIGJlIGdvdCB0aHJvdWdoCiAgICAgICAgcHNyX2h3aW5mbyBjb21tYW5kLgkJCgogICAg ICAtIE1lbWJlciBgY29zX3JlZ192YWxgCgogICAgICAgIGBjb3NfcmVmX3ZhbGAgaXMgYW4gYXJy YXkgdG8gbWFpbnRhaW4gdGhlIHZhbHVlIHNldCBpbiBhbGwgQ09TIHJlZ2lzdGVycyBvZgogICAg ICAgIHRoZSBmZWF0dXJlLgoKICAgMi4gUGVyLXNvY2tldCBQU1IgYWxsb2NhdGlvbiBmZWF0dXJl cyBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUKCiAgICAgIGBgYAogICAgICBzdHJ1Y3QgcHNyX3NvY2tl dF9hbGxvY19pbmZvIHsKICAgICAgICAgIHVuc2lnbmVkIGludCBmZWF0dXJlczsKICAgICAgICAg IHVuc2lnbmVkIGludCBucl9mZWF0OwogICAgICAgICAgc3RydWN0IGZlYXRfbGlzdCAqcEZlYXQ7 CiAgICAgICAgICBzdHJ1Y3QgcHNyX3JlZiAqY29zX3JlZjsKICAgICAgICAgIHNwaW5sb2NrX3Qg bWFza19sb2NrOwogICAgICB9OwogICAgICBgYGAKCiAgICAgIFdlIGNvbGxlY3QgYWxsIFBTUiBh bGxvY2F0aW9uIGZlYXR1cmVzIGluZm9ybWF0aW9uIG9mIGEgc29ja2V0IGluCiAgICAgIHRoaXMg YHN0cnVjdCBwc3Jfc29ja2V0X2FsbG9jX2luZm9gLgoKICAgICAgLSBNZW1iZXIgYGZlYXR1cmVz YAoKICAgICAgICBgZmVhdHVyZXNgIGlzIGEgYml0bWFwLCB0byBpbmRpY2F0ZSB3aGljaCBmZWF0 dXJlIGlzIGVuYWJsZWQgb24KICAgICAgICBjdXJyZW50IHNvY2tldC4gV2UgZGVmaW5lIGBmZWF0 dXJlc2AgYml0bWFwIGFzOgoKICAgICAgICBiaXQgMH4xOiBMMyBDQVQgc3RhdHVzLCBbMDFdIHN0 YW5kcyBmb3IgTDMgQ0FUIG9ubHkgYW5kIFsxMF0KICAgICAgICAgICAgICAgICBzdGFuZHMgZm9y IEwzIENEUCBpcyBlbmFsYmVkLgoKICAgICAgICBiaXQgMjogTDIgQ0FUIHN0YXR1cy4KCiAgICAg IC0gTWVtYmVyIGBwRmVhdGAKCiAgICAgICAgYHBGZWF0YCBpcyB0aGUgaGVhZCBvZiB0aGUgZmVh dHVyZSBsaXN0IHdoaWNoIGlzIGVuYWJsZWQgb24gdGhlIHNvY2tldC4KCiAgICAgIC0gTWVtYmVy IGBjb3NfcmVmYAoKICAgICAgICBgY29zX3JlZmAgaXMgYW4gYXJyYXkgd2hpY2ggbWFpbnRhaW5z IHRoZSByZWZlcmVuY2Ugb2Ygb25lIENPUy4KICAgICAgICBJZiB0aGUgQ09TIGlzIHVzZWQgYnkg b25lIGRvbWFpbiwgdGhlIHJlZmVyZW5jZSB3aWxsIGluY3JlYXNlIG9uZS4KICAgICAgICBJZiBh IGRvbWFpbiByZWxlYXNlcyB0aGUgQ09TLCB0aGUgcmVmZXJlbmNlIHdpbGwgZGVjcmVhc2Ugb25l LiBUaGUKICAgICAgICBhcnJheSBpcyBpbmRleGVkIGJ5IENPUy4KCiAgIDMuIEZlYXR1cmUgb3Bl cmF0aW9uIGZ1bmN0aW9ucyBzdHJ1Y3R1cmUKCiAgICAgIGBgYAogICAgICBzdHJ1Y3QgZmVhdF9v cHMgewogICAgICAgICAgdm9pZCAoKmluaXRfZmVhdHVyZSkodW5zaWduZWQgaW50IGVheCwgdW5z aWduZWQgaW50IGVieCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBlY3gsIHVuc2lnbmVkIGludCBlZHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZmVhdF9saXN0ICpwRmVhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBwc3Jfc29ja2V0X2FsbG9jX2luZm8gKmluZm8pOwogICAgICAgICAgaW50ICgqZ2V0X29s ZF9zZXRfbmV3KSh1aW50NjRfdCAqbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGZlYXRfbGlzdCAqcEZlYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBvbGRfY29zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbnVtIG1hc2tfdHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50NjRfdCBtKTsKICAgICAgICAgIGludCAoKmNvbXBhcmVfbWFzaykodWludDY0X3QgKm1hc2ss IHN0cnVjdCBmZWF0X2xpc3QgKnBGZWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgY29zLCBib29sX3QgKmZvdW5kKTsKICAgICAgICAgIHVuc2lnbmVkIGludCAo KmdldF9jb3NfbWF4X2FzX3R5cGUpKHN0cnVjdCBmZWF0X2xpc3QgKnBGZWF0LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtYXNrX3R5cGUgdHlwZSk7 CiAgICAgICAgICB1bnNpZ25lZCBpbnQgKCpleGNlZWRfcmFuZ2UpKHVpbnQ2NF90ICptYXNrLCBz dHJ1Y3QgZmVhdF9saXN0ICpwRmVhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGNvcyk7CiAgICAgICAgICBpbnQgKCp3cml0ZV9tc3IpKHVuc2ln bmVkIGludCBjb3MsIHVpbnQ2NF90ICptYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZmVhdF9saXN0ICpwRmVhdCk7CiAgICAgICAgICBpbnQgKCpnZXRfdmFsKShzdHJ1Y3Qg ZmVhdF9saXN0ICpwRmVhdCwgdW5zaWduZWQgaW50IGNvcywKICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gbWFza190eXBlIHR5cGUsIHVpbnQ2NF90ICp2YWwpOwogICAgICAgICAgaW50ICgq Z2V0X2ZlYXRfaW5mbykoc3RydWN0IGZlYXRfbGlzdCAqcEZlYXQsIGVudW0gbWFza190eXBlIHR5 cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZGF0MCwgdWludDMy X3QgKmRhdDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZGF0Mik7 CiAgICAgICAgICB1bnNpZ25lZCBpbnQgKCpnZXRfbWF4X2Nvc19tYXgpKHN0cnVjdCBmZWF0X2xp c3QgKnBGZWF0KTsKICAgICAgfTsKICAgICAgYGBgCgogICAgICBXZSBhYnN0cmFjdCBhYm92ZSBj YWxsYmFjayBmdW5jdGlvbnMgdG8gZW5jYXBzdWxhdGUgdGhlIGZlYXR1cmUgc3BlY2lmaWMKICAg ICAgYmVoYXZpb3JzIGludG8gdGhlbS4gVGhlbiwgaXQgaXMgZWFzeSB0byBhZGQgYSBuZXcgZmVh dHVyZS4gV2UganVzdCBuZWVkOgogICAgICAgICAgMSkgSW1wbGVtZW50IHN1Y2ggb3BzIGFuZCBj YWxsYmFjayBmdW5jdGlvbnMgZm9yIGV2ZXJ5IGZlYXR1cmUuCiAgICAgICAgICAyKSBSZWdpc3Rl ciB0aGUgb3BzIGludG8gYHN0cnVjdCBmZWF0X2xpc3RgLgogICAgICAgICAgMykgQWRkIHRoZSBm ZWF0dXJlIGludG8gZmVhdHVyZSBsaXN0IGR1cmluZyBDUFUgaW5pdGlhbGl6YXRpb24uCgojIFVz ZXIgaW5mb3JtYXRpb24KCiogRmVhdHVyZSBFbmFibGluZzoKCiAgQWRkICJwc3I9Y2F0IiB0byBi b290IGxpbmUgcGFyYW1ldGVyIHRvIGVuYWJsZSBhbGwgc3VwcG9ydGVkIGxldmVsIENBVAogIGZl YXR1cmVzLgoKKiB4bCBpbnRlcmZhY2VzOgoKICAxLiBgcHNyLWNhdC1zaG93IFtPUFRJT05TXSBk b21haW4taWRgOgoKICAgICBTaG93IGRvbWFpbiBMMiBvciBMMyBDQVQgQ0JNLgoJIAogICAgIE5l dyBvcHRpb24gYC1sYCBpcyBhZGRlZC4KICAgICBgLWwyYDogU3BlY2lmeSBjYm0gZm9yIEwyIGNh Y2hlLgogICAgIGAtbDNgOiBTcGVjaWZ5IGNibSBmb3IgTDMgY2FjaGUuCgkgCiAgICAgSWYgbmVp dGhlciBgLWwyYCBub3IgYC1sM2AgaXMgZ2l2ZW4sIExMQyAoTGFzdCBMZXZlbCBDYWNoZSkgaXMK ICAgICBkZWZhdWx0IGJlaGF2aW9yLgoJIAogIDIuIGBwc3ItY2F0LWNibS1zZXQgW09QVElPTlNd IGRvbWFpbi1pZCBjYm1gOgoKICAgICBTZXQgZG9tYWluIEwyIG9yIEwzIENCTS4KCSAKICAgICBO ZXcgb3B0aW9uIGAtbGAgaXMgYWRkZWQuCiAgICAgYC1sMmA6IFNwZWNpZnkgY2JtIGZvciBMMiBj YWNoZS4KICAgICBgLWwzYDogU3BlY2lmeSBjYm0gZm9yIEwzIGNhY2hlLgoKICAgICBJZiBuZWl0 aGVyIGAtbDJgIG5vciBgLWwzYCBpcyBnaXZlbiwgTExDIChMYXN0IExldmVsIENhY2hlKSBpcwog ICAgIGRlZmF1bHQgYmVoYXZpb3IuIFNpbmNlIHRoZXJlIGlzIG5vIENEUCBzdXBwb3J0IG9uIEwy IGNhY2hlLCBzbyBpZgogICAgIGAtbDJgLCBgLS1jb2RlYCBvciBgLS1kYXRhYCBhcmUgYm90aCBn aXZlbiwgZXJyb3IgbWVzc2FnZSBzaG93cy4KCiAgMy4gYHBzci1od2luZm8gW09QVElPTlNdYDoK CiAgICAgU2hvdyBMMiAmIEwzIENBVCBIVyBpbmZvcm1hdGlvbnMgb24gZXZlcnkgc29ja2V0LgoK IyBSZWZlcmVuY2VzCgpbSW50ZWzCriA2NCBhbmQgSUEtMzIgQXJjaGl0ZWN0dXJlcyBTb2Z0d2Fy ZSBEZXZlbG9wZXIgTWFudWFsc10oaHR0cDovL3d3dy5pbnRlbC5jb20vY29udGVudC93d3cvdXMv ZW4vcHJvY2Vzc29ycy9hcmNoaXRlY3R1cmVzLXNvZnR3YXJlLWRldmVsb3Blci1tYW51YWxzLmh0 bWwpCgojIEhpc3RvcnkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEYXRlICAgICAgIFJldmlzaW9uIFZlcnNp b24gIE5vdGVzCi0tLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoyMDE2LTA4LTEyIDEuMCAgICAgIFhlbiA0LjcgIElu aXRpYWwgZGVzaWduCi0tLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKWWkgU3VuICgzKToKICB4ODY6IHJlZmFjdG9y IHBzciBpbXBsZW1lbnRhdGlvbiBpbiBoeXBlcnZpc29yLgogIHg4NjogYWRkIHN1cHBvcnQgZm9y IEwyIENBVCBpbiBoeXBlcnZpc29yLgogIHRvb2xzICYgZG9jczogYWRkIEwyIENBVCBzdXBwb3J0 IGluIHRvb2xzIGFuZCBkb2NzLgoKIGRvY3MvbWFuL3hsLnBvZC4xLmluICAgICAgICAgICAgfCAg IDI1ICstCiBkb2NzL21pc2MveGwtcHNyLm1hcmtkb3duICAgICAgIHwgICAxMCArLQogdG9vbHMv bGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICB8ICAgIDcgKy0KIHRvb2xzL2xpYnhjL3hjX3Bzci5j ICAgICAgICAgICAgfCAgIDI4ICstCiB0b29scy9saWJ4bC9saWJ4bC5oICAgICAgICAgICAgIHwg ICAgMiArCiB0b29scy9saWJ4bC9saWJ4bF9wc3IuYyAgICAgICAgIHwgICA1MCArLQogdG9vbHMv bGlieGwvbGlieGxfdHlwZXMuaWRsICAgICB8ICAgIDEgKwogdG9vbHMvbGlieGwveGxfY21kaW1w bC5jICAgICAgICB8ICAxOTEgKysrKystCiB0b29scy9saWJ4bC94bF9jbWR0YWJsZS5jICAgICAg IHwgICAgNCArLQogeGVuL2FyY2gveDg2L2RvbWN0bC5jICAgICAgICAgICB8ICAgNDkgKy0KIHhl bi9hcmNoL3g4Ni9wc3IuYyAgICAgICAgICAgICAgfCAxMzQzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLQogeGVuL2FyY2gveDg2L3N5c2N0bC5jICAgICAgICAgICB8ICAg MTkgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvbXNyLWluZGV4LmggfCAgICAxICsKIHhlbi9pbmNs dWRlL2FzbS14ODYvcHNyLmggICAgICAgfCAgIDIzICstCiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9t Y3RsLmggICAgIHwgICAgMiArCiB4ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggICAgIHwgICAg MyArLQogMTYgZmlsZXMgY2hhbmdlZCwgMTQzMyBpbnNlcnRpb25zKCspLCAzMjUgZGVsZXRpb25z KC0pCgotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK