From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F8F9A0544; Mon, 10 Oct 2022 17:22:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1D9FD42BE1; Mon, 10 Oct 2022 17:22:33 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 3D9D1427F6 for ; Mon, 10 Oct 2022 17:22:32 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH v7 0/4] Add lcore poll busyness telemetry Date: Mon, 10 Oct 2022 17:22:27 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D873CE@smartserver.smartshare.dk> In-Reply-To: <1be242de-8aef-5d8b-9ffa-f5db460fc6ef@ericsson.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v7 0/4] Add lcore poll busyness telemetry Thread-Index: AQHYyBwRmHeY4noAFUGUI4VEwAutYa3/8QMAgAGM4YCAACIFgIAGQeBQ References: <24c49429394294cfbf0d9c506b205029bac77c8b.1657890378.git.anatoly.burakov@intel.com> <20220914092929.1159773-1-kevin.laatz@intel.com> <3ec04d77-43e2-6eed-53b5-723ca5058911@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D873A0@smartserver.smartshare.dk> <1be242de-8aef-5d8b-9ffa-f5db460fc6ef@ericsson.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "Kevin Laatz" , Cc: , "Bruce Richardson" , =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "Konstantin Ananyev" , "Conor Walsh" , "David Hunt" , "Nicolas Chautru" , "Fan Zhang" , "Ashish Gupta" , "Akhil Goyal" , "Chengwen Feng" , "Ray Kinsella" , "Thomas Monjalon" , "Ferruh Yigit" , "Andrew Rybchenko" , "Jerin Jacob" , "Sachin Saxena" , "Hemant Agrawal" , "Ori Kam" , "Honnappa Nagarahalli" , "David Marchand" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBGcm9tOiBNYXR0aWFzIFLDtm5uYmxvbSBbbWFpbHRvOm1hdHRpYXMucm9ubmJsb21AZXJpY3Nz b24uY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgNiBPY3RvYmVyIDIwMjIgMTcuMjcNCj4gDQo+IE9u IDIwMjItMTAtMDYgMTU6MjUsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+PiBGcm9tOiBLZXZp biBMYWF0eiBbbWFpbHRvOmtldmluLmxhYXR6QGludGVsLmNvbV0NCj4gPj4gU2VudDogV2VkbmVz ZGF5LCA1IE9jdG9iZXIgMjAyMiAxNS40NQ0KPiA+Pg0KPiA+PiBPbiAxNC8wOS8yMDIyIDEwOjI5 LCBLZXZpbiBMYWF0eiB3cm90ZToNCj4gPj4+IEN1cnJlbnRseSwgdGhlcmUgaXMgbm8gd2F5IHRv IG1lYXN1cmUgbGNvcmUgcG9sbGluZyBidXN5bmVzcyBpbiBhDQo+ID4+IHBhc3NpdmUNCj4gPj4+ IHdheSwgd2l0aG91dCBhbnkgbW9kaWZpY2F0aW9ucyB0byB0aGUgYXBwbGljYXRpb24uIFRoaXMg cGF0Y2hzZXQNCj4gYWRkcw0KPiA+PiBhIG5ldw0KPiA+Pj4gRUFMIEFQSSB0aGF0IHdpbGwgYmUg YWJsZSB0byBwYXNzaXZlbHkgdHJhY2sgY29yZSBwb2xsaW5nIGJ1c3luZXNzLg0KPiA+PiBBcyBw YXJ0DQo+ID4+PiBvZiB0aGUgc2V0LCBuZXcgdGVsZW1ldHJ5IGVuZHBvaW50cyBhcmUgYWRkZWQg dG8gcmVhZCB0aGUgZ2VuZXJhdGUNCj4gPj4gbWV0cmljcy4NCj4gPj4+DQo+ID4+PiAtLS0NCj4g Pj4NCj4gPj4gQmFzZWQgb24gdGhlIGZlZWRiYWNrIGluIHRoZSBkaXNjdXNzaW9ucyBvbiB0aGlz IHBhdGNoc2V0LCB3ZSBoYXZlDQo+ID4+IGRlY2lkZWQgdG8gcmV2b2tlIHRoZSBzdWJtaXNzaW9u IG9mIHRoaXMgcGF0Y2hzZXQgZm9yIHRoZSAyMi4xMQ0KPiA+PiByZWxlYXNlLg0KPiA+Pg0KPiA+ PiBXZSB3aWxsIHJlLWV2YWx1YXRlIHRoZSBkZXNpZ24gd2l0aCB0aGUgYWltIHRvIHByb3ZpZGUg YSBtb3JlDQo+ID4+IGFjY2VwdGFibGUNCj4gPj4gc29sdXRpb24gaW4gYSBmdXR1cmUgcmVsZWFz ZS4NCj4gPg0KPiA+IEdvb2QgY2FsbC4gVGhhbmsgeW91IQ0KPiA+DQo+ID4gSSBzdWdnZXN0IGhh dmluZyBhbiBvcGVuIGRpc2N1c3Npb24gYWJvdXQgcmVxdWlyZW1lbnRzL2V4cGVjdGF0aW9ucw0K PiBmb3Igc3VjaCBhIHNvbHV0aW9uLCBiZWZvcmUgeW91IGltcGxlbWVudCBhbnkgY29kZS4NCj4g Pg0KPiA+IFdlIGhhdmVuJ3QgZm91bmQgdGhlIGdvbGRlbiBzb2x1dGlvbiBmb3Igb3VyIGFwcGxp Y2F0aW9uLCBidXQgd2UgaGF2ZQ0KPiBkaXNjdXNzZWQgaXQgcXVpdGUgYSBsb3QgaW50ZXJuYWxs eS4gSGVyZSBhcmUgc29tZSBvZiBvdXIgdGhvdWdodHM6DQo+ID4NCj4gPiBUaGUgYXBwbGljYXRp b24gbXVzdCBmZWVkIHRoZSBsaWJyYXJ5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgaG93IG11Y2gN Cj4gd29yayBpdCBpcyBkb2luZy4NCj4gPg0KPiA+IEUuZy4gQSBwaXBlbGluZSBzdGFnZSB0aGF0 IHBvbGxzIHRoZSBOSUMgZm9yIE4gaW5ncmVzcyBwYWNrZXRzIGNvdWxkDQo+IGZlZWQgdGhlIGJ1 c3luZXNzIGxpYnJhcnkgd2l0aCB2YWx1ZXMgc3VjaCBhczoNCj4gPiAgIC0gIm5vIHdvcmsiOiB6 ZXJvIHBhY2tldHMgcmVjZWl2ZWQsDQo+ID4gICAtICIyNSAlIHV0aWxpemF0aW9uIjogbGVzcyB0 aGFuIE4gcGFja2V0cyByZWNlaXZlZCAoaW4gdGhpcw0KPiBleGFtcGxlOiA4IG9mIG1heCAzMiBw YWNrZXRzID0gMjUgJSksIG9yDQo+ID4gICAtICIxMDAlIHV0aWxpemF0aW9uLCBwb3NzaWJseSBt b3JlIHdvcmsgdG8gZG8iOiBhbGwgTiBwYWNrZXRzDQo+IHJlY2VpdmVkIChtb3JlIHBhY2tldHMg Y291bGQgYmUgcmVhZHkgaW4gdGhlIHF1ZXVlLCBidXQgd2UgZG9uJ3Qga25vdykuDQo+ID4NCj4g DQo+IElmIHNvbWUgbGNvcmUncyBOSUMgUlggcXVldWUgYWx3YXlzLCBmb3IgZXZlcnkgcG9sbCBv cGVyYXRpb24sIHByb2R1Y2VzDQo+IDggcGFja2V0cyBvdXQgb2YgYSBtYXggYnVyc3Qgb2YgMzIs IEkgd291bGQgYXJndWUgdGhhdCBsY29yZSBpcyAxMDAlDQo+IGJ1c3kuIFdpdGggYWx3YXlzIHNv bWV0aGluZyB0byBkbywgaXQgZG9lc24ndCBoYXZlIGEgc2luZ2xlIGN5Y2xlIHRvDQo+IHNwYXJl Lg0KDQpJIHdvdWxkIGFyZ3VlIHRoYXQgaWYgSSBoYXZlIGZvdXIgY29yZXMgZWFjaCBvbmx5IHBy b2Nlc3NpbmcgMjUgJSBvZiB0aGUgcGFja2V0cywgb25lIGNvcmUgd291bGQgc3VmZmljZSBpbnN0 ZWFkLiBPciwgdGhlIGFwcGxpY2F0aW9uIGNvdWxkIHNjaGVkdWxlIHRoZSBmdW5jdGlvbiBhdCAx LzQgb2YgdGhlIGZyZXF1ZW5jeSBpdCBkb2VzIG5vdyAoZS5nLiBjYWxsIHRoZSBmdW5jdGlvbiBv bmNlIGV2ZXJ5IDQwIG1pY3Jvc2Vjb25kcyBpbnN0ZWFkIG9mIG9uY2UgZXZlcnkgMTAgbWljcm9z ZWNvbmRzKS4NCg0KSG93ZXZlciwgdGhlIGJ1c2luZXNzIGRvZXMgbm90IHNjYWxlIGxpbmVhcmx5 IHdpdGggdGhlIG51bWJlciBvZiBwYWNrZXRzIHByb2Nlc3NlZCAtIHdoaWNoIGFuIGludGVuZGVk IGJlbmVmaXQgb2YgYnVyc3RpbmcuDQoNCkhlcmUgYXJlIHNvbWUgcmVhbCBsaWZlIG51bWJlcnMg ZnJvbSBvdXIgaW4taG91c2UgcHJvZmlsZXIgbGlicmFyeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJv bm1lbnQsIHdoaWNoIHNheXMgdGhhdCBwb2xsaW5nIHRoZSBOSUMgZm9yIHBhY2tldHMgdGFrZXMg b24gYXZlcmFnZToNCg0KMTA0IGN5Y2xlcyB3aGVuIHRoZSBOSUMgcmV0dXJucyAwIHBhY2tldHMs DQo1MjkgY3ljbGVzIHdoZW4gdGhlIE5JQyByZXR1cm5zIDEgcGFja2V0LA0KNjc5IGN5Y2xlcyB3 aGVuIHRoZSBOSUMgcmV0dXJucyA4IHBhY2tldHMsIGFuZA0KMTI3NSBjeWNsZXMgd2hlbiB0aGUg TklDIHJldHVybnMgYSBmdWxsIGJ1cnN0IG9mIDMyIHBhY2tldHMuDQoNCihUaGlzIGluY2x1ZGVz IHNvbWUgb3ZlcmhlYWQgZnJvbSBvdXIgYXBwbGljYXRpb24sIHNvIHlvdSB3aWxsIHNlZSBvdGhl ciBudW1iZXJzIGluIHlvdXIgYXBwbGljYXRpb24uKQ0KDQo+IA0KPiBJdCBzZWVtcyB0byBtZSB0 aGF0IHlvdSBiYXNpY2FsbHkgaGF2ZSB0d28gb3B0aW9ucywgaWYgeW91IGRvDQo+IGFwcGxpY2F0 aW9uLWxldmVsICJidXN5bmVzcyIgcmVwb3J0aW5nLg0KPiANCj4gRWl0aGVyIHRoZSBhcHBsaWNh dGlvbg0KPiBhKSByZXBvcnRzIHdoZW4gYSBzZWN0aW9uIG9mIHVzZWZ1bCB3b3JrIGJlZ2lucywg YW5kIHdoZW4gaXQgZW5kcywgYXMNCj4gdHdvIHNlcGFyYXRlIGZ1bmN0aW9uIGNhbGxzLg0KPiBi KSBhZnRlciBoYXZpbmcgdGFrZW4gYSB0aW1lIHN0YW1wLCBhbmQgaGF2aW5nIGNvbXBsZXRlZCBh IHNlY3Rpb24gb2YNCj4gY29kZSB3aGljaCB0dXJuZWQgb3V0IHRvIGJlIHNvbWV0aGluZyB1c2Vm dWwsIGl0IHJlcG9ydHMgYmFjayB0byB0aGUNCj4gYnVzeW5lc3MgbW9kdWxlIHdpdGggb25lIGZ1 bmN0aW9uIGNhbGwsIGNvbnRhaW5pbmcgdGhlIGJ1c3kgY3ljbGVzDQo+IHNwZW50Lg0KPiANCj4g SW4gYSksIHRoZSB0d28gY2FsbHMgY291bGQgYmUgdG8gdGhlIHNhbWUgZnVuY3Rpb24sIHdpdGgg YSBib29sZWFuDQo+IGFyZ3VtZW50IGluZm9ybWluZyB0aGUgYnVzeW5lc3MgbW9kdWxlIGlmIHRo aXMgaXMgdGhlIGJlZ2lubmluZyBvZiBhDQo+IGJ1c3kgb3IgYW4gaWRsZSBwZXJpb2QuIEluIHN1 Y2ggY2FzZSwganVzdCBwYXNzICJudW1fcGt0c19kZXF1ZXVlZCA+IDAiDQo+IHRvIHRoZSBjYWxs Lg0KDQpPdXIgcHJvZmlsZXIgbGlicmFyeSBoYXMgYSBzdGFydCgpYW5kIGFuIGVuZCgpIGZ1bmN0 aW9uLCBhbmQgYW4gZW5kX2FuZF9zdGFydCgpIGZ1bmN0aW9uIGZvciB3aGVuIGEgc2VjdGlvbiBk aXJlY3RseSBmb2xsb3dzIHRoZSBwcmVjZWRpbmcgc2VjdGlvbiAodG8gb25seSB0YWtlIG9uZSB0 aW1lc3RhbXAgaW5zdGVhZCBvZiB0d28pLg0KDQo+IA0KPiBXaGF0IHlvdSB3b3VsZCBsaWtlIGlz IGEgc29sdXRpb24gd2hpY2ggYXZvaWQgcGluZy1wb25nIGJldHdlZW4gaWRsZQ0KPiBhbmQNCj4g YnVzeSBzdGF0ZXMgKHdpdGggdGhlIHJlc3VsdGluZyB0aW1lIHN0YW1waW5nIGFuZCBjb21wdXRh dGlvbnMpIGluDQo+IHNjZW5hcmlvcyB3aGVyZSBhIGxjb3JlIHRocmVhZCBtaXggc291cmNlcyBv ZiB3b3JrIHdoaWNoIG9mdGVuIGhhdmUNCj4gaXRlbXMgYXZhaWxhYmxlLCB3aXRoIHNvdXJjZXMg dGhhdCBkbyBub3QgKGUuZy4sIHBhY2tldHMgaW4gYSBSWCBxdWV1ZQ0KPiB2ZXJzdXMgcmVhc3Nl bWJseSB0aW1lb3V0cyBpbiBhIGNvcmUtbG9jYWwgdGltZXIgd2hlZWwpLiBJdCB3b3VsZCBiZQ0K PiBiZXR0ZXIgaW4gdGhhdCBzaXR1YXRpb24sIHRvIGF0dHJpYnV0ZSB0aGUgdGltZXIgd2hlZWwg cG9sbCBjeWNsZXMgYXMNCj4gYnVzeSBjeWNsZXMuDQo+IA0KPiBBbm90aGVyIGNydWNpYWwgYXNw ZWN0IGlzIHRoYXQgeW91IHdhbnQgdGhlIEFQSSB0byBiZSBzaW1wbGUsIGFuZCBjb2RlDQo+IGNo YW5nZXMgdG8gYmUgbWluaW1hbC4NCj4gDQo+IEl0J3MgdW5jbGVhciB0byBtZSBpZiB5b3UgbmVl ZCB0byBhY2NvdW50IGZvciBib3RoIGlkbGUgYW5kIGJ1c3kNCj4gY3ljbGVzLA0KPiBvciBvbmx5 IGJ1c3kgY3ljbGVzLCBhbmQgYXNzdW1lIGFsbCBvdGhlciBjeWNsZXMgYXJlIGlkbGUuIFRoZSB3 aWxsIGJlDQo+IGZvciBhIHRyYWRpdGlvbmFsIDE6MSBFQUwgdGhyZWFkIDwtPiBDUFUgY29yZSBt YXBwaW5nLCBidXQgbm90IGlmIHRoZQ0KPiAiLS1sY29yZXMiIHBhcmFtZXRlciBpcyB1c2VkIHRv IGNyZWF0ZSBmbG9hdGluZyBFQUwgdGhyZWFkcywgYW5kIEVBTA0KPiB0aHJlYWRzIHdoaWNoIHNo YXJlIHRoZSBzYW1lIGNvcmUsIGFuZCB0aHVzIG1heSBub3QgYmUgYWJsZSB0byB1c2UgMTAwJQ0K PiBvZiB0aGUgVFNDIGN5Y2xlcy4NCj4gDQo+ID4gQSBwaXBlbGluZSBzdGFnZSB0aGF0IHNlcnZp Y2VzIGEgUW9TIHNjaGVkdWxlciBjb3VsZCBhZGRpdGlvbmFsbHkNCj4gZmVlZCB0aGUgbGlicmFy eSB3aXRoIHZhbHVlcyBzdWNoIGFzOg0KPiA+ICAgLSAiMTAwJSB1dGlsaXphdGlvbiwgZGVmaW5p dGVseSBtb3JlIHdvcmsgdG8gZG8iOiBzdG9wcGVkDQo+IHByb2Nlc3NpbmcgZHVlIHRvIHNvbWUg Im1heCB3b3JrIHBlciBjYWxsIiBsaW1pdGF0aW9uLg0KPiA+ICAgLSAid2FpdGluZywgbm8gd29y ayB1bnRpbCBbREVMQVldIG5zIjogY3VycmVudCB0aW1lc2xvdCBoYXMgYmVlbg0KPiBmaWxsZWQs IHdhaXRpbmcgZm9yIHRoZSBuZXh0IHRpbWVzbG90IHRvIHN0YXJ0Lg0KPiA+DQo+ID4gSXQgaXMg aW1wb3J0YW50IHRvIG5vdGUgdGhhdCBhbnkgcGlwZWxpbmUgc3RhZ2UgcHJvY2Vzc2luZyBwYWNr ZXRzDQo+IChvciBzb21lIG90aGVyIG9iamVjdHMhKSBtaWdodCBwcm9jZXNzIGEgZGlmZmVyZW50 IG1heGltdW0gbnVtYmVyIG9mDQo+IG9iamVjdHMgdGhhbiB0aGUgaW5ncmVzcyBwaXBlbGluZSBz dGFnZS4gV2hhdCBJIG1lYW4gaXM6IFRoZSBudW1iZXIgTg0KPiBtaWdodCBub3QgYmUgdGhlIHNh bWUgZm9yIGFsbCBwaXBlbGluZSBzdGFnZXMuDQo+ID4NCj4gPg0KPiA+IFRoZSBpbmZvcm1hdGlv biBzaG91bGQgYmUgY29sbGVjdGVkIHBlciBsY29yZSBvciB0aHJlYWQsIGFsc28gdG8NCj4gcHJl dmVudCBjYWNoZSB0cmFzaGluZy4NCj4gPg0KPiA+IEFkZGl0aW9uYWxseSwgaXQgY291bGQgYmUg Y29sbGVjdGVkIHBlciBwaXBlbGluZSBzdGFnZSB0b28sIG1ha2luZw0KPiB0aGUgY29sbGVjdGlv biB0d28tZGltZW5zaW9uYWwuIFRoaXMgd291bGQgZXNzZW50aWFsbHkgbWFrZSBpdCBhDQo+IHBy b2ZpbGluZyBsaWJyYXJ5LCB3aGVyZSB5b3UgLSBpbiBhZGRpdGlvbiB0byBzZWVpbmcgaG93IG11 Y2ggdGltZSBpcw0KPiBzcGVudCB3b3JraW5nIC0gYWxzbyBjYW4gc2VlIHdoaWNoIHdvcmsgdGhl IHRpbWUgaXMgc3BlbnQgb24uDQo+ID4NCj4gDQo+IElmIHlvdSBpbnRyb2R1Y2Ugc3ViY2F0ZWdv cmllcyBvZiAiYnVzeSIsIGxpa2UgImJ1c3ktd2l0aC1YIiwgYW5kDQo+ICJidXN5LXdpdGgtWSIs IHRoZSBib29rIGtlZXBpbmcgd2lsbCBiZSBtb3JlIGV4cGVuc2l2ZSwgc2luY2UgeW91IHdpbGwN Cj4gdHJhbnNpdCBiZXR3ZWVuIHN0YXRlcyBldmVuIGZvciAxMDAlIGJ1c3kgbGNvcmVzICh3aGlj aCBpbiBwcmluY2lwbGUNCj4geW91DQo+IG5ldmVyLCBvciBhdCBsZWFzdCB2ZXJ5IHJhcmVseSwg bmVlZCB0byBkbyBpZiB5b3UgaGF2ZSBvbmx5IGJ1c3kgYW5kDQo+IGlkbGUgYXMgc3RhdGVzKS4N Cj4gDQo+IElmIHlvdXIgYXBwbGljYXRpb24gaXMgb3JnYW5pemVkIGFzIERQREsgc2VydmljZXMs IHlvdSB3aWxsIGdldCB0aGlzDQo+IGFscmVhZHkgdG9kYXksIG9uIGEgRFBESyBzZXJ2aWNlIGxl dmVsLg0KPiANCj4gSWYgeW91IGhhdmUgeW91ciBhcHBsaWNhdGlvbiBvcmdhbml6ZWQgYXMgYSBw aXBlbGluZSwgYW5kIHlvdSB1c2UgYW4NCj4gZXZlbnQgZGV2aWNlIGFzIGEgc2NoZWR1bGVyIGJl dHdlZW4gdGhlIHN0YWdlcywgdGhhdCBldmVudCBkZXZpY2UgaGFzIGENCj4gZ29vZCBvcHBvcnR1 bml0eSB0byBkbyB0aGlzIGtpbmQgb2YgYm9va2tlZXBpbmcuIERTVywgZm9yIGV4YW1wbGUsDQo+ IGtlZXBzDQo+IHRyYWNrIG9mIHRoZSBhdmVyYWdlIHByb2Nlc3NpbmcgbGF0ZW5jeSBmb3IgZXZl bnRzLCBhbmQgaG93IG1hbnkgZXZlbnRzDQo+IG9mIHZhcmlvdXMgdHlwZXMgaGF2ZSBiZWVuIHBy b2Nlc3NlZC4NCj4gDQoNCkxvdHMgb2YgZ29vZCBpbnB1dCwgTWF0dGlhcy4gTGV0J3Mgc2VlIHdo YXQgb3RoZXJzIHN1Z2dlc3QuIDotKQ0KDQo+ID4gQXMgbWVudGlvbmVkIGR1cmluZyB0aGUgcHJl dmlvdXMgZGlzY3Vzc2lvbnMsIEFQSXMgc2hvdWxkIGJlIHByb3ZpZGVkDQo+IHRvIG1ha2UgdGhl IGNvbGxlY3RlZCBpbmZvcm1hdGlvbiBtYWNoaW5lIHJlYWRhYmxlLCBzbyB0aGUgYXBwbGljYXRp b24NCj4gY2FuIHVzZSBpdCBmb3IgcG93ZXIgbWFuYWdlbWVudCBhbmQgb3RoZXIgcHVycG9zZXMu DQo+ID4NCj4gPiBPbmUgb2YgdGhlIHNpbXBsZSB0aGluZ3MgSSB3b3VsZCBsaWtlIHRvIGJlIGFi bGUgdG8gZXh0cmFjdCBmcm9tIHN1Y2gNCj4gYSBsaWJyYXJ5IGlzIENQVSBVdGlsaXphdGlvbiAo cGVyY2VudGFnZSkgcGVyIGxjb3JlLiA+DQo+ID4gQW5kIHNpbmNlIEkgd2FudCB0aGUgQ1BVIFV0 aWxpemF0aW9uIHRvIGJlIHNob3duIGZvciBtdWx0aXBsZSB0aGUNCj4gdGltZSBpbnRlcnZhbHMg KHVzdWFsbHkgMSwgNSBvciAxNSBtaW51dGVzOyBidXQgcGVyaGFwcyBhbHNvIDEgc2Vjb25kDQo+ IG9yIDEgbWlsbGlzZWNvbmQpIHRoZSBvdXRwdXQgZGF0YSBzaG91bGQgYmUgZXhwb3NlZCBhcyBh IGNvdW50ZXIgdHlwZSwNCj4gc28gbXkgImxvYWRhdmcgYXBwbGljYXRpb24iIGNhbiBjYWxjdWxh dGUgdGhlIHJhdGUgYnkgc3VidHJhY3RpbmcgdGhlDQo+IHByZXZpb3VzbHkgb2J0YWluZWQgdmFs dWUgZnJvbSB0aGUgY3VycmVudCB2YWx1ZSBhbmQgZGl2aWRlIHRoZQ0KPiBkaWZmZXJlbmNlIGJ5 IHRoZSB0aW1lIGludGVydmFsLg0KPiA+DQo+IA0KPiBJIGFncmVlLiBJbiBhZGRpdGlvbiwgeW91 IGFsc28gd2FudCB0aGUgInJhdyBkYXRhIiAobGNvcmUgYnVzeSBjeWNsZXMpDQo+IHNvIHlvdSBj YW4gZG8geW91IG93biBzYW1wbGluZywgYXQgeW91ciBvd24gZmF2b3JpdGUtbGVuZ3RoIGludGVy dmFscy4NCj4gDQo+ID4gLU1vcnRlbg0KPiA+DQoNCg==