From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v4 01/24] docs: create L2 Cache Allocation Technology (CAT) feature document Date: Wed, 14 Dec 2016 12:07:41 +0800 Message-ID: <1481688484-5093-2-git-send-email-yi.y.sun@linux.intel.com> References: <1481688484-5093-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cH7RH-0004kJ-3h for xen-devel@lists.xenproject.org; Wed, 14 Dec 2016 11:09:35 +0000 In-Reply-To: <1481688484-5093-1-git-send-email-yi.y.sun@linux.intel.com> 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, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, he.chen@linux.intel.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBjcmVhdGVzIEwyIENBVCBmZWF0dXJlIGRvY3VtZW50IGluIGRvYy9mZWF0dXJl cy8uCkl0IGRlc2NyaWJlcyBkZXRhaWxzIG9mIEwyIENBVC4KClNpZ25lZC1vZmYtYnk6IFlpIFN1 biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KIGRvY3MvZmVhdHVyZXMvaW50ZWxfcHNy X2wyX2NhdC5wYW5kb2MgfCAzNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDM0NyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9j cy9mZWF0dXJlcy9pbnRlbF9wc3JfbDJfY2F0LnBhbmRvYwoKZGlmZiAtLWdpdCBhL2RvY3MvZmVh dHVyZXMvaW50ZWxfcHNyX2wyX2NhdC5wYW5kb2MgYi9kb2NzL2ZlYXR1cmVzL2ludGVsX3Bzcl9s Ml9jYXQucGFuZG9jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YmQ2MWYK LS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2ZlYXR1cmVzL2ludGVsX3Bzcl9sMl9jYXQucGFuZG9j CkBAIC0wLDAgKzEsMzQ3IEBACislIEludGVsIEwyIENhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9n eSAoTDIgQ0FUKSBGZWF0dXJlCislIFJldmlzaW9uIDEuMAorCitcY2xlYXJwYWdlCisKKyMgQmFz aWNzCisKKy0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgU3RhdHVzOiAqKlRlY2ggUHJldmlldyoqCisK K0FyY2hpdGVjdHVyZShzKTogSW50ZWwgeDg2CisKKyAgIENvbXBvbmVudChzKTogSHlwZXJ2aXNv ciwgdG9vbHN0YWNrCisKKyAgICAgICBIYXJkd2FyZTogQXRvbSBjb2RlbmFtZSBHb2xkbW9udCBh bmQgYmV5b25kIENQVXMKKy0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIE92ZXJ2aWV3CisKK0wyIENBVCBhbGxv d3MgYW4gT1Mgb3IgSHlwZXJ2aXNvci9WTU0gdG8gY29udHJvbCBhbGxvY2F0aW9uIG9mIGEKK0NQ VSdzIHNoYXJlZCBMMiBjYWNoZSBiYXNlZCBvbiBhcHBsaWNhdGlvbiBwcmlvcml0eSBvciBDbGFz cyBvZiBTZXJ2aWNlCisoQ09TKS4gRWFjaCBDTE9TIGlzIGNvbmZpZ3VyZWQgdXNpbmcgY2FwYWNp dHkgYml0bWFza3MgKENCTSkgd2hpY2gKK3JlcHJlc2VudCBjYWNoZSBjYXBhY2l0eSBhbmQgaW5k aWNhdGUgdGhlIGRlZ3JlZSBvZiBvdmVybGFwIGFuZAoraXNvbGF0aW9uIGJldHdlZW4gY2xhc3Nl cy4gT25jZSBMMiBDQVQgaXMgY29uZmlndXJlZCwgdGhlIHByb2Nlc3NvcgorYWxsb3dzIGFjY2Vz cyB0byBwb3J0aW9ucyBvZiBMMiBjYWNoZSBhY2NvcmRpbmcgdG8gdGhlIGVzdGFibGlzaGVkCitj bGFzcyBvZiBzZXJ2aWNlLgorCisjIyBUZXJtaW5vbG9neQorCisqIENBVCAgICAgICAgIENhY2hl IEFsbG9jYXRpb24gVGVjaG5vbG9neQorKiBDQk0gICAgICAgICBDYXBhY2l0eSBCaXRNYXNrcwor KiBDRFAgICAgICAgICBDb2RlIGFuZCBEYXRhIFByaW9yaXRpemF0aW9uCisqIENPUy9DTE9TICAg IENsYXNzIG9mIFNlcnZpY2UKKyogTVNScyAgICAgICAgTWFjaGluZSBTcGVjaWZpYyBSZWdpc3Rl cnMKKyogUFNSICAgICAgICAgSW50ZWwgUGxhdGZvcm0gU2hhcmVkIFJlc291cmNlCisqIFZNTSAg ICAgICAgIFZpcnR1YWwgTWFjaGluZSBNb25pdG9yCisKKyMgVXNlciBkZXRhaWxzCisKKyogRmVh dHVyZSBFbmFibGluZzoKKworICBBZGQgInBzcj1jYXQiIHRvIGJvb3QgbGluZSBwYXJhbWV0ZXIg dG8gZW5hYmxlIGFsbCBzdXBwb3J0ZWQgbGV2ZWwgQ0FUCisgIGZlYXR1cmVzLgorCisqIHhsIGlu dGVyZmFjZXM6CisKKyAgMS4gYHBzci1jYXQtc2hvdyBbT1BUSU9OU10gZG9tYWluLWlkYDoKKwor ICAgICBTaG93IGRvbWFpbiBMMiBvciBMMyBDQVQgQ0JNLgorCisgICAgIE5ldyBvcHRpb24gYC1s YCBpcyBhZGRlZC4KKyAgICAgYC1sMmA6IFNob3cgY2JtIGZvciBMMiBjYWNoZS4KKyAgICAgYC1s M2A6IFNob3cgY2JtIGZvciBMMyBjYWNoZS4KKworICAgICBJZiBuZWl0aGVyIGAtbDJgIG5vciBg LWwzYCBpcyBnaXZlbiwgc2hvdyBib3RoIG9mIHRoZW0uIElmIGFueSBvbmUKKyAgICAgaXMgbm90 IHN1cHBvcnRlZCwgd2lsbCBwcmludCBlcnJvciBpbmZvLgorCisgIDIuIGBwc3ItY2F0LWNibS1z ZXQgW09QVElPTlNdIGRvbWFpbi1pZCBjYm1gOgorCisgICAgIFNldCBkb21haW4gTDIgb3IgTDMg Q0JNLgorCisgICAgIE5ldyBvcHRpb24gYC1sYCBpcyBhZGRlZC4KKyAgICAgYC1sMmA6IFNwZWNp ZnkgY2JtIGZvciBMMiBjYWNoZS4KKyAgICAgYC1sM2A6IFNwZWNpZnkgY2JtIGZvciBMMyBjYWNo ZS4KKworICAgICBJZiBuZWl0aGVyIGAtbDJgIG5vciBgLWwzYCBpcyBnaXZlbiwgbGV2ZWwgMyBp cyB0aGUgZGVmYXVsdCBvcHRpb24uCisKKyAgMy4gYHBzci1od2luZm8gW09QVElPTlNdYDoKKwor ICAgICBTaG93IEwyICYgTDMgQ0FUIEhXIGluZm9ybWF0aW9ucyBvbiBldmVyeSBzb2NrZXQuCisK KyMgVGVjaG5pY2FsIGRldGFpbHMKKworTDIgQ0FUIGlzIGEgbWVtYmVyIG9mIEludGVsIFBTUiBm ZWF0dXJlcyBhbmQgcGFydCBvZiBDQVQsIGl0IHNoYXJlcworc29tZSBiYXNlIFBTUiBpbmZyYXN0 cnVjdHVyZSBpbiBYZW4uCisKKyMjIEhhcmR3YXJlIHBlcnNwZWN0aXZlCisKK0wyIENBVCBkZWZp bmVzIGEgbmV3IHJhbmdlIE1TUnMgdG8gYXNzaWduIGRpZmZlcmVudCBMMiBjYWNoZSBhY2Nlc3MK K3BhdHRlcm5zIHdoaWNoIGFyZSBrbm93biBhcyBDQk1zLCBlYWNoIENCTSBpcyBhc3NvY2lhdGVk IHdpdGggYSBDT1MuCisKK2BgYAorCisgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICAgSUEzMl9QUVJfQVNTT0Mg ICAgICAgfCBNU1IgKHBlciBzb2NrZXQpICAgICAgICAgICB8ICAgIEFkZHJlc3MgICAgIHwKKyAr LS0tLSstLS0rLS0tLS0tLSsgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCisgfCAgICB8Q09TfCAgICAgICB8ICAgICB8IElBMzJfTDJfUU9TX01BU0tf MCAgICAgICAgIHwgICAgIDB4RDEwICAgICAgfAorICstLS0tKy0tLSstLS0tLS0tKyAgICAgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAgICAg4pSU LS0tLS0tLS0tLS0tLT4gfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICB8ICAuLi4gICAgICAg ICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgICAgICAgICAgICAgICAgICAgICAgICB8IElBMzJfTDJf UU9TX01BU0tfbiAgICAgICAgIHwgMHhEMTArbiAobjw2NCkgfAorICAgICAgICAgICAgICAgICAg ICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKK2Bg YAorCitXaGVuIGNvbnRleHQgc3dpdGNoIGhhcHBlbnMsIHRoZSBDT1Mgb2YgVkNQVSBpcyB3cml0 dGVuIHRvIHBlci10aHJlYWQKK01TUiBgSUEzMl9QUVJfQVNTT0NgLCBhbmQgdGhlbiBoYXJkd2Fy ZSBlbmZvcmNlcyBMMiBjYWNoZSBhbGxvY2F0aW9uCithY2NvcmRpbmcgdG8gdGhlIGNvcnJlc3Bv bmRpbmcgQ0JNLgorCisjIyBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gTDIgQ0FUIGFuZCBMMyBD QVQvQ0RQCisKK0wyIENBVCBpcyBpbmRlcGVuZGVudCBvZiBMMyBDQVQvQ0RQLCB3aGljaCBtZWFu cyBMMiBDQVQgd291bGQgYmUgZW5hYmxlZAord2hpbGUgTDMgQ0FUL0NEUCBpcyBkaXNhYmxlZCwg b3IgTDIgQ0FUIGFuZCBMMyBDQVQvQ0RQIGFyZSBhbGwgZW5hYmxlZC4KKworTDIgQ0FUIHVzZXMg YSBuZXcgcmFuZ2UgQ0JNcyBmcm9tIDB4RDEwIH4gMHhEMTArbiAobjw2NCksIGZvbGxvd2luZyBi eQordGhlIEwzIENBVC9DRFAgQ0JNcywgYW5kIHN1cHBvcnRzIHNldHRpbmcgZGlmZmVyZW50IEwy IGNhY2hlIGFjY2Vzc2luZworcGF0dGVybnMgZnJvbSBMMyBjYWNoZS4gTGlrZSBMMyBDQVQvQ0RQ IHJlcXVpcmVtZW50LCB0aGUgYml0cyBvZiBDQk0gb2YKK0wyIENBVCBtdXN0IGJlIGNvbnRpbnVv dXMgdG9vLgorCitOLkIuIEwyIENBVCBhbmQgTDMgQ0FUL0NEUCBzaGFyZSB0aGUgc2FtZSBDT1Mg ZmllbGQgaW4gdGhlIHNhbWUKK2Fzc29jaWF0ZSByZWdpc3RlciBgSUEzMl9QUVJfQVNTT0NgLCB3 aGljaCBtZWFucyBvbmUgQ09TIGFzc29jaWF0ZXMgdG8gYQorcGFpciBvZiBMMiBDQk0gYW5kIEwz IENCTS4KKworQmVzaWRlcywgdGhlIG1heCBDT1Mgb2YgTDIgQ0FUIG1heSBiZSBkaWZmZXJlbnQg ZnJvbSBMMyBDQVQvQ0RQIChvcgorb3RoZXIgUFNSIGZlYXR1cmVzIGluIGZ1dHVyZSkuIEluIHNv bWUgY2FzZXMsIGEgVk0gaXMgcGVybWl0dGVkIHRvIGhhdmUgYQorQ09TIHRoYXQgaXMgYmV5b25k IG9uZSAob3IgbW9yZSkgb2YgUFNSIGZlYXR1cmVzIGJ1dCB3aXRoaW4gdGhlIG90aGVycy4KK0Zv ciBpbnN0YW5jZSwgbGV0J3MgYXNzdW1lIHRoZSBtYXggQ09TIG9mIEwyIENBVCBpcyA4IGJ1dCB0 aGUgbWF4IENPUyBvZgorTDMgQ0FUIGlzIDE2LCB3aGVuIGEgVk0gaXMgYXNzaWduZWQgOSBhcyBD T1MsIHRoZSBMMyBDQk0gYXNzb2NpYXRlZCB0bworQ09TIDkgd291bGQgYmUgZW5mb3JjZWQsIGJ1 dCBmb3IgTDIgQ0FULCB0aGUgYmVoYXZpb3IgaXMgZnVsbHkgb3BlbiAobm8KK2xpbWl0KSBzaW5j ZSBDT1MgOSBpcyBiZXlvbmQgdGhlIG1heCBDT1MgKDgpIG9mIEwyIENBVC4KKworIyMgRGVzaWdu IE92ZXJ2aWV3CisKKyogQ29yZSBDT1MvQ0JNIGFzc29jaWF0aW9uCisKKyAgV2hlbiBlbmZvcmNp bmcgTDIgQ0FULCBhbGwgY29yZXMgb2YgZG9tYWlucyBoYXZlIHRoZSBzYW1lIGRlZmF1bHQKKyAg Q09TIChDT1MwKSB3aGljaCBhc3NvY2lhdGVkIHRvIHRoZSBmdWxseSBvcGVuIENCTSAoYWxsIG9u ZXMgYml0bWFzaykKKyAgdG8gYWNjZXNzIGFsbCBMMiBjYWNoZS4gVGhlIGRlZmF1bHQgQ09TIGlz IHVzZWQgb25seSBpbiBoeXBlcnZpc29yCisgIGFuZCBpcyB0cmFuc3BhcmVudCB0byB0b29sIHN0 YWNrIGFuZCB1c2VyLgorCisgIFN5c3RlbSBhZG1pbmlzdHJhdG9yIGNhbiBjaGFuZ2UgUFNSIGFs bG9jYXRpb24gcG9saWN5IGF0IHJ1bnRpbWUgYnkKKyAgdG9vbCBzdGFjay4gU2luY2UgTDIgQ0FU IHNoYXJlIENPUyB3aXRoIEwzIENBVC9DRFAsIGEgQ09TIGNvcnJlc3BvbmRzCisgIHRvIGEgMi10 dXBsZSwgbGlrZSBbTDIgQ0JNLCBMMyBDQk1dIHdpdGggb25seS1DQVQgZW5hYmxlZCwgd2hlbiBD RFAKKyAgaXMgZW5hYmxlZCwgb25lIENPUyBjb3JyZXNwb25kcyB0byBhIDMtdHVwbGUsIGxpa2Ug W0wyIENCTSwKKyAgTDMgQ29kZV9DQk0sIEwzIERhdGFfQ0JNXS4gSWYgbmVpdGhlciBMMyBDQVQg bm9yIEwzIENEUCBpcyBlbmFibGVkLAorICB0aGluZ3Mgd291bGQgYmUgZWFzaWVyLCBvbmUgQ09T IGNvcnJlc3BvbmRzIHRvIG9uZSBMMiBDQk0uCisKKyogVkNQVSBzY2hlZHVsZQorCisgIFRoaXMg cGFydCByZXVzZXMgTDMgQ0FUIENPUyBpbmZyYXN0cnVjdHVyZS4KKworKiBNdWx0aS1zb2NrZXRz CisKKyAgRGlmZmVyZW50IHNvY2tldHMgbWF5IGhhdmUgZGlmZmVyZW50IEwyIENBVCBjYXBhYmls aXR5IChlLmcuIG1heCBDT1MpCisgIGFsdGhvdWdoIGl0IGlzIGNvbnNpc3RlbnQgb24gdGhlIHNh bWUgc29ja2V0LiBTbyB0aGUgY2FwYWJpbGl0eSBvZgorICBwZXItc29ja2V0IEwyIENBVCBpcyBz cGVjaWZpZWQuCisKKyMjIEltcGxlbWVudGF0aW9uIERlc2NyaXB0aW9uCisKKyogSHlwZXJ2aXNv ciBpbnRlcmZhY2VzOgorCisgIDEuIEJvb3QgbGluZSBwYXJhbWV0ZXIgInBzcj1jYXQiIG5vdyB3 aWxsIGVuYWJsZSBMMiBDQVQgYW5kIEwzCisgICAgIENBVCBpZiBoYXJkd2FyZSBzdXBwb3J0ZWQu CisKKyAgMi4gU1lTQ1RMOgorICAgICAgICAgIC0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sMl9p bmZvOiBHZXQgTDIgQ0FUIGluZm9ybWF0aW9uLgorCisgIDMuIERPTUNUTDoKKyAgICAgICAgICAt IFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDJfQ0JNOiBHZXQgTDIgQ0JNIGZvciBhIGRvbWFp bi4KKyAgICAgICAgICAtIFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDJfQ0JNOiBTZXQgTDIg Q0JNIGZvciBhIGRvbWFpbi4KKworKiB4bCBpbnRlcmZhY2VzOgorCisgIDEuIHBzci1jYXQtc2hv dyAtbDIgZG9tYWluLWlkCisgICAgICAgICAgU2hvdyBMMiBjYm0gZm9yIGEgZG9tYWluLgorICAg ICAgICAgID0+IFhFTl9TWVNDVExfUFNSX0NBVF9nZXRfbDJfaW5mbyAvCisgICAgICAgICAgICAg WEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MMl9DQk0KKworICAyLiBwc3ItbWJhLXNldCAtbDIg ZG9tYWluLWlkIGNibQorICAgICAgICAgIFNldCBMMiBjYm0gZm9yIGEgZG9tYWluLgorICAgICAg ICAgID0+IFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDJfQ0JNCisKKyAgMy4gcHNyLWh3aW5m bworICAgICAgICAgIFNob3cgUFNSIEhXIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcgTDIgQ0FUCisg ICAgICAgICAgPT4gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sMl9pbmZvCisKKyogS2V5IGRhdGEg c3RydWN0dXJlOgorCisgICAxLiBGZWF0dXJlIEhXIGluZm8KKworICAgICAgYGBgCisgICAgICBz dHJ1Y3QgcHNyX2NhdF9od19pbmZvIHsKKyAgICAgICAgICB1bnNpZ25lZCBpbnQgY2JtX2xlbjsK KyAgICAgICAgICB1bnNpZ25lZCBpbnQgY29zX21heDsKKyAgICAgIH07CisgICAgICBgYGAKKwor ICAgICAgLSBNZW1iZXIgYGNibV9sZW5gCisKKyAgICAgICAgYGNibV9sZW5gIGlzIG9uZSBvZiB0 aGUgaGFyZHdhcmUgaW5mbyBvZiBDQVQuCisKKyAgICAgIC0gTWVtYmVyIGBjb3NfbWF4YAorCisg ICAgICAgIGBjb3NfbWF4YCBpcyBvbmUgb2YgdGhlIGhhcmR3YXJlIGluZm8gb2YgQ0FULgorCisg ICAyLiBGZWF0dXJlIGxpc3Qgbm9kZQorCisgICAgICBgYGAKKyAgICAgIHN0cnVjdCBmZWF0X25v ZGUgeworICAgICAgICAgIGVudW0gcHNyX2ZlYXRfdHlwZSBmZWF0dXJlOworICAgICAgICAgIHN0 cnVjdCBmZWF0X29wcyBvcHM7CisgICAgICAgICAgc3RydWN0IHBzcl9jYXRfaHdfaW5mbyBpbmZv OworICAgICAgICAgIHVpbnQ2NF90IGNvc19yZWdfdmFsW01BWF9DT1NfUkVHX05VTV07CisgICAg ICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OworICAgICAgfTsKKyAgICAgIGBgYAorCisgICAg ICBXaGVuIGEgUFNSIGVuZm9yY2VtZW50IGZlYXR1cmUgaXMgZW5hYmxlZCwgaXQgd2lsbCBiZSBh ZGRlZCBpbnRvIGEKKyAgICAgIGZlYXR1cmUgbGlzdC4gVGhlIGhlYWQgb2YgdGhlIGxpc3QgaXMg Y3JlYXRlZCBpbiBwc3IgaW5pdGlhbGl6YXRpb24uCisKKyAgICAgIC0gTWVtYmVyIGBmZWF0dXJl YAorCisgICAgICAgIGBmZWF0dXJlYCBpcyBhbiBpbnRlZ2VyIG51bWJlciwgdG8gaW5kaWNhdGUg d2hpY2ggZmVhdHVyZSB0aGUgbGlzdCBlbnRyeQorICAgICAgICBjb3JyZXNwb25kcyB0by4KKwor ICAgICAgLSBNZW1iZXIgYG9wc2AKKworICAgICAgICBgb3BzYCBtYWludGFpbnMgYSBjYWxsYmFj ayBmdW5jdGlvbiBsaXN0IG9mIHRoZSBmZWF0dXJlLiBJdCB3aWxsIGJlIGludHJvZHVjZWQKKyAg ICAgICAgaW4gZGV0YWlscyBsYXRlci4KKworICAgICAgLSBNZW1iZXIgYGluZm9gCisKKyAgICAg ICAgYGluZm9gIG1haW50YWlucyB0aGUgZmVhdHVyZSBIVyBpbmZvcm1hdGlvbiB3aGljaCBjYW4g YmUgZ290IHRocm91Z2gKKyAgICAgICAgcHNyX2h3aW5mbyBjb21tYW5kLgorCisgICAgICAtIE1l bWJlciBgY29zX3JlZ192YWxgCisKKyAgICAgICAgYGNvc19yZWdfdmFsYCBpcyBhbiBhcnJheSB0 byBtYWludGFpbiB0aGUgdmFsdWUgc2V0IGluIGFsbCBDT1MgcmVnaXN0ZXJzIG9mCisgICAgICAg IHRoZSBmZWF0dXJlLgorCisgICAzLiBQZXItc29ja2V0IFBTUiBmZWF0dXJlcyBpbmZvcm1hdGlv biBzdHJ1Y3R1cmUKKworICAgICAgYGBgCisgICAgICBzdHJ1Y3QgcHNyX2NhdF9zb2NrZXRfaW5m byB7CisgICAgICAgICAgdW5zaWduZWQgaW50IGZlYXRfbWFzazsKKyAgICAgICAgICB1bnNpZ25l ZCBpbnQgbnJfZmVhdDsKKyAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGZlYXRfbGlzdDsKKyAg ICAgICAgICB1bnNpZ25lZCBpbnQgY29zX3JlZltNQVhfQ09TX1JFR19OVU1dOworICAgICAgICAg IHNwaW5sb2NrX3QgcmVmX2xvY2s7CisgICAgICB9OworICAgICAgYGBgCisKKyAgICAgIFdlIGNv bGxlY3QgYWxsIFBTUiBhbGxvY2F0aW9uIGZlYXR1cmVzIGluZm9ybWF0aW9uIG9mIGEgc29ja2V0 IGluCisgICAgICB0aGlzIGBzdHJ1Y3QgcHNyX2NhdF9zb2NrZXRfaW5mb2AuCisKKyAgICAgIC0g TWVtYmVyIGBmZWF0X21hc2tgCisKKyAgICAgICAgYGZlYXRfbWFza2AgaXMgYSBiaXRtYXAsIHRv IGluZGljYXRlIHdoaWNoIGZlYXR1cmUgaXMgZW5hYmxlZCBvbgorICAgICAgICBjdXJyZW50IHNv Y2tldC4gV2UgZGVmaW5lIGBmZWF0X21hc2tgIGJpdG1hcCBhczoKKworICAgICAgICBiaXQgMH4x OiBMMyBDQVQgc3RhdHVzLCBbMDFdIHN0YW5kcyBmb3IgTDMgQ0FUIG9ubHkgYW5kIFsxMF0KKyAg ICAgICAgICAgICAgICAgc3RhbmRzIGZvciBMMyBDRFAgaXMgZW5hbGJlZC4KKworICAgICAgICBi aXQgMjogTDIgQ0FUIHN0YXR1cy4KKworICAgICAgLSBNZW1iZXIgYGNvc19yZWZgCisKKyAgICAg ICAgYGNvc19yZWZgIGlzIGFuIGFycmF5IHdoaWNoIG1haW50YWlucyB0aGUgcmVmZXJlbmNlIG9m IG9uZSBDT1MuCisgICAgICAgIElmIHRoZSBDT1MgaXMgdXNlZCBieSBvbmUgZG9tYWluLCB0aGUg cmVmZXJlbmNlIHdpbGwgaW5jcmVhc2Ugb25lLgorICAgICAgICBJZiBhIGRvbWFpbiByZWxlYXNl cyB0aGUgQ09TLCB0aGUgcmVmZXJlbmNlIHdpbGwgZGVjcmVhc2Ugb25lLiBUaGUKKyAgICAgICAg YXJyYXkgaXMgaW5kZXhlZCBieSBDT1MuCisKKyAgIDQuIEZlYXR1cmUgb3BlcmF0aW9uIGZ1bmN0 aW9ucyBzdHJ1Y3R1cmUKKworICAgICAgYGBgCisgICAgICBzdHJ1Y3QgZmVhdF9vcHMgeworICAg ICAgICAgIHZvaWQgKCppbml0X2ZlYXR1cmUpKHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGlu dCBlYngsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGVjeCwg dW5zaWduZWQgaW50IGVkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBw c3JfY2F0X3NvY2tldF9pbmZvICppbmZvKTsKKyAgICAgICAgICBpbnQgKCpnZXRfZmVhdF9pbmZv KShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LCBlbnVtIGNibV90eXBlIHR5cGUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGF0W10sIHVpbnQzMl90IGFycmF5 X2xlbik7CisgICAgICAgICAgaW50ICgqZ2V0X3ZhbCkoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAq ZmVhdCwgdW5zaWduZWQgaW50IGNvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNi bV90eXBlIHR5cGUsIHVpbnQ2NF90ICp2YWwpOworICAgICAgICAgIHVuc2lnbmVkIGludCAoKmdl dF9tYXhfY29zX21heCkoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCk7CisgICAgICAgICAg dW5zaWduZWQgaW50ICgqZ2V0X2Nvc19udW0pKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQp OworICAgICAgICAgIGludCAoKmdldF9vbGRfdmFsKSh1aW50NjRfdCB2YWxbXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9sZF9jb3MpOworICAgICAgICAg IGludCAoKnNldF9uZXdfdmFsKSh1aW50NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IG9sZF9jb3MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVudW0gY2JtX3R5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDY0X3QgbSk7CisgICAgICAgICAgaW50ICgqY29tcGFyZV92YWwpKGNvbnN0IHVpbnQ2NF90 IHZhbFtdLCBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29zLCBib29sICpmb3VuZCk7CisgICAgICAgICAgdW5z aWduZWQgaW50ICgqZ2V0X2Nvc19tYXhfZnJvbV90eXBlKShjb25zdCBzdHJ1Y3QgZmVhdF9ub2Rl ICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZW51bSBjYm1fdHlwZSB0eXBlKTsKKyAgICAgICAgICB1bnNpZ25lZCBpbnQgKCpleGNlZWRzX2Nv c19tYXgpKGNvbnN0IHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3MpOworICAgICAg ICAgIGludCAoKndyaXRlX21zcikodW5zaWduZWQgaW50IGNvcywgY29uc3QgdWludDY0X3QgdmFs W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KTsK KyAgICAgIH07CisgICAgICBgYGAKKworICAgICAgV2UgYWJzdHJhY3QgYWJvdmUgY2FsbGJhY2sg ZnVuY3Rpb25zIHRvIGVuY2Fwc3VsYXRlIHRoZSBmZWF0dXJlIHNwZWNpZmljCisgICAgICBiZWhh dmlvcnMgaW50byB0aGVtLiBUaGVuLCBpdCBpcyBlYXN5IHRvIGFkZCBhIG5ldyBmZWF0dXJlLiBX ZSBqdXN0IG5lZWQ6CisgICAgICAgICAgMSkgSW1wbGVtZW50IHN1Y2ggb3BzIGFuZCBjYWxsYmFj ayBmdW5jdGlvbnMgZm9yIGV2ZXJ5IGZlYXR1cmUuCisgICAgICAgICAgMikgUmVnaXN0ZXIgdGhl IG9wcyBpbnRvIGBzdHJ1Y3QgZmVhdF9ub2RlYC4KKyAgICAgICAgICAzKSBBZGQgdGhlIGZlYXR1 cmUgaW50byBmZWF0dXJlIGxpc3QgZHVyaW5nIENQVSBpbml0aWFsaXphdGlvbi4KKworIyBMaW1p dGF0aW9ucworCitMMiBDQVQgY2FuIG9ubHkgd29yayBvbiBIVyB3aGljaCBlbmFibGVzIGl0KGNo ZWNrIGJ5IENQVUlEKS4gU28gZmFyLCB0aGVyZQoraXMgbm8gSFcgZW5hYmxlcyBib3RoIEwyIENB VCBhbmQgTDMgQ0FUL0NEUC4gQnV0IFNXIGltcGxlbWVudGF0aW9uIGhhcyBjb25zaWRlcmVkCitz dWNoIHNjZW5hcmlvIHRvIGVuYWJsZSBib3RoIEwyIENBVCBhbmQgTDMgQ0FUL0NEUC4KKworIyBU ZXN0aW5nCisKK0wyIENBVCB1c2VzIHNhbWUgeGwgaW50ZXJmYWNlcyBhcyBMMyBDQVQvQ0RQLiBT bywgd2UgY2FuIGV4ZWN1dGUgdGhlc2UKK2NvbW1hbmRzIHRvIHZlcmlmeSBMMiBDQVQgYW5kIEwz IENBVC9DRFAgb24gZGlmZmVyZW50IEhXcyBzdXBwb3J0IHRoZW0uCisKK0ZvciBleGFtcGxlOgor ICAgIHJvb3RAOn4kIHhsIHBzci1od2luZm8gLS1jYXQKKyAgICBDYWNoZSBBbGxvY2F0aW9uIFRl Y2hub2xvZ3kgKENBVCk6IEwyCisgICAgU29ja2V0IElEICAgICAgIDogMAorICAgIE1heGltdW0g Q09TICAgICA6IDMKKyAgICBDQk0gbGVuZ3RoICAgICAgOiA4CisgICAgRGVmYXVsdCBDQk0gICAg IDogMHhmZgorCisgICAgcm9vdEA6fiQgeGwgcHNyLWNhdC1jYm0tc2V0IC1sMiAxIDB4N2YKKwor ICAgIHJvb3RAOn4kIHhsIHBzci1jYXQtc2hvdyAtbDIgMQorICAgIFNvY2tldCBJRCAgICAgICA6 IDAKKyAgICBEZWZhdWx0IENCTSAgICAgOiAweGZmCisgICAgICAgSUQgICAgICAgICAgICAgICAg ICAgICBOQU1FICAgICAgICAgICAgIENCTQorICAgICAgICAxICAgICAgICAgICAgICAgICB1YnVu dHUxNCAgICAgICAgICAgIDB4N2YKKworIyBBcmVhcyBmb3IgaW1wcm92ZW1lbnQKKworTi9BCisK KyMgS25vd24gaXNzdWVzCisKK04vQQorCisjIFJlZmVyZW5jZXMKKworIklOVEVMwq4gUkVTT1VS Q0UgRElSRUNUT1IgVEVDSE5PTE9HWSAoSU5URUzCriBSRFQpIEFMTE9DQVRJT04gRkVBVFVSRVMi IFtJbnRlbMKuIDY0IGFuZCBJQS0zMiBBcmNoaXRlY3R1cmVzIFNvZnR3YXJlIERldmVsb3BlciBN YW51YWxzLCB2b2wzXShodHRwOi8vd3d3LmludGVsLmNvbS9jb250ZW50L3d3dy91cy9lbi9wcm9j ZXNzb3JzL2FyY2hpdGVjdHVyZXMtc29mdHdhcmUtZGV2ZWxvcGVyLW1hbnVhbHMuaHRtbCkKKwor IyBIaXN0b3J5CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRGF0ZSAgICAgICBSZXZpc2lvbiBWZXJzaW9u ICBOb3RlcworLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDE2LTA4LTEyIDEuMCAgICAgIFhlbiA0LjkgIERl c2lnbiBkb2N1bWVudCB3cml0dGVuCistLS0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gCjEuOS4xCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==