From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v3 01/15] docs: L2 Cache Allocation Technology (CAT) feature document. Date: Tue, 25 Oct 2016 11:40:49 +0800 Message-ID: <1477366863-5246-2-git-send-email-yi.y.sun@linux.intel.com> References: <1477366863-5246-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 1byrYa-0004F1-OO for xen-devel@lists.xenproject.org; Tue, 25 Oct 2016 02:33:40 +0000 In-Reply-To: <1477366863-5246-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, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZG9j cy9mZWF0dXJlcy9sMl9jYXQucGFuZG9jIHwgMzE0ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzE0IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkb2NzL2ZlYXR1cmVzL2wyX2NhdC5wYW5kb2MKCmRpZmYgLS1naXQg YS9kb2NzL2ZlYXR1cmVzL2wyX2NhdC5wYW5kb2MgYi9kb2NzL2ZlYXR1cmVzL2wyX2NhdC5wYW5k b2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU0NDUxMAotLS0gL2Rldi9u dWxsCisrKyBiL2RvY3MvZmVhdHVyZXMvbDJfY2F0LnBhbmRvYwpAQCAtMCwwICsxLDMxNCBAQAor JSBJbnRlbCBMMiBDYWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3kgKEwyIENBVCkgRmVhdHVyZQor JSBSZXZpc2lvbiAyLjAKKworXGNsZWFycGFnZQorCisjIEJhc2ljcworCistLS0tLS0tLS0tLS0t LS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgIFN0YXR1czogKipUZWNoIFByZXZpZXcqKgorCitBcmNoaXRlY3R1cmUocyk6IElu dGVsIHg4NgorCisgICBDb21wb25lbnQocyk6IEh5cGVydmlzb3IsIHRvb2xzdGFjaworCisgICAg ICAgSGFyZHdhcmU6IEF0b20gY29kZW5hbWUgR29sZG1vbnQgYW5kIGJleW9uZAorLS0tLS0tLS0t LS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisKKyMgT3ZlcnZpZXcKKworTDIgQ0FUIGFsbG93cyBhbiBPUyBvciBIeXBlcnZpc29yL1ZN TSB0byBjb250cm9sIGFsbG9jYXRpb24gb2YgYQorQ1BVJ3Mgc2hhcmVkIEwyIGNhY2hlIGJhc2Vk IG9uIGFwcGxpY2F0aW9uIHByaW9yaXR5IG9yIENsYXNzIG9mIFNlcnZpY2UKKyhDT1MpLiBFYWNo IENMT1MgaXMgY29uZmlndXJlZCB1c2luZyBjYXBhY2l0eSBiaXRtYXNrcyAoQ0JNKSB3aGljaAor cmVwcmVzZW50IGNhY2hlIGNhcGFjaXR5IGFuZCBpbmRpY2F0ZSB0aGUgZGVncmVlIG9mIG92ZXJs YXAgYW5kCitpc29sYXRpb24gYmV0d2VlbiBjbGFzc2VzLiBPbmNlIEwyIENBVCBpcyBjb25maWd1 cmVkLCB0aGUgcHJvY2Vzc29yCithbGxvd3MgYWNjZXNzIHRvIHBvcnRpb25zIG9mIEwyIGNhY2hl IGFjY29yZGluZyB0byB0aGUgZXN0YWJsaXNoZWQKK2NsYXNzIG9mIHNlcnZpY2UgKENPUykuCisK KyMgVGVjaG5pY2FsIGluZm9ybWF0aW9uCisKK0wyIENBVCBpcyBhIG1lbWJlciBvZiBJbnRlbCBQ U1IgZmVhdHVyZXMgYW5kIHBhcnQgb2YgQ0FULCBpdCBzaGFyZXMKK3NvbWUgYmFzZSBQU1IgaW5m cmFzdHJ1Y3R1cmUgaW4gWGVuLgorCisjIyBIYXJkd2FyZSBwZXJzcGVjdGl2ZQorCitMMiBDQVQg ZGVmaW5lcyBhIG5ldyByYW5nZSBNU1JzIHRvIGFzc2lnbiBkaWZmZXJlbnQgTDIgY2FjaGUgYWNj ZXNzCitwYXR0ZXJucyB3aGljaCBhcmUga25vd24gYXMgQ0JNcyAoQ2FwYWNpdHkgQml0TWFzayks IGVhY2ggQ0JNIGlzCithc3NvY2lhdGVkIHdpdGggYSBDT1MuCisKK2BgYAorCisgICAgICAgICAg ICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKworICAgSUEzMl9QUVJfQVNTT0MgICAgICAgfCBNU1IgKHBlciBzb2NrZXQpICAgICAgICAg ICB8ICAgIEFkZHJlc3MgICAgIHwKKyArLS0tLSstLS0rLS0tLS0tLSsgICAgICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgfCAgICB8Q09TfCAgICAgICB8 ICAgICB8IElBMzJfTDJfUU9TX01BU0tfMCAgICAgICAgIHwgICAgIDB4RDEwICAgICAgfAorICst LS0tKy0tLSstLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKKyAgICAgICAg4pSULS0tLS0tLS0tLS0tLT4gfCAuLi4gICAgICAgICAgICAg ICAgICAgICAgICB8ICAuLi4gICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgICAgICAgICAg ICAgICAgICAgICAgICB8IElBMzJfTDJfUU9TX01BU0tfbiAgICAgICAgIHwgMHhEMTArbiAobjw2 NCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKK2BgYAorCitXaGVuIGNvbnRleHQgc3dpdGNoIGhhcHBlbnMs IHRoZSBDT1Mgb2YgVkNQVSBpcyB3cml0dGVuIHRvIHBlci10aHJlYWQKK01TUiBgSUEzMl9QUVJf QVNTT0NgLCBhbmQgdGhlbiBoYXJkd2FyZSBlbmZvcmNlcyBMMiBjYWNoZSBhbGxvY2F0aW9uCith Y2NvcmRpbmcgdG8gdGhlIGNvcnJlc3BvbmRpbmcgQ0JNLgorCisjIyBUaGUgcmVsYXRpb25zaGlw IGJldHdlZW4gTDIgQ0FUIGFuZCBMMyBDQVQvQ0RQCisKK0wyIENBVCBpcyBpbmRlcGVuZGVudCBv ZiBMMyBDQVQvQ0RQLCB3aGljaCBtZWFucyBMMiBDQVQgd291bGQgYmUgZW5hYmxlZAord2hpbGUg TDMgQ0FUL0NEUCBpcyBkaXNhYmxlZCwgb3IgTDIgQ0FUIGFuZCBMMyBDQVQvQ0RQIGFyZSBhbGwg ZW5hYmxlZC4KKworTDIgQ0FUIHVzZXMgYSBuZXcgcmFuZ2UgQ0JNcyBmcm9tIDB4RDEwIH4gMHhE MTArbiAobjw2NCksIGZvbGxvd2luZyBieQordGhlIEwzIENBVC9DRFAgQ0JNcywgYW5kIHN1cHBv cnRzIHNldHRpbmcgZGlmZmVyZW50IEwyIGNhY2hlIGFjY2Vzc2luZworcGF0dGVybnMgZnJvbSBM MyBjYWNoZS4gTGlrZSBMMyBDQVQvQ0RQIHJlcXVpcmVtZW50LCB0aGUgYml0cyBvZiBDQk0gb2YK K0wyIENBVCBtdXN0IGJlIGNvbnRpbnVvdXMgdG9vLgorCitOLkIuIEwyIENBVCBhbmQgTDMgQ0FU L0NEUCBzaGFyZSB0aGUgc2FtZSBDT1MgZmllbGQgaW4gdGhlIHNhbWUKK2Fzc29jaWF0ZSByZWdp c3RlciBgSUEzMl9QUVJfQVNTT0NgLCB3aGljaCBtZWFucyBvbmUgQ09TIGFzc29jaWF0ZSB0byBh CitwYWlyIG9mIEwyIENCTSBhbmQgTDMgQ0JNLgorQmVzaWRlcywgdGhlIG1heCBDT1Mgb2YgTDIg Q0FUIG1heSBiZSBkaWZmZXJlbnQgZnJvbSBMMyBDQVQvQ0RQIChvcgorb3RoZXIgUFNSIGZlYXR1 cmVzIGluIGZ1dHVyZSkuIEluIHNvbWUgY2FzZXMsIGEgVk0gaXMgcGVybWl0dGVkIHRvIGhhdmUg YQorQ09TIHRoYXQgaXMgYmV5b25kIG9uZSAob3IgbW9yZSkgb2YgUFNSIGZlYXR1cmVzIGJ1dCB3 aXRoaW4gdGhlIG90aGVycy4KK0ZvciBpbnN0YW5jZSwgbGV0J3MgYXNzdW1lIHRoZSBtYXggQ09T IG9mIEwyIENBVCBpcyA4IGJ1dCB0aGUgbWF4IENPUyBvZgorTDMgQ0FUIGlzIDE2LCB3aGVuIGEg Vk0gaXMgYXNzaWduZWQgOSBhcyBDT1MsIHRoZSBMMyBDQk0gYXNzb2NpYXRlZCB0bworQ09TIDkg d291bGQgYmUgZW5mb3JjZWQsIGJ1dCBmb3IgTDIgQ0FULCB0aGUgYmVoYXZpb3IgaXMgZnVsbHkg b3BlbiAobm8KK2xpbWl0KSBzaW5jZSBDT1MgOSBpcyBiZXlvbmQgdGhlIG1heCBDT1MgKDgpIG9m IEwyIENBVC4KKworIyMgRGVzaWduIE92ZXJ2aWV3CisKKyogQ29yZSBDT1MvQ0JNIGFzc29jaWF0 aW9uCisKKyAgV2hlbiBlbmZvcmNpbmcgTDIgQ0FULCBhbGwgY29yZXMgb2YgZG9tYWlucyBoYXZl IHRoZSBzYW1lIGRlZmF1bHQKKyAgQ09TIChDT1MwKSB3aGljaCBhc3NvY2lhdGVkIHRvIHRoZSBm dWxseSBvcGVuIENCTSAoYWxsIG9uZXMgYml0bWFzaykKKyAgdG8gYWNjZXNzIGFsbCBMMiBjYWNo ZS4gVGhlIGRlZmF1bHQgQ09TIGlzIHVzZWQgb25seSBpbiBoeXBlcnZpc29yCisgIGFuZCBpcyB0 cmFuc3BhcmVudCB0byB0b29sIHN0YWNrIGFuZCB1c2VyLgorCisgIFN5c3RlbSBhZG1pbmlzdHJh dG9yIGNhbiBjaGFuZ2UgUFNSIGFsbG9jYXRpb24gcG9saWN5IGF0IHJ1bnRpbWUgYnkKKyAgdG9v bCBzdGFjay4gU2luY2UgTDIgQ0FUIHNoYXJlIENPUyB3aXRoIEwzIENBVC9DRFAsIGEgQ09TIGNv cnJlc3BvbmRzCisgIHRvIGEgMi10dXBsZSwgbGlrZSBbTDIgQ0JNLCBMMyBDQk1dIHdpdGggb25s eS1DQVQgZW5hYmxlZCwgd2hlbiBDRFAKKyAgaXMgZW5hYmxlZCwgb25lIENPUyBjb3JyZXNwb25k cyB0byBhIDMtdHVwbGUsIGxpa2UgW0wyIENCTSwKKyAgTDMgQ29kZV9DQk0sIEwzIERhdGFfQ0JN XS4gSWYgbmVpdGhlciBMMyBDQVQgbm9yIEwzIENEUCBpcyBlbmFibGVkLAorICB0aGluZ3Mgd291 bGQgYmUgZWFzaWVyLCBvbmUgQ09TIGNvcnJlc3BvbmRzIHRvIG9uZSBMMiBDQk0uCisKKyogVkNQ VSBzY2hlZHVsZQorCisgIFRoaXMgcGFydCByZXVzZXMgTDMgQ0FUIENPUyBpbmZyYXN0cnVjdHVy ZS4KKworKiBNdWx0aS1zb2NrZXRzCisKKyAgRGlmZmVyZW50IHNvY2tldHMgbWF5IGhhdmUgZGlm ZmVyZW50IEwyIENBVCBjYXBhYmlsaXR5IChlLmcuIG1heCBDT1MpCisgIGFsdGhvdWdoIGl0IGlz IGNvbnNpc3RlbnQgb24gdGhlIHNhbWUgc29ja2V0LiBTbyB0aGUgY2FwYWJpbGl0eSBvZgorICBw ZXItc29ja2V0IEwyIENBVCBpcyBzcGVjaWZpZWQuCisKKyMjIEltcGxlbWVudGF0aW9uIERlc2Ny aXB0aW9uCisKKyogSHlwZXJ2aXNvciBpbnRlcmZhY2VzOgorCisgIDEuIEV4dDogQm9vdCBsaW5l IHBhcmFtZXRlciAicHNyPWNhdCIgbm93IHdpbGwgZW5hYmxlIEwyIENBVCBhbmQgTDMKKyAgICAg ICAgICBDQVQgaWYgaGFyZHdhcmUgc3VwcG9ydGVkLgorCisgIDIuIE5ldzogU1lTQ1RMOgorICAg ICAgICAgIC0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sMl9pbmZvOiBHZXQgTDIgQ0FUIGluZm9y bWF0aW9uLgorCisgIDMuIE5ldzogRE9NQ1RMOgorICAgICAgICAgIC0gWEVOX0RPTUNUTF9QU1Jf Q0FUX09QX0dFVF9MMl9DQk06IEdldCBMMiBDQk0gZm9yIGEgZG9tYWluLgorICAgICAgICAgIC0g WEVOX0RPTUNUTF9QU1JfQ0FUX09QX1NFVF9MMl9DQk06IFNldCBMMiBDQk0gZm9yIGEgZG9tYWlu LgorCisqIHhsIGludGVyZmFjZXM6CisKKyAgMS4gRXh0OiBwc3ItY2F0LXNob3cgLWwyIGRvbWFp bi1pZAorICAgICAgICAgIFNob3cgTDIgY2JtIGZvciBhIGRvbWFpbi4KKyAgICAgICAgICA9PiBY RU5fU1lTQ1RMX1BTUl9DQVRfZ2V0X2wyX2luZm8gLworICAgICAgICAgICAgIFhFTl9ET01DVExf UFNSX0NBVF9PUF9HRVRfTDJfQ0JNCisKKyAgMi4gRXh0OiBwc3ItbWJhLXNldCAtbDIgZG9tYWlu LWlkIGNibQorICAgICAgICAgIFNldCBMMiBjYm0gZm9yIGEgZG9tYWluLgorICAgICAgICAgID0+ IFhFTl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDJfQ0JNCisKKyAgMy4gRXh0OiBwc3ItaHdpbmZv CisgICAgICAgICAgU2hvdyBQU1IgSFcgaW5mb3JtYXRpb24sIGluY2x1ZGluZyBMMiBDQVQKKyAg ICAgICAgICA9PiBYRU5fU1lTQ1RMX1BTUl9DQVRfZ2V0X2wyX2luZm8KKworKiBLZXkgZGF0YSBz dHJ1Y3R1cmU6CisKKyAgIDEuIEZlYXR1cmUgSFcgaW5mbworCisgICAgICBgYGAKKyAgICAgIHN0 cnVjdCBwc3JfY2F0X2h3X2luZm8geworICAgICAgICAgIHVuc2lnbmVkIGludCBjYm1fbGVuOwor ICAgICAgICAgIHVuc2lnbmVkIGludCBjb3NfbWF4OworICAgICAgfTsKKyAgICAgIGBgYAorCisg ICAgICAtIE1lbWJlciBgY2JtX2xlbmAKKworICAgICAgICBgY2JtX2xlbmAgaXMgb25lIG9mIHRo ZSBoYXJkd2FyZSBpbmZvIG9mIENBVC4KKworICAgICAgLSBNZW1iZXIgYGNvc19tYXhgCisKKyAg ICAgICAgYGNvc19tYXhgIGlzIG9uZSBvZiB0aGUgaGFyZHdhcmUgaW5mbyBvZiBDQVQuCisKKyAg IDIuIEZlYXR1cmUgbGlzdCBub2RlCisKKyAgICAgIGBgYAorICAgICAgc3RydWN0IGZlYXRfbm9k ZSB7CisgICAgICAgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXR1cmU7CisgICAgICAgICAgc3Ry dWN0IGZlYXRfb3BzIG9wczsKKyAgICAgICAgICBzdHJ1Y3QgcHNyX2NhdF9od19pbmZvIGluZm87 CisgICAgICAgICAgdWludDY0X3QgY29zX3JlZ192YWxbTUFYX0NPU19SRUdfTlVNXTsKKyAgICAg ICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisgICAgICB9OworICAgICAgYGBgCisKKyAgICAg IFdoZW4gYSBQU1IgZW5mb3JjZW1lbnQgZmVhdHVyZSBpcyBlbmFibGVkLCBpdCB3aWxsIGJlIGFk ZGVkIGludG8gYQorICAgICAgZmVhdHVyZSBsaXN0LiBUaGUgaGVhZCBvZiB0aGUgbGlzdCBpcyBj cmVhdGVkIGluIHBzciBpbml0aWFsaXphdGlvbi4KKworICAgICAgLSBNZW1iZXIgYGZlYXR1cmVg CisKKyAgICAgICAgYGZlYXR1cmVgIGlzIGFuIGludGVnZXIgbnVtYmVyLCB0byBpbmRpY2F0ZSB3 aGljaCBmZWF0dXJlIHRoZSBsaXN0IGVudHJ5CisgICAgICAgIGNvcnJlc3BvbmRzIHRvLgorCisg ICAgICAtIE1lbWJlciBgb3BzYAorCisgICAgICAgIGBvcHNgIG1haW50YWlucyBhIGNhbGxiYWNr IGZ1bmN0aW9uIGxpc3Qgb2YgdGhlIGZlYXR1cmUuIEl0IHdpbGwgYmUgaW50cm9kdWNlZAorICAg ICAgICBpbiBkZXRhaWxzIGxhdGVyLgorCisgICAgICAtIE1lbWJlciBgaW5mb2AKKworICAgICAg ICBgaW5mb2AgbWFpbnRhaW5zIHRoZSBmZWF0dXJlIEhXIGluZm9ybWF0aW9uIHdoaWNoIGNhbiBi ZSBnb3QgdGhyb3VnaAorICAgICAgICBwc3JfaHdpbmZvIGNvbW1hbmQuCisKKyAgICAgIC0gTWVt YmVyIGBjb3NfcmVnX3ZhbGAKKworICAgICAgICBgY29zX3JlZ192YWxgIGlzIGFuIGFycmF5IHRv IG1haW50YWluIHRoZSB2YWx1ZSBzZXQgaW4gYWxsIENPUyByZWdpc3RlcnMgb2YKKyAgICAgICAg dGhlIGZlYXR1cmUuCisKKyAgIDMuIFBlci1zb2NrZXQgUFNSIGZlYXR1cmVzIGluZm9ybWF0aW9u IHN0cnVjdHVyZQorCisgICAgICBgYGAKKyAgICAgIHN0cnVjdCBwc3JfY2F0X3NvY2tldF9pbmZv IHsKKyAgICAgICAgICB1bnNpZ25lZCBpbnQgZmVhdF9tYXNrOworICAgICAgICAgIHVuc2lnbmVk IGludCBucl9mZWF0OworICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZmVhdF9saXN0OworICAg ICAgICAgIHVuc2lnbmVkIGludCBjb3NfcmVmW01BWF9DT1NfUkVHX05VTV07CisgICAgICAgICAg c3BpbmxvY2tfdCByZWZfbG9jazsKKyAgICAgIH07CisgICAgICBgYGAKKworICAgICAgV2UgY29s bGVjdCBhbGwgUFNSIGFsbG9jYXRpb24gZmVhdHVyZXMgaW5mb3JtYXRpb24gb2YgYSBzb2NrZXQg aW4KKyAgICAgIHRoaXMgYHN0cnVjdCBwc3JfY2F0X3NvY2tldF9pbmZvYC4KKworICAgICAgLSBN ZW1iZXIgYGZlYXRfbWFza2AKKworICAgICAgICBgZmVhdF9tYXNrYCBpcyBhIGJpdG1hcCwgdG8g aW5kaWNhdGUgd2hpY2ggZmVhdHVyZSBpcyBlbmFibGVkIG9uCisgICAgICAgIGN1cnJlbnQgc29j a2V0LiBXZSBkZWZpbmUgYGZlYXRfbWFza2AgYml0bWFwIGFzOgorCisgICAgICAgIGJpdCAwfjE6 IEwzIENBVCBzdGF0dXMsIFswMV0gc3RhbmRzIGZvciBMMyBDQVQgb25seSBhbmQgWzEwXQorICAg ICAgICAgICAgICAgICBzdGFuZHMgZm9yIEwzIENEUCBpcyBlbmFsYmVkLgorCisgICAgICAgIGJp dCAyOiBMMiBDQVQgc3RhdHVzLgorCisgICAgICAtIE1lbWJlciBgY29zX3JlZmAKKworICAgICAg ICBgY29zX3JlZmAgaXMgYW4gYXJyYXkgd2hpY2ggbWFpbnRhaW5zIHRoZSByZWZlcmVuY2Ugb2Yg b25lIENPUy4KKyAgICAgICAgSWYgdGhlIENPUyBpcyB1c2VkIGJ5IG9uZSBkb21haW4sIHRoZSBy ZWZlcmVuY2Ugd2lsbCBpbmNyZWFzZSBvbmUuCisgICAgICAgIElmIGEgZG9tYWluIHJlbGVhc2Vz IHRoZSBDT1MsIHRoZSByZWZlcmVuY2Ugd2lsbCBkZWNyZWFzZSBvbmUuIFRoZQorICAgICAgICBh cnJheSBpcyBpbmRleGVkIGJ5IENPUy4KKworICAgNC4gRmVhdHVyZSBvcGVyYXRpb24gZnVuY3Rp b25zIHN0cnVjdHVyZQorCisgICAgICBgYGAKKyAgICAgIHN0cnVjdCBmZWF0X29wcyB7CisgICAg ICAgICAgdm9pZCAoKmluaXRfZmVhdHVyZSkodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50 IGVieCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZWN4LCB1 bnNpZ25lZCBpbnQgZWR4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBm ZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBz cl9jYXRfc29ja2V0X2luZm8gKmluZm8pOworICAgICAgICAgIGludCAoKmdldF9mZWF0X2luZm8p KGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsIGVudW0gY2JtX3R5cGUgdHlwZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRbXSwgdWludDMyX3QgYXJyYXlf bGVuKTsKKyAgICAgICAgICBpbnQgKCpnZXRfdmFsKShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpm ZWF0LCB1bnNpZ25lZCBpbnQgY29zLAorICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gY2Jt X3R5cGUgdHlwZSwgdWludDY0X3QgKnZhbCk7CisgICAgICAgICAgdW5zaWduZWQgaW50ICgqZ2V0 X21heF9jb3NfbWF4KShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KTsKKyAgICAgICAgICB1 bnNpZ25lZCBpbnQgKCpnZXRfY29zX251bSkoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCk7 CisgICAgICAgICAgaW50ICgqZ2V0X29sZF92YWwpKHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2xkX2Nvcyk7CisgICAgICAgICAg aW50ICgqc2V0X25ld192YWwpKHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2xkX2NvcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW51bSBjYm1fdHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50NjRfdCBtKTsKKyAgICAgICAgICBpbnQgKCpjb21wYXJlX3ZhbCkoY29uc3QgdWludDY0X3Qg dmFsW10sIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBjb3MsIGJvb2wgKmZvdW5kKTsKKyAgICAgICAgICB1bnNp Z25lZCBpbnQgKCpnZXRfY29zX21heF9mcm9tX3R5cGUpKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUg KmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bnVtIGNibV90eXBlIHR5cGUpOworICAgICAgICAgIHVuc2lnbmVkIGludCAoKmV4Y2VlZHNfY29z X21heCkoY29uc3QgdWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvcyk7CisgICAgICAg ICAgaW50ICgqd3JpdGVfbXNyKSh1bnNpZ25lZCBpbnQgY29zLCBjb25zdCB1aW50NjRfdCB2YWxb XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpOwor ICAgICAgfTsKKyAgICAgIGBgYAorCisgICAgICBXZSBhYnN0cmFjdCBhYm92ZSBjYWxsYmFjayBm dW5jdGlvbnMgdG8gZW5jYXBzdWxhdGUgdGhlIGZlYXR1cmUgc3BlY2lmaWMKKyAgICAgIGJlaGF2 aW9ycyBpbnRvIHRoZW0uIFRoZW4sIGl0IGlzIGVhc3kgdG8gYWRkIGEgbmV3IGZlYXR1cmUuIFdl IGp1c3QgbmVlZDoKKyAgICAgICAgICAxKSBJbXBsZW1lbnQgc3VjaCBvcHMgYW5kIGNhbGxiYWNr IGZ1bmN0aW9ucyBmb3IgZXZlcnkgZmVhdHVyZS4KKyAgICAgICAgICAyKSBSZWdpc3RlciB0aGUg b3BzIGludG8gYHN0cnVjdCBmZWF0X25vZGVgLgorICAgICAgICAgIDMpIEFkZCB0aGUgZmVhdHVy ZSBpbnRvIGZlYXR1cmUgbGlzdCBkdXJpbmcgQ1BVIGluaXRpYWxpemF0aW9uLgorCisjIFVzZXIg aW5mb3JtYXRpb24KKworKiBGZWF0dXJlIEVuYWJsaW5nOgorCisgIEFkZCAicHNyPWNhdCIgdG8g Ym9vdCBsaW5lIHBhcmFtZXRlciB0byBlbmFibGUgYWxsIHN1cHBvcnRlZCBsZXZlbCBDQVQKKyAg ZmVhdHVyZXMuCisKKyogeGwgaW50ZXJmYWNlczoKKworICAxLiBgcHNyLWNhdC1zaG93IFtPUFRJ T05TXSBkb21haW4taWRgOgorCisgICAgIFNob3cgZG9tYWluIEwyIG9yIEwzIENBVCBDQk0uCisK KyAgICAgTmV3IG9wdGlvbiBgLWxgIGlzIGFkZGVkLgorICAgICBgLWwyYDogU3BlY2lmeSBjYm0g Zm9yIEwyIGNhY2hlLgorICAgICBgLWwzYDogU3BlY2lmeSBjYm0gZm9yIEwzIGNhY2hlLgorCisg ICAgIElmIG5laXRoZXIgYC1sMmAgbm9yIGAtbDNgIGlzIGdpdmVuLCBsZXZlbCAzIGlzIHRoZSBk ZWZhdWx0IG9wdGlvbi4KKworICAyLiBgcHNyLWNhdC1jYm0tc2V0IFtPUFRJT05TXSBkb21haW4t aWQgY2JtYDoKKworICAgICBTZXQgZG9tYWluIEwyIG9yIEwzIENCTS4KKworICAgICBOZXcgb3B0 aW9uIGAtbGAgaXMgYWRkZWQuCisgICAgIGAtbDJgOiBTcGVjaWZ5IGNibSBmb3IgTDIgY2FjaGUu CisgICAgIGAtbDNgOiBTcGVjaWZ5IGNibSBmb3IgTDMgY2FjaGUuCisKKyAgICAgSWYgbmVpdGhl ciBgLWwyYCBub3IgYC1sM2AgaXMgZ2l2ZW4sIGxldmVsIDMgaXMgdGhlIGRlZmF1bHQgb3B0aW9u LgorCisgIDMuIGBwc3ItaHdpbmZvIFtPUFRJT05TXWA6CisKKyAgICAgU2hvdyBMMiAmIEwzIENB VCBIVyBpbmZvcm1hdGlvbnMgb24gZXZlcnkgc29ja2V0LgorCisjIFJlZmVyZW5jZXMKKworW0lu dGVswq4gNjQgYW5kIElBLTMyIEFyY2hpdGVjdHVyZXMgU29mdHdhcmUgRGV2ZWxvcGVyIE1hbnVh bHMsIHZvbDMsIGNoYXB0ZXIgMTcuMTddKGh0dHA6Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3 L3VzL2VuL3Byb2Nlc3NvcnMvYXJjaGl0ZWN0dXJlcy1zb2Z0d2FyZS1kZXZlbG9wZXItbWFudWFs cy5odG1sKQorCisjIEhpc3RvcnkKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitEYXRlICAgICAgIFJldmlz aW9uIFZlcnNpb24gIE5vdGVzCistLS0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMTYtMDgtMTIgMS4wICAgICAg WGVuIDQuNyAgSW5pdGlhbCBkZXNpZ24KKzIwMTYtMDktMjEgMi4wICAgICAgWGVuIDQuNyAgQ2hh bmdlcyBhY2NvcmRpbmcgdG8gcmV2aWV3IGNvbW1lbnRzLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxLiBMMiBDQk0gYml0cyBzaG91bGQgYmUgY29udGludW91cyB0b28uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDIuIERlc2NyaWJlICdzdHJ1Y3QgZmVhdF9pbmZvJworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAzLiBVcGRhdGUgJ3N0cnVjdCBmZWF0X2xpc3QiIGRl c2NyaXB0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LiBVcGRhdGUgJ3N0cnVj dCBmZWF0X29wcyIgZGVzY3JpcHRpb24uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUu IFVwZGF0ZSBgcHNyLWNhdC1zaG93YCBkZXNjcmlwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgNi4gVXBkYXRlIGBwc3ItY2F0LWNibS1zZXRgIGRlc2NyaXB0aW9uLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA3LiBBZGQgdm9sdW1lIGFuZCBjaGFwdGVyIGluZm8gaW4g UmVmZXJlbmNlcy4KKzIwMTYtMTAtMjQgMy4wICAgICAgWGVuIDQuNyAgQ2hhbmdlcyBhY2NvcmRp bmcgdG8gcmV2aWV3IGNvbW1lbnRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLiBV cGRhdGUgJ3N0cnVjdCBmZWF0X2xpc3QnIHRvICdzdHJ1Y3QgZmVhdF9ub2RlJy4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMi4gVXBkYXRlIGRlc2NyaXB0aW9uIG9mICdzdHJ1Y3QgcHNy X2NhdF9zb2NrZXRfaW5mbycuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuIFVwZGF0 ZSBgcHNyLWNhdC1zaG93YCBkZXNjcmlwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgNC4gVXBkYXRlIGBwc3ItY2F0LWNibS1zZXRgIGRlc2NyaXB0aW9uLgorLS0tLS0tLS0tLSAt LS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=