From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0A62DA0526; Wed, 8 Jul 2020 16:16:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3D3291DD8A; Wed, 8 Jul 2020 16:16:04 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id 7B50C1DB32 for ; Wed, 8 Jul 2020 16:16:02 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Date: Wed, 8 Jul 2020 16:16:00 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35C61109@smartserver.smartshare.dk> In-Reply-To: <1594133832-12785-1-git-send-email-viacheslavo@mellanox.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH v4 1/2] mbuf: introduce accurate packet Txscheduling Thread-Index: AdZUbusvfEPPTCcdTXCH1i2M/xgKLgAwSpJQ References: <1591771085-24959-1-git-send-email-viacheslavo@mellanox.com> <1594133832-12785-1-git-send-email-viacheslavo@mellanox.com> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Viacheslav Ovsiienko" , Cc: , , , , Subject: Re: [dpdk-dev] [PATCH v4 1/2] mbuf: introduce accurate packet Txscheduling X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIFZp YWNoZXNsYXYNCj4gT3ZzaWllbmtvDQo+IFNlbnQ6IFR1ZXNkYXksIEp1bHkgNywgMjAyMCA0OjU3 IFBNDQo+IA0KPiBUaGVyZSBpcyB0aGUgcmVxdWlyZW1lbnQgb24gc29tZSBuZXR3b3JrcyBmb3Ig cHJlY2lzZSB0cmFmZmljIHRpbWluZw0KPiBtYW5hZ2VtZW50LiBUaGUgYWJpbGl0eSB0byBzZW5k IChhbmQsIGdlbmVyYWxseSBzcGVha2luZywgcmVjZWl2ZSkNCj4gdGhlIHBhY2tldHMgYXQgdGhl IHZlcnkgcHJlY2lzZWx5IHNwZWNpZmllZCBtb21lbnQgb2YgdGltZSBwcm92aWRlcw0KPiB0aGUg b3Bwb3J0dW5pdHkgdG8gc3VwcG9ydCB0aGUgY29ubmVjdGlvbnMgd2l0aCBUaW1lIERpdmlzaW9u DQo+IE11bHRpcGxleGluZyB1c2luZyB0aGUgY29udGVtcG9yYXJ5IGdlbmVyYWwgcHVycG9zZSBO SUMgd2l0aG91dA0KPiBpbnZvbHZpbmcNCj4gYW4gYXV4aWxpYXJ5IGhhcmR3YXJlLiBGb3IgZXhh bXBsZSwgdGhlIHN1cHBvcnRpbmcgb2YgTy1SQU4gRnJvbnRoYXVsDQo+IGludGVyZmFjZSBpcyBv bmUgb2YgdGhlIHByb21pc2luZyBmZWF0dXJlcyBmb3IgcG90ZW50aWFsbHkgdXNhZ2Ugb2YgdGhl DQo+IHByZWNpc2UgdGltZSBtYW5hZ2VtZW50IGZvciB0aGUgZWdyZXNzIHBhY2tldHMuDQo+IA0K PiBUaGUgbWFpbiBvYmplY3RpdmUgb2YgdGhpcyBSRkMgaXMgdG8gc3BlY2lmeSB0aGUgd2F5IGhv dyBhcHBsaWNhdGlvbnMNCj4gY2FuIHByb3ZpZGUgdGhlIG1vbWVudCBvZiB0aW1lIGF0IHdoYXQg dGhlIHBhY2tldCB0cmFuc21pc3Npb24gbXVzdCBiZQ0KPiBzdGFydGVkIGFuZCB0byBkZXNjcmli ZSBpbiBwcmVsaW1pbmFyeSB0aGUgc3VwcG9ydGluZyB0aGlzIGZlYXR1cmUgZnJvbQ0KPiBtbHg1 IFBNRCBzaWRlLg0KPiANCj4gVGhlIG5ldyBkeW5hbWljIHRpbWVzdGFtcCBmaWVsZCBpcyBwcm9w b3NlZCwgaXQgcHJvdmlkZXMgc29tZSB0aW1pbmcNCj4gaW5mb3JtYXRpb24sIHRoZSB1bml0cyBh bmQgdGltZSByZWZlcmVuY2VzIChpbml0aWFsIHBoYXNlKSBhcmUgbm90DQo+IGV4cGxpY2l0bHkg ZGVmaW5lZCBidXQgYXJlIG1haW50YWluZWQgYWx3YXlzIHRoZSBzYW1lIGZvciBhIGdpdmVuIHBv cnQuDQo+IFNvbWUgZGV2aWNlcyBhbGxvdyB0byBxdWVyeSBydGVfZXRoX3JlYWRfY2xvY2soKSB0 aGF0IHdpbGwgcmV0dXJuDQo+IHRoZSBjdXJyZW50IGRldmljZSB0aW1lc3RhbXAuIFRoZSBkeW5h bWljIHRpbWVzdGFtcCBmbGFnIHRlbGxzIHdoZXRoZXINCj4gdGhlIGZpZWxkIGNvbnRhaW5zIGFj dHVhbCB0aW1lc3RhbXAgdmFsdWUuIEZvciB0aGUgcGFja2V0cyBiZWluZyBzZW50DQo+IHRoaXMg dmFsdWUgY2FuIGJlIHVzZWQgYnkgUE1EIHRvIHNjaGVkdWxlIHBhY2tldCBzZW5kaW5nLg0KPiAN Cj4gQWZ0ZXIgUEtUX1JYX1RJTUVTVEFNUCBmbGFnIGFuZCBmaXhlZCB0aW1lc3RhbXAgZmllbGQg ZGVwcmVjYXRpb24NCj4gYW5kIG9ic29sZXRpbmcsIHRoZXNlIGR5bmFtaWMgZmxhZyBhbmQgZmll bGQgd2lsbCBiZSB1c2VkIHRvIG1hbmFnZQ0KPiB0aGUgdGltZXN0YW1wcyBvbiByZWNlaXZpbmcg ZGF0YXBhdGggYXMgd2VsbC4NCj4gDQo+IFdoZW4gUE1EIHNlZXMgdGhlICJydGVfZHluZmllbGRf dGltZXN0YW1wIiBzZXQgb24gdGhlIHBhY2tldCBiZWluZyBzZW50DQo+IGl0IHRyaWVzIHRvIHN5 bmNocm9uaXplIHRoZSB0aW1lIG9mIHBhY2tldCBhcHBlYXJpbmcgb24gdGhlIHdpcmUgd2l0aA0K PiB0aGUgc3BlY2lmaWVkIHBhY2tldCB0aW1lc3RhbXAuIElmIHRoZSBzcGVjaWZpZWQgb25lIGlz IGluIHRoZSBwYXN0IGl0DQo+IHNob3VsZCBiZSBpZ25vcmVkLCBpZiBvbmUgaXMgaW4gdGhlIGRp c3RhbnQgZnV0dXJlIGl0IHNob3VsZCBiZSBjYXBwZWQNCj4gd2l0aCBzb21lIHJlYXNvbmFibGUg dmFsdWUgKGluIHJhbmdlIG9mIHNlY29uZHMpLiBUaGVzZSBzcGVjaWZpYyBjYXNlcw0KPiAoInRv byBsYXRlIiBhbmQgImRpc3RhbnQgZnV0dXJlIikgY2FuIGJlIG9wdGlvbmFsbHkgcmVwb3J0ZWQg dmlhDQo+IGRldmljZSB4c3RhdHMgdG8gYXNzaXN0IGFwcGxpY2F0aW9ucyB0byBkZXRlY3QgdGhl IHRpbWUtcmVsYXRlZA0KPiBwcm9ibGVtcy4NCj4gDQo+IFRoZXJlIGlzIG5vIGFueSBwYWNrZXQg cmVvcmRlcmluZyBhY2NvcmRpbmcgdGltZXN0YW1wcyBpcyBzdXBwb3NlZCwNCj4gbmVpdGhlciB3 aXRoaW4gcGFja2V0IGJ1cnN0LCBub3IgYmV0d2VlbiBwYWNrZXRzLCBpdCBpcyBhbiBlbnRpcmVs eQ0KPiBhcHBsaWNhdGlvbiByZXNwb25zaWJpbGl0eSB0byBnZW5lcmF0ZSBwYWNrZXRzIGFuZCBp dHMgdGltZXN0YW1wcw0KPiBpbiBkZXNpcmVkIG9yZGVyLiBUaGUgdGltZXN0YW1wcyBjYW4gYmUg cHV0IG9ubHkgaW4gdGhlIGZpcnN0IHBhY2tldA0KPiBpbiB0aGUgYnVyc3QgcHJvdmlkaW5nIHRo ZSBlbnRpcmUgYnVyc3Qgc2NoZWR1bGluZy4NCj4gDQo+IFBNRCByZXBvcnRzIHRoZSBhYmlsaXR5 IHRvIHN5bmNocm9uaXplIHBhY2tldCBzZW5kaW5nIG9uIHRpbWVzdGFtcA0KPiB3aXRoIG5ldyBv ZmZsb2FkIGZsYWc6DQo+IA0KPiBUaGlzIGlzIHBhbGxpYXRpdmUgYW5kIGlzIGdvaW5nIHRvIGJl IHJlcGxhY2VkIHdpdGggbmV3IGV0aF9kZXYgQVBJDQo+IGFib3V0IHJlcG9ydGluZy9tYW5hZ2lu ZyB0aGUgc3VwcG9ydGVkIGR5bmFtaWMgZmxhZ3MgYW5kIGl0cyByZWxhdGVkDQo+IGZlYXR1cmVz LiBUaGlzIEFQSSB3b3VsZCBicmVhayBBQkkgY29tcGF0aWJpbGl0eSBhbmQgY2FuJ3QgYmUNCj4g aW50cm9kdWNlZA0KPiBhdCB0aGUgbW9tZW50LCBzbyBpcyBwb3N0cG9uZWQgdG8gMjAuMTEuDQo+ IA0KPiBGb3IgdGVzdGluZyBwdXJwb3NlcyBpdCBpcyBwcm9wb3NlZCB0byB1cGRhdGUgdGVzdHBt ZCAidHhvbmx5Ig0KPiBmb3J3YXJkaW5nIG1vZGUgcm91dGluZS4gV2l0aCB0aGlzIHVwZGF0ZSB0 ZXN0cG1kIGFwcGxpY2F0aW9uIGdlbmVyYXRlcw0KPiB0aGUgcGFja2V0cyBhbmQgc2V0cyB0aGUg ZHluYW1pYyB0aW1lc3RhbXBzIGFjY29yZGluZyB0byBzcGVjaWZpZWQgdGltZQ0KPiBwYXR0ZXJu IGlmIGl0IHNlZXMgdGhlICJydGVfZHluZmllbGRfdGltZXN0YW1wIiBpcyByZWdpc3RlcmVkLg0K PiANCj4gVGhlIG5ldyB0ZXN0cG1kIGNvbW1hbmQgaXMgcHJvcG9zZWQgdG8gY29uZmlndXJlIHNl bmRpbmcgcGF0dGVybjoNCj4gDQo+IHNldCB0eF90aW1lcyA8YnVyc3RfZ2FwPiw8aW50cmFfZ2Fw Pg0KPiANCj4gPGludHJhX2dhcD4gLSB0aGUgZGVsYXkgYmV0d2VlbiB0aGUgcGFja2V0cyB3aXRo aW4gdGhlIGJ1cnN0DQo+ICAgICAgICAgICAgICAgc3BlY2lmaWVkIGluIHRoZSBkZXZpY2UgY2xv Y2sgdW5pdHMuIFRoZSBudW1iZXINCj4gICAgICAgICAgICAgICBvZiBwYWNrZXRzIGluIHRoZSBi dXJzdCBpcyBkZWZpbmVkIGJ5IHR4YnVyc3QgcGFyYW1ldGVyDQo+IA0KPiA8YnVyc3RfZ2FwPiAt IHRoZSBkZWxheSBiZXR3ZWVuIHRoZSBidXJzdHMgaW4gdGhlIGRldmljZSBjbG9jayB1bml0cw0K PiANCj4gQXMgdGhlIHJlc3VsdCB0aGUgYnVyc3RzIG9mIHBhY2tldCB3aWxsIGJlIHRyYW5zbWl0 dGVkIHdpdGggc3BlY2lmaWMNCj4gZGVsYXlzIGJldHdlZW4gdGhlIHBhY2tldHMgd2l0aGluIHRo ZSBidXJzdCBhbmQgc3BlY2lmaWMgZGVsYXkgYmV0d2Vlbg0KPiB0aGUgYnVyc3RzLiBUaGUgcnRl X2V0aF9nZXRfY2xvY2sgaXMgc3VwcG9zZWQgdG8gYmUgZW5nYWdlZCB0byBnZXQgdGhlDQo+IGN1 cnJlbnQgZGV2aWNlIGNsb2NrIHZhbHVlIGFuZCBwcm92aWRlIHRoZSByZWZlcmVuY2UgZm9yIHRo ZQ0KPiB0aW1lc3RhbXBzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogVmlhY2hlc2xhdiBPdnNpaWVu a28gPHZpYWNoZXNsYXZvQG1lbGxhbm94LmNvbT4NCj4gLS0tDQo+ICB2MS0+djQ6DQo+ICAgICAt IGRlZGljYXRlZCBkeW5hbWljIFR4IHRpbWVzdGFtcCBmbGFnIGluc3RlYWQgb2Ygc2hhcmVkIHdp dGggUngNCg0KVGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uIGFib3ZlIHNob3VsZCBiZSB1cGRhdGVk IHRvIHJlZmxlY3QgdGhhdCBpdCBpcyBub3cgdHdvIGZsYWdzLg0KDQo+ICAgICAtIERveHlnZW4t c3R5bGUgY29tbWVudA0KPiAgICAgLSBjb21tZW50cyB1cGRhdGUNCj4gDQo+IC0tLQ0KPiAgbGli L2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5jIHwgIDEgKw0KPiAgbGliL2xpYnJ0ZV9ldGhkZXYv cnRlX2V0aGRldi5oIHwgIDQgKysrKw0KPiAgbGliL2xpYnJ0ZV9tYnVmL3J0ZV9tYnVmX2R5bi5o IHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgMyBmaWxlcyBjaGFuZ2Vk LCAzNiBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYv cnRlX2V0aGRldi5jDQo+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5jDQo+IGluZGV4 IDhlMTBhNmYuLjAyMTU3ZDUgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9l dGhkZXYuYw0KPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmMNCj4gQEAgLTE2 Miw2ICsxNjIsNyBAQCBzdHJ1Y3QgcnRlX2V0aF94c3RhdHNfbmFtZV9vZmYgew0KPiAgCVJURV9U WF9PRkZMT0FEX0JJVDJTVFIoVURQX1ROTF9UU08pLA0KPiAgCVJURV9UWF9PRkZMT0FEX0JJVDJT VFIoSVBfVE5MX1RTTyksDQo+ICAJUlRFX1RYX09GRkxPQURfQklUMlNUUihPVVRFUl9VRFBfQ0tT VU0pLA0KPiArCVJURV9UWF9PRkZMT0FEX0JJVDJTVFIoU0VORF9PTl9USU1FU1RBTVApLA0KPiAg fTsNCj4gDQo+ICAjdW5kZWYgUlRFX1RYX09GRkxPQURfQklUMlNUUg0KPiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oDQo+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRl X2V0aGRldi5oDQo+IGluZGV4IGE0OTI0MmIuLjZmNjQ1NGMgMTAwNjQ0DQo+IC0tLSBhL2xpYi9s aWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuaA0KPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVf ZXRoZGV2LmgNCj4gQEAgLTExNzgsNiArMTE3OCwxMCBAQCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHsN Cj4gIC8qKiBEZXZpY2Ugc3VwcG9ydHMgb3V0ZXIgVURQIGNoZWNrc3VtICovDQo+ICAjZGVmaW5l IERFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSAgMHgwMDEwMDAwMA0KPiANCj4gKy8qKiBE ZXZpY2Ugc3VwcG9ydHMgc2VuZCBvbiB0aW1lc3RhbXAgKi8NCj4gKyNkZWZpbmUgREVWX1RYX09G RkxPQURfU0VORF9PTl9USU1FU1RBTVAgMHgwMDIwMDAwMA0KPiArDQo+ICsNCj4gICNkZWZpbmUg UlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1JYX1FVRVVFX1NFVFVQIDB4MDAwMDAwMDENCj4gIC8q KjwgRGV2aWNlIHN1cHBvcnRzIFJ4IHF1ZXVlIHNldHVwIGFmdGVyIGRldmljZSBzdGFydGVkKi8N Cj4gICNkZWZpbmUgUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1RYX1FVRVVFX1NFVFVQIDB4MDAw MDAwMDINCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zl9keW4uaA0KPiBi L2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zl9keW4uaA0KPiBpbmRleCA5NmMzNjMxLi43ZTlmN2Qy IDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX21idWYvcnRlX21idWZfZHluLmgNCj4gKysrIGIv bGliL2xpYnJ0ZV9tYnVmL3J0ZV9tYnVmX2R5bi5oDQo+IEBAIC0yNTAsNCArMjUwLDM1IEBAIGlu dCBydGVfbWJ1Zl9keW5mbGFnX2xvb2t1cChjb25zdCBjaGFyICpuYW1lLA0KPiAgI2RlZmluZSBS VEVfTUJVRl9EWU5GSUVMRF9NRVRBREFUQV9OQU1FICJydGVfZmxvd19keW5maWVsZF9tZXRhZGF0 YSINCj4gICNkZWZpbmUgUlRFX01CVUZfRFlORkxBR19NRVRBREFUQV9OQU1FICJydGVfZmxvd19k eW5mbGFnX21ldGFkYXRhIg0KPiANCj4gKy8qKg0KPiArICogVGhlIHRpbWVzdGFtcCBkeW5hbWlj IGZpZWxkIHByb3ZpZGVzIHNvbWUgdGltaW5nIGluZm9ybWF0aW9uLCB0aGUNCj4gKyAqIHVuaXRz IGFuZCB0aW1lIHJlZmVyZW5jZXMgKGluaXRpYWwgcGhhc2UpIGFyZSBub3QgZXhwbGljaXRseQ0K PiBkZWZpbmVkDQo+ICsgKiBidXQgYXJlIG1haW50YWluZWQgYWx3YXlzIHRoZSBzYW1lIGZvciBh IGdpdmVuIHBvcnQuIFNvbWUgZGV2aWNlcw0KPiBhbGxvdzQNCj4gKyAqIHRvIHF1ZXJ5IHJ0ZV9l dGhfcmVhZF9jbG9jaygpIHRoYXQgd2lsbCByZXR1cm4gdGhlIGN1cnJlbnQgZGV2aWNlDQo+ICsg KiB0aW1lc3RhbXAuIFRoZSBkeW5hbWljIFR4IHRpbWVzdGFtcCBmbGFnIHRlbGxzIHdoZXRoZXIg dGhlIGZpZWxkDQo+IGNvbnRhaW5zDQo+ICsgKiBhY3R1YWwgdGltZXN0YW1wIHZhbHVlLiBGb3Ig dGhlIHBhY2tldHMgYmVpbmcgc2VudCB0aGlzIHZhbHVlIGNhbg0KPiBiZQ0KPiArICogdXNlZCBi eSBQTUQgdG8gc2NoZWR1bGUgcGFja2V0IHNlbmRpbmcuDQo+ICsgKg0KPiArICogQWZ0ZXIgUEtU X1JYX1RJTUVTVEFNUCBmbGFnIGFuZCBmaXhlZCB0aW1lc3RhbXAgZmllbGQgZGVwcmVjYXRpb24N Cj4gKyAqIGFuZCBvYnNvbGV0aW5nLCB0aGUgZGVkaWNhdGVkIFJ4IHRpbWVzdGFtcCBmbGFnIGlz IHN1cHBvc2VkIHRvIGJlDQo+ICsgKiBpbnRyb2R1Y2VkIGFuZCB0aGUgc2hhcmVkIGR5bmFtaWMg dGltZXN0YW1wIGZpZWxkIHdpbGwgYmUgdXNlZA0KPiArICogdG8gaGFuZGxlIHRoZSB0aW1lc3Rh bXBzIG9uIHJlY2VpdmluZyBkYXRhcGF0aCBhcyB3ZWxsLg0KPiArICovDQo+ICsjZGVmaW5lIFJU RV9NQlVGX0RZTkZJRUxEX1RJTUVTVEFNUF9OQU1FICJydGVfZHluZmllbGRfdGltZXN0YW1wIg0K DQpUaGUgZGVzY3JpcHRpb24gYWJvdmUgc2hvdWxkIG5vdCBzYXkgYW55dGhpbmcgYWJvdXQgdGhl IGR5bmFtaWMgVFggdGltZXN0YW1wIGZsYWcuDQoNClBsZWFzZSBlbGFib3JhdGUgInNvbWUgdGlt aW5nIGluZm9ybWF0aW9uIiwgZS5nLiBhZGQgIi4uLiBhYm91dCB3aGVuIHRoZSBwYWNrZXQgd2Fz IHJlY2VpdmVkIi4NCg0KPiArDQo+ICsvKioNCj4gKyAqIFdoZW4gUE1EIHNlZXMgdGhlIFJURV9N QlVGX0RZTkZMQUdfVFhfVElNRVNUQU1QX05BTUUgZmxhZyBzZXQgb24NCj4gdGhlDQo+ICsgKiBw YWNrZXQgYmVpbmcgc2VudCBpdCB0cmllcyB0byBzeW5jaHJvbml6ZSB0aGUgdGltZSBvZiBwYWNr ZXQNCj4gYXBwZWFyaW5nDQo+ICsgKiBvbiB0aGUgd2lyZSB3aXRoIHRoZSBzcGVjaWZpZWQgcGFj a2V0IHRpbWVzdGFtcC4gSWYgdGhlIHNwZWNpZmllZA0KPiBvbmUNCj4gKyAqIGlzIGluIHRoZSBw YXN0IGl0IHNob3VsZCBiZSBpZ25vcmVkLCBpZiBvbmUgaXMgaW4gdGhlIGRpc3RhbnQNCj4gZnV0 dXJlDQo+ICsgKiBpdCBzaG91bGQgYmUgY2FwcGVkIHdpdGggc29tZSByZWFzb25hYmxlIHZhbHVl IChpbiByYW5nZSBvZg0KPiBzZWNvbmRzKS4NCj4gKyAqDQo+ICsgKiBUaGVyZSBpcyBubyBhbnkg cGFja2V0IHJlb3JkZXJpbmcgYWNjb3JkaW5nIHRvIHRpbWVzdGFtcHMgaXMNCj4gc3VwcG9zZWQs DQo+ICsgKiBuZWl0aGVyIGZvciBwYWNrZXQgd2l0aGluIHRoZSBidXJzdCwgbm9yIGZvciB0aGUg d2hvbGUgYnVyc3RzLCBpdA0KPiBpcw0KPiArICogYW4gZW50aXJlbHkgYXBwbGljYXRpb24gcmVz cG9uc2liaWxpdHkgdG8gZ2VuZXJhdGUgcGFja2V0cyBhbmQgaXRzDQo+ICsgKiB0aW1lc3RhbXBz IGluIGRlc2lyZWQgb3JkZXIuIFRoZSB0aW1lc3RhbXBzIG1pZ2h0IGJlIHB1dCBvbmx5IGluDQo+ ICsgKiB0aGUgZmlyc3QgcGFja2V0IGluIHRoZSBidXJzdCBwcm92aWRpbmcgdGhlIGVudGlyZSBi dXJzdA0KPiBzY2hlZHVsaW5nLg0KPiArICovDQo+ICsjZGVmaW5lIFJURV9NQlVGX0RZTkZMQUdf VFhfVElNRVNUQU1QX05BTUUgInJ0ZV9keW5mbGFnX3R4X3RpbWVzdGFtcCINCj4gKw0KPiAgI2Vu ZGlmDQo+IC0tDQo+IDEuOC4zLjENCj4gDQoNCkl0IG1heSBiZSB3b3J0aCBhZGRpbmcgc29tZSBk b2N1bWVudGF0aW9uIGFib3V0IGhvdyB0aGUgY2xvY2tzIG9mIHRoZSBOSUNzIGFyZSBvdXQgb2Yg c3luYyB3aXRoIHRoZSBjbG9jayBvZiB0aGUgQ1BVLCBhbmQgYXJlIGFsbCBkcmlmdGluZyByZWxh dGl2ZWx5Lg0KDQpBbmQgdGhvc2UgY2xvY2tzIGFyZSBhbHNvIG91dCBvZiBzeW5jIHdpdGggdGhl IGFjdHVhbCB0aW1lIChOVFAgY2xvY2spLg0KDQpQcmVmZXJhYmx5LCBzb21lIHNvcnQgb2YgY29v a2Jvb2sgZm9yIGhhbmRsaW5nIHRoaXMgc2hvdWxkIGJlIHByb3ZpZGVkLiBQQ0FQIGNvdWxkIGJl IHVzZWQgYXMgYW4gZXhhbXBsZS4NCg0KDQo=