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 A6DBBA0527; Wed, 8 Jul 2020 17:27:21 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7A4A31E4C1; Wed, 8 Jul 2020 17:27:21 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id E1B881E4C0 for ; Wed, 8 Jul 2020 17:27:20 +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 17:27:19 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35C6110B@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH v4 1/2] mbuf: introduce accurate packet Txscheduling Thread-Index: AQHWVTJRtpVhbms7BUGtcj8QA0ZT26j9vBYwgAAKtNA= References: <1591771085-24959-1-git-send-email-viacheslavo@mellanox.com> <1594133832-12785-1-git-send-email-viacheslavo@mellanox.com> <98CBD80474FA8B44BF855DF32C47DC35C61109@smartserver.smartshare.dk> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Slava Ovsiienko" , Cc: "Matan Azrad" , "Raslan Darawsheh" , , , 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" PiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIFNs YXZhIE92c2lpZW5rbw0KPiBTZW50OiBXZWRuZXNkYXksIEp1bHkgOCwgMjAyMCA0OjU0IFBNDQo+ IA0KPiBIaSwgTW9ydGVuDQo+IA0KPiBUaGFuayB5b3UgZm9yIHRoZSBjb21tZW50cy4gUGxlYXNl LCBzZWUgYmVsb3cuDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJv bTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPiBTZW50OiBX ZWRuZXNkYXksIEp1bHkgOCwgMjAyMCAxNzoxNg0KPiA+IFRvOiBTbGF2YSBPdnNpaWVua28gPHZp YWNoZXNsYXZvQG1lbGxhbm94LmNvbT47IGRldkBkcGRrLm9yZw0KPiA+IENjOiBNYXRhbiBBenJh ZCA8bWF0YW5AbWVsbGFub3guY29tPjsgUmFzbGFuIERhcmF3c2hlaA0KPiA+IDxyYXNsYW5kQG1l bGxhbm94LmNvbT47IG9saXZpZXIubWF0ekA2d2luZC5jb207DQo+ID4gYmVybmFyZC5pcmVtb25n ZXJAaW50ZWwuY29tOyB0aG9tYXNAbWVsbGFub3gubmV0DQo+ID4gU3ViamVjdDogUkU6IFtkcGRr LWRldl0gW1BBVENIIHY0IDEvMl0gbWJ1ZjogaW50cm9kdWNlIGFjY3VyYXRlDQo+IHBhY2tldA0K PiA+IFR4c2NoZWR1bGluZw0KPiA+DQo+ID4gPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNl c0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIFZpYWNoZXNsYXYNCj4gPiA+IE92c2lpZW5rbw0KPiA+ ID4gU2VudDogVHVlc2RheSwgSnVseSA3LCAyMDIwIDQ6NTcgUE0NCj4gPiA+DQo+ID4gPiBUaGVy ZSBpcyB0aGUgcmVxdWlyZW1lbnQgb24gc29tZSBuZXR3b3JrcyBmb3IgcHJlY2lzZSB0cmFmZmlj DQo+IHRpbWluZw0KPiA+ID4gbWFuYWdlbWVudC4gVGhlIGFiaWxpdHkgdG8gc2VuZCAoYW5kLCBn ZW5lcmFsbHkgc3BlYWtpbmcsIHJlY2VpdmUpDQo+IHRoZQ0KPiA+ID4gcGFja2V0cyBhdCB0aGUg dmVyeSBwcmVjaXNlbHkgc3BlY2lmaWVkIG1vbWVudCBvZiB0aW1lIHByb3ZpZGVzIHRoZQ0KPiA+ ID4gb3Bwb3J0dW5pdHkgdG8gc3VwcG9ydCB0aGUgY29ubmVjdGlvbnMgd2l0aCBUaW1lIERpdmlz aW9uDQo+IE11bHRpcGxleGluZw0KPiA+ID4gdXNpbmcgdGhlIGNvbnRlbXBvcmFyeSBnZW5lcmFs IHB1cnBvc2UgTklDIHdpdGhvdXQgaW52b2x2aW5nIGFuDQo+ID4gPiBhdXhpbGlhcnkgaGFyZHdh cmUuIEZvciBleGFtcGxlLCB0aGUgc3VwcG9ydGluZyBvZiBPLVJBTiBGcm9udGhhdWwNCj4gPiA+ IGludGVyZmFjZSBpcyBvbmUgb2YgdGhlIHByb21pc2luZyBmZWF0dXJlcyBmb3IgcG90ZW50aWFs bHkgdXNhZ2Ugb2YNCj4gPiA+IHRoZSBwcmVjaXNlIHRpbWUgbWFuYWdlbWVudCBmb3IgdGhlIGVn cmVzcyBwYWNrZXRzLg0KPiA+ID4NCj4gPiA+IFRoZSBtYWluIG9iamVjdGl2ZSBvZiB0aGlzIFJG QyBpcyB0byBzcGVjaWZ5IHRoZSB3YXkgaG93DQo+IGFwcGxpY2F0aW9ucw0KPiA+ID4gY2FuIHBy b3ZpZGUgdGhlIG1vbWVudCBvZiB0aW1lIGF0IHdoYXQgdGhlIHBhY2tldCB0cmFuc21pc3Npb24g bXVzdA0KPiBiZQ0KPiA+ID4gc3RhcnRlZCBhbmQgdG8gZGVzY3JpYmUgaW4gcHJlbGltaW5hcnkg dGhlIHN1cHBvcnRpbmcgdGhpcyBmZWF0dXJlDQo+ID4gPiBmcm9tDQo+ID4gPiBtbHg1IFBNRCBz aWRlLg0KPiA+ID4NCj4gPiA+IFRoZSBuZXcgZHluYW1pYyB0aW1lc3RhbXAgZmllbGQgaXMgcHJv cG9zZWQsIGl0IHByb3ZpZGVzIHNvbWUNCj4gdGltaW5nDQo+ID4gPiBpbmZvcm1hdGlvbiwgdGhl IHVuaXRzIGFuZCB0aW1lIHJlZmVyZW5jZXMgKGluaXRpYWwgcGhhc2UpIGFyZSBub3QNCj4gPiA+ IGV4cGxpY2l0bHkgZGVmaW5lZCBidXQgYXJlIG1haW50YWluZWQgYWx3YXlzIHRoZSBzYW1lIGZv ciBhIGdpdmVuDQo+IHBvcnQuDQo+ID4gPiBTb21lIGRldmljZXMgYWxsb3cgdG8gcXVlcnkgcnRl X2V0aF9yZWFkX2Nsb2NrKCkgdGhhdCB3aWxsIHJldHVybg0KPiB0aGUNCj4gPiA+IGN1cnJlbnQg ZGV2aWNlIHRpbWVzdGFtcC4gVGhlIGR5bmFtaWMgdGltZXN0YW1wIGZsYWcgdGVsbHMgd2hldGhl cg0KPiB0aGUNCj4gPiA+IGZpZWxkIGNvbnRhaW5zIGFjdHVhbCB0aW1lc3RhbXAgdmFsdWUuIEZv ciB0aGUgcGFja2V0cyBiZWluZyBzZW50DQo+IHRoaXMNCj4gPiA+IHZhbHVlIGNhbiBiZSB1c2Vk IGJ5IFBNRCB0byBzY2hlZHVsZSBwYWNrZXQgc2VuZGluZy4NCj4gPiA+DQo+ID4gPiBBZnRlciBQ S1RfUlhfVElNRVNUQU1QIGZsYWcgYW5kIGZpeGVkIHRpbWVzdGFtcCBmaWVsZCBkZXByZWNhdGlv bg0KPiBhbmQNCj4gPiA+IG9ic29sZXRpbmcsIHRoZXNlIGR5bmFtaWMgZmxhZyBhbmQgZmllbGQg d2lsbCBiZSB1c2VkIHRvIG1hbmFnZSB0aGUNCj4gPiA+IHRpbWVzdGFtcHMgb24gcmVjZWl2aW5n IGRhdGFwYXRoIGFzIHdlbGwuDQo+ID4gPg0KPiA+ID4gV2hlbiBQTUQgc2VlcyB0aGUgInJ0ZV9k eW5maWVsZF90aW1lc3RhbXAiIHNldCBvbiB0aGUgcGFja2V0IGJlaW5nDQo+ID4gPiBzZW50IGl0 IHRyaWVzIHRvIHN5bmNocm9uaXplIHRoZSB0aW1lIG9mIHBhY2tldCBhcHBlYXJpbmcgb24gdGhl DQo+IHdpcmUNCj4gPiA+IHdpdGggdGhlIHNwZWNpZmllZCBwYWNrZXQgdGltZXN0YW1wLiBJZiB0 aGUgc3BlY2lmaWVkIG9uZSBpcyBpbiB0aGUNCj4gPiA+IHBhc3QgaXQgc2hvdWxkIGJlIGlnbm9y ZWQsIGlmIG9uZSBpcyBpbiB0aGUgZGlzdGFudCBmdXR1cmUgaXQNCj4gc2hvdWxkDQo+ID4gPiBi ZSBjYXBwZWQgd2l0aCBzb21lIHJlYXNvbmFibGUgdmFsdWUgKGluIHJhbmdlIG9mIHNlY29uZHMp LiBUaGVzZQ0KPiA+ID4gc3BlY2lmaWMgY2FzZXMgKCJ0b28gbGF0ZSIgYW5kICJkaXN0YW50IGZ1 dHVyZSIpIGNhbiBiZSBvcHRpb25hbGx5DQo+ID4gPiByZXBvcnRlZCB2aWEgZGV2aWNlIHhzdGF0 cyB0byBhc3Npc3QgYXBwbGljYXRpb25zIHRvIGRldGVjdCB0aGUNCj4gPiA+IHRpbWUtcmVsYXRl ZCBwcm9ibGVtcy4NCj4gPiA+DQo+ID4gPiBUaGVyZSBpcyBubyBhbnkgcGFja2V0IHJlb3JkZXJp bmcgYWNjb3JkaW5nIHRpbWVzdGFtcHMgaXMgc3VwcG9zZWQsDQo+ID4gPiBuZWl0aGVyIHdpdGhp biBwYWNrZXQgYnVyc3QsIG5vciBiZXR3ZWVuIHBhY2tldHMsIGl0IGlzIGFuIGVudGlyZWx5DQo+ ID4gPiBhcHBsaWNhdGlvbiByZXNwb25zaWJpbGl0eSB0byBnZW5lcmF0ZSBwYWNrZXRzIGFuZCBp dHMgdGltZXN0YW1wcw0KPiBpbg0KPiA+ID4gZGVzaXJlZCBvcmRlci4gVGhlIHRpbWVzdGFtcHMg Y2FuIGJlIHB1dCBvbmx5IGluIHRoZSBmaXJzdCBwYWNrZXQNCj4gaW4NCj4gPiA+IHRoZSBidXJz dCBwcm92aWRpbmcgdGhlIGVudGlyZSBidXJzdCBzY2hlZHVsaW5nLg0KPiA+ID4NCj4gPiA+IFBN RCByZXBvcnRzIHRoZSBhYmlsaXR5IHRvIHN5bmNocm9uaXplIHBhY2tldCBzZW5kaW5nIG9uIHRp bWVzdGFtcA0KPiA+ID4gd2l0aCBuZXcgb2ZmbG9hZCBmbGFnOg0KPiA+ID4NCj4gPiA+IFRoaXMg aXMgcGFsbGlhdGl2ZSBhbmQgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBuZXcgZXRoX2Rl diBBUEkNCj4gPiA+IGFib3V0IHJlcG9ydGluZy9tYW5hZ2luZyB0aGUgc3VwcG9ydGVkIGR5bmFt aWMgZmxhZ3MgYW5kIGl0cw0KPiByZWxhdGVkDQo+ID4gPiBmZWF0dXJlcy4gVGhpcyBBUEkgd291 bGQgYnJlYWsgQUJJIGNvbXBhdGliaWxpdHkgYW5kIGNhbid0IGJlDQo+ID4gPiBpbnRyb2R1Y2Vk IGF0IHRoZSBtb21lbnQsIHNvIGlzIHBvc3Rwb25lZCB0byAyMC4xMS4NCj4gPiA+DQo+ID4gPiBG b3IgdGVzdGluZyBwdXJwb3NlcyBpdCBpcyBwcm9wb3NlZCB0byB1cGRhdGUgdGVzdHBtZCAidHhv bmx5Ig0KPiA+ID4gZm9yd2FyZGluZyBtb2RlIHJvdXRpbmUuIFdpdGggdGhpcyB1cGRhdGUgdGVz dHBtZCBhcHBsaWNhdGlvbg0KPiA+ID4gZ2VuZXJhdGVzIHRoZSBwYWNrZXRzIGFuZCBzZXRzIHRo ZSBkeW5hbWljIHRpbWVzdGFtcHMgYWNjb3JkaW5nIHRvDQo+ID4gPiBzcGVjaWZpZWQgdGltZSBw YXR0ZXJuIGlmIGl0IHNlZXMgdGhlICJydGVfZHluZmllbGRfdGltZXN0YW1wIiBpcw0KPiByZWdp c3RlcmVkLg0KPiA+ID4NCj4gPiA+IFRoZSBuZXcgdGVzdHBtZCBjb21tYW5kIGlzIHByb3Bvc2Vk IHRvIGNvbmZpZ3VyZSBzZW5kaW5nIHBhdHRlcm46DQo+ID4gPg0KPiA+ID4gc2V0IHR4X3RpbWVz IDxidXJzdF9nYXA+LDxpbnRyYV9nYXA+DQo+ID4gPg0KPiA+ID4gPGludHJhX2dhcD4gLSB0aGUg ZGVsYXkgYmV0d2VlbiB0aGUgcGFja2V0cyB3aXRoaW4gdGhlIGJ1cnN0DQo+ID4gPiAgICAgICAg ICAgICAgIHNwZWNpZmllZCBpbiB0aGUgZGV2aWNlIGNsb2NrIHVuaXRzLiBUaGUgbnVtYmVyDQo+ ID4gPiAgICAgICAgICAgICAgIG9mIHBhY2tldHMgaW4gdGhlIGJ1cnN0IGlzIGRlZmluZWQgYnkg dHhidXJzdA0KPiBwYXJhbWV0ZXINCj4gPiA+DQo+ID4gPiA8YnVyc3RfZ2FwPiAtIHRoZSBkZWxh eSBiZXR3ZWVuIHRoZSBidXJzdHMgaW4gdGhlIGRldmljZSBjbG9jaw0KPiB1bml0cw0KPiA+ID4N Cj4gPiA+IEFzIHRoZSByZXN1bHQgdGhlIGJ1cnN0cyBvZiBwYWNrZXQgd2lsbCBiZSB0cmFuc21p dHRlZCB3aXRoDQo+IHNwZWNpZmljDQo+ID4gPiBkZWxheXMgYmV0d2VlbiB0aGUgcGFja2V0cyB3 aXRoaW4gdGhlIGJ1cnN0IGFuZCBzcGVjaWZpYyBkZWxheQ0KPiBiZXR3ZWVuDQo+ID4gPiB0aGUg YnVyc3RzLiBUaGUgcnRlX2V0aF9nZXRfY2xvY2sgaXMgc3VwcG9zZWQgdG8gYmUgZW5nYWdlZCB0 byBnZXQNCj4gdGhlDQo+ID4gPiBjdXJyZW50IGRldmljZSBjbG9jayB2YWx1ZSBhbmQgcHJvdmlk ZSB0aGUgcmVmZXJlbmNlIGZvciB0aGUNCj4gPiA+IHRpbWVzdGFtcHMuDQo+ID4gPg0KPiA+ID4g U2lnbmVkLW9mZi1ieTogVmlhY2hlc2xhdiBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG1lbGxhbm94 LmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIHYxLT52NDoNCj4gPiA+ICAgICAtIGRlZGljYXRlZCBk eW5hbWljIFR4IHRpbWVzdGFtcCBmbGFnIGluc3RlYWQgb2Ygc2hhcmVkIHdpdGggUngNCj4gPg0K PiA+IFRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBhYm92ZSBzaG91bGQgYmUgdXBkYXRlZCB0byBy ZWZsZWN0IHRoYXQgaXQNCj4gaXMgbm93DQo+ID4gdHdvIGZsYWdzLg0KPiBPSw0KPiANCj4gPg0K PiA+ID4gICAgIC0gRG94eWdlbi1zdHlsZSBjb21tZW50DQo+ID4gPiAgICAgLSBjb21tZW50cyB1 cGRhdGUNCj4gPiA+DQo+ID4gPiAtLS0NCj4gPiA+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZXRo ZGV2LmMgfCAgMSArDQo+IGxpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuaA0KPiA+ID4gfCAg NCArKysrICBsaWIvbGlicnRlX21idWYvcnRlX21idWZfZHluLmggfCAzMQ0KPiA+ID4gKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMzYgaW5z ZXJ0aW9ucygrKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9y dGVfZXRoZGV2LmMNCj4gPiA+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5jIGluZGV4 IDhlMTBhNmYuLjAyMTU3ZDUgMTAwNjQ0DQo+ID4gPiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9y dGVfZXRoZGV2LmMNCj4gPiA+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0K PiA+ID4gQEAgLTE2Miw2ICsxNjIsNyBAQCBzdHJ1Y3QgcnRlX2V0aF94c3RhdHNfbmFtZV9vZmYg ew0KPiA+ID4gIAlSVEVfVFhfT0ZGTE9BRF9CSVQyU1RSKFVEUF9UTkxfVFNPKSwNCj4gPiA+ICAJ UlRFX1RYX09GRkxPQURfQklUMlNUUihJUF9UTkxfVFNPKSwNCj4gPiA+ICAJUlRFX1RYX09GRkxP QURfQklUMlNUUihPVVRFUl9VRFBfQ0tTVU0pLA0KPiA+ID4gKwlSVEVfVFhfT0ZGTE9BRF9CSVQy U1RSKFNFTkRfT05fVElNRVNUQU1QKSwNCj4gPiA+ICB9Ow0KPiA+ID4NCj4gPiA+ICAjdW5kZWYg UlRFX1RYX09GRkxPQURfQklUMlNUUg0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRo ZGV2L3J0ZV9ldGhkZXYuaA0KPiA+ID4gYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2Lmgg aW5kZXggYTQ5MjQyYi4uNmY2NDU0YyAxMDA2NDQNCj4gPiA+IC0tLSBhL2xpYi9saWJydGVfZXRo ZGV2L3J0ZV9ldGhkZXYuaA0KPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRl di5oDQo+ID4gPiBAQCAtMTE3OCw2ICsxMTc4LDEwIEBAIHN0cnVjdCBydGVfZXRoX2NvbmYgew0K PiA+ID4gIC8qKiBEZXZpY2Ugc3VwcG9ydHMgb3V0ZXIgVURQIGNoZWNrc3VtICovICAjZGVmaW5l DQo+ID4gPiBERVZfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gIDB4MDAxMDAwMDANCj4gPiA+ DQo+ID4gPiArLyoqIERldmljZSBzdXBwb3J0cyBzZW5kIG9uIHRpbWVzdGFtcCAqLyAjZGVmaW5l DQo+ID4gPiArREVWX1RYX09GRkxPQURfU0VORF9PTl9USU1FU1RBTVAgMHgwMDIwMDAwMA0KPiA+ ID4gKw0KPiA+ID4gKw0KPiA+ID4gICNkZWZpbmUgUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1JY X1FVRVVFX1NFVFVQIDB4MDAwMDAwMDENCj4gPiAvKio8DQo+ID4gPiBEZXZpY2Ugc3VwcG9ydHMg UnggcXVldWUgc2V0dXAgYWZ0ZXIgZGV2aWNlIHN0YXJ0ZWQqLyAgI2RlZmluZQ0KPiA+ID4gUlRF X0VUSF9ERVZfQ0FQQV9SVU5USU1FX1RYX1FVRVVFX1NFVFVQIDB4MDAwMDAwMDIgZGlmZiAtLWdp dA0KPiA+ID4gYS9saWIvbGlicnRlX21idWYvcnRlX21idWZfZHluLmggYi9saWIvbGlicnRlX21i dWYvcnRlX21idWZfZHluLmgNCj4gPiA+IGluZGV4IDk2YzM2MzEuLjdlOWY3ZDIgMTAwNjQ0DQo+ ID4gPiAtLS0gYS9saWIvbGlicnRlX21idWYvcnRlX21idWZfZHluLmgNCj4gPiA+ICsrKyBiL2xp Yi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zl9keW4uaA0KPiA+ID4gQEAgLTI1MCw0ICsyNTAsMzUgQEAg aW50IHJ0ZV9tYnVmX2R5bmZsYWdfbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4gPiAjZGVm aW5lIFJURV9NQlVGX0RZTkZJRUxEX01FVEFEQVRBX05BTUUNCj4gPiAicnRlX2Zsb3dfZHluZmll bGRfbWV0YWRhdGEiDQo+ID4gPiAgI2RlZmluZSBSVEVfTUJVRl9EWU5GTEFHX01FVEFEQVRBX05B TUUNCj4gPiAicnRlX2Zsb3dfZHluZmxhZ19tZXRhZGF0YSINCj4gPiA+DQo+ID4gPiArLyoqDQo+ ID4gPiArICogVGhlIHRpbWVzdGFtcCBkeW5hbWljIGZpZWxkIHByb3ZpZGVzIHNvbWUgdGltaW5n IGluZm9ybWF0aW9uLA0KPiB0aGUNCj4gPiA+ICsgKiB1bml0cyBhbmQgdGltZSByZWZlcmVuY2Vz IChpbml0aWFsIHBoYXNlKSBhcmUgbm90IGV4cGxpY2l0bHkNCj4gPiA+IGRlZmluZWQNCj4gPiA+ ICsgKiBidXQgYXJlIG1haW50YWluZWQgYWx3YXlzIHRoZSBzYW1lIGZvciBhIGdpdmVuIHBvcnQu IFNvbWUNCj4gZGV2aWNlcw0KPiA+ID4gYWxsb3c0DQo+ID4gPiArICogdG8gcXVlcnkgcnRlX2V0 aF9yZWFkX2Nsb2NrKCkgdGhhdCB3aWxsIHJldHVybiB0aGUgY3VycmVudA0KPiBkZXZpY2UNCj4g PiA+ICsgKiB0aW1lc3RhbXAuIFRoZSBkeW5hbWljIFR4IHRpbWVzdGFtcCBmbGFnIHRlbGxzIHdo ZXRoZXIgdGhlDQo+IGZpZWxkDQo+ID4gPiBjb250YWlucw0KPiA+ID4gKyAqIGFjdHVhbCB0aW1l c3RhbXAgdmFsdWUuIEZvciB0aGUgcGFja2V0cyBiZWluZyBzZW50IHRoaXMgdmFsdWUNCj4gY2Fu DQo+ID4gPiBiZQ0KPiA+ID4gKyAqIHVzZWQgYnkgUE1EIHRvIHNjaGVkdWxlIHBhY2tldCBzZW5k aW5nLg0KPiA+ID4gKyAqDQo+ID4gPiArICogQWZ0ZXIgUEtUX1JYX1RJTUVTVEFNUCBmbGFnIGFu ZCBmaXhlZCB0aW1lc3RhbXAgZmllbGQNCj4gZGVwcmVjYXRpb24NCj4gPiA+ICsgKiBhbmQgb2Jz b2xldGluZywgdGhlIGRlZGljYXRlZCBSeCB0aW1lc3RhbXAgZmxhZyBpcyBzdXBwb3NlZCB0bw0K PiBiZQ0KPiA+ID4gKyAqIGludHJvZHVjZWQgYW5kIHRoZSBzaGFyZWQgZHluYW1pYyB0aW1lc3Rh bXAgZmllbGQgd2lsbCBiZSB1c2VkDQo+ID4gPiArICogdG8gaGFuZGxlIHRoZSB0aW1lc3RhbXBz IG9uIHJlY2VpdmluZyBkYXRhcGF0aCBhcyB3ZWxsLg0KPiA+ID4gKyAqLw0KPiA+ID4gKyNkZWZp bmUgUlRFX01CVUZfRFlORklFTERfVElNRVNUQU1QX05BTUUNCj4gPiAicnRlX2R5bmZpZWxkX3Rp bWVzdGFtcCINCj4gPg0KPiA+IFRoZSBkZXNjcmlwdGlvbiBhYm92ZSBzaG91bGQgbm90IHNheSBh bnl0aGluZyBhYm91dCB0aGUgZHluYW1pYyBUWA0KPiA+IHRpbWVzdGFtcCBmbGFnLg0KPiBJdCBk b2VzIG5vdC4gT3IgZG8geW91IG1lYW4gUlg/DQo+IE5vdCBzdXJlLCBmaWVsZCBhbmQgZmxhZyBh cmUgdGlnaHRseSBjb3VwbGVkLA0KPiBpdCBpcyBuaWNlIHRvIG1lbnRpb24gdGhpcyByZWxhdGlv biBmb3IgYmV0dGVyIHVuZGVyc3RhbmRpbmcuDQo+IEFuZCBtZW50aW9uaW5nIHRoZSBSWCBleHBs YWlucyB3aHkgaXQgaXMgbm90IGxpa2UgdGhpczoNCj4gUlRFX01CVUZfRFlORklFTERfW1RYXV9U SU1FU1RBTVBfTkFNRQ0KDQpTb3JyeS4gSSBtaXN1bmRlcnN0b29kIGl0cyBwdXJwb3NlIQ0KSXQn cyB0aGUgbmFtZSBvZiB0aGUgZmllbGQsIGFuZCB0aGUgZmllbGQgd2lsbCBub3Qgb25seSBiZSB1 c2VkIGZvciBSWCwgYnV0IGluIHRoZSBmdXR1cmUgYWxzbyBmb3IgUlguDQooSSB0aG91Z2h0IGl0 IHdhcyB0aGUgbmFtZSBvZiB0aGUgUlggZmxhZywgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuKQ0K DQo+IA0KPiA+DQo+ID4gUGxlYXNlIGVsYWJvcmF0ZSAic29tZSB0aW1pbmcgaW5mb3JtYXRpb24i LCBlLmcuIGFkZCAiLi4uIGFib3V0IHdoZW4NCj4gdGhlDQo+ID4gcGFja2V0IHdhcyByZWNlaXZl ZCIuDQo+IA0KPiBTb3JyeSwgSSBkbyBub3QgZm9sbG93LCAgY3VycmVudGx5IHRoZSBkeW5hbWlj IGZpZWxkIGlzIG5vdA0KPiAiYWJvdXQgd2hlbiB0aGUgcGFja2V0IHdhcyByZWNlaXZlZCIuIE5v dyBpdCBpcyBpbnRyb2R1Y2VkIGZvciBUeA0KPiBvbmx5IGFuZCBqdXN0IHRoZSBvcHBvcnR1bml0 eSB0byBiZSBzaGFyZWQgd2l0aCBSeCBvbmUgaW4gY29taW5nDQo+IHJlbGVhc2VzDQo+IGlzIG1l bnRpb25lZC4gIlNvbWUiIG1lYW5zIC0gbm90IHNwZWNpZmllZCAoaGVyZWluKSBleGFjdGx5Lg0K PiBBbmQgaXQgaXMgZWxhYm9yYXRlZCB3aGF0IElzIG5vdCBzcGVjaWZpZWQgYW5kIGhvdyBpdCBp cyBzdXBwb3NlZA0KPiB0byB1c2UgVHggdGltZXN0YW1wLg0KDQpJdCBzaG91bGQgYmUgZGVzY3Jp YmVkIHdoZW4gaXQgaXMgdmFsaWQsIGFuZCBob3cgaXQgaXMgYmVpbmcgdXNlZCwgZS5nLiBieSBh ZGRpbmcgYSByZWZlcmVuY2UgdG8gdGhlICJydGVfZHluZmxhZ190eF90aW1lc3RhbXAiIGZsYWcu DQoNCj4gPg0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAqIFdoZW4gUE1EIHNlZXMgdGhl IFJURV9NQlVGX0RZTkZMQUdfVFhfVElNRVNUQU1QX05BTUUgZmxhZw0KPiA+IHNldCBvbg0KPiA+ ID4gdGhlDQo+ID4gPiArICogcGFja2V0IGJlaW5nIHNlbnQgaXQgdHJpZXMgdG8gc3luY2hyb25p emUgdGhlIHRpbWUgb2YgcGFja2V0DQo+ID4gPiBhcHBlYXJpbmcNCj4gPiA+ICsgKiBvbiB0aGUg d2lyZSB3aXRoIHRoZSBzcGVjaWZpZWQgcGFja2V0IHRpbWVzdGFtcC4gSWYgdGhlDQo+IHNwZWNp ZmllZA0KPiA+ID4gb25lDQo+ID4gPiArICogaXMgaW4gdGhlIHBhc3QgaXQgc2hvdWxkIGJlIGln bm9yZWQsIGlmIG9uZSBpcyBpbiB0aGUgZGlzdGFudA0KPiA+ID4gZnV0dXJlDQo+ID4gPiArICog aXQgc2hvdWxkIGJlIGNhcHBlZCB3aXRoIHNvbWUgcmVhc29uYWJsZSB2YWx1ZSAoaW4gcmFuZ2Ug b2YNCj4gPiA+IHNlY29uZHMpLg0KPiA+ID4gKyAqDQo+ID4gPiArICogVGhlcmUgaXMgbm8gYW55 IHBhY2tldCByZW9yZGVyaW5nIGFjY29yZGluZyB0byB0aW1lc3RhbXBzIGlzDQo+ID4gPiBzdXBw b3NlZCwNCj4gPiA+ICsgKiBuZWl0aGVyIGZvciBwYWNrZXQgd2l0aGluIHRoZSBidXJzdCwgbm9y IGZvciB0aGUgd2hvbGUgYnVyc3RzLA0KPiBpdA0KPiA+ID4gaXMNCj4gPiA+ICsgKiBhbiBlbnRp cmVseSBhcHBsaWNhdGlvbiByZXNwb25zaWJpbGl0eSB0byBnZW5lcmF0ZSBwYWNrZXRzIGFuZA0K PiBpdHMNCj4gPiA+ICsgKiB0aW1lc3RhbXBzIGluIGRlc2lyZWQgb3JkZXIuIFRoZSB0aW1lc3Rh bXBzIG1pZ2h0IGJlIHB1dCBvbmx5DQo+IGluDQo+ID4gPiArICogdGhlIGZpcnN0IHBhY2tldCBp biB0aGUgYnVyc3QgcHJvdmlkaW5nIHRoZSBlbnRpcmUgYnVyc3QNCj4gPiA+IHNjaGVkdWxpbmcu DQo+ID4gPiArICovDQo+ID4gPiArI2RlZmluZSBSVEVfTUJVRl9EWU5GTEFHX1RYX1RJTUVTVEFN UF9OQU1FDQo+ID4gInJ0ZV9keW5mbGFnX3R4X3RpbWVzdGFtcCINCj4gPiA+ICsNCj4gPiA+ICAj ZW5kaWYNCj4gPiA+IC0tDQo+ID4gPiAxLjguMy4xDQo+ID4gPg0KPiA+DQo+ID4gSXQgbWF5IGJl IHdvcnRoIGFkZGluZyBzb21lIGRvY3VtZW50YXRpb24gYWJvdXQgaG93IHRoZSBjbG9ja3Mgb2Yg dGhlDQo+ID4gTklDcyBhcmUgb3V0IG9mIHN5bmMgd2l0aCB0aGUgY2xvY2sgb2YgdGhlIENQVSwg YW5kIGFyZSBhbGwgZHJpZnRpbmcNCj4gcmVsYXRpdmVseS4NCj4gPg0KPiA+IEFuZCB0aG9zZSBj bG9ja3MgYXJlIGFsc28gb3V0IG9mIHN5bmMgd2l0aCB0aGUgYWN0dWFsIHRpbWUgKE5UUA0KPiBj bG9jaykuDQo+IA0KPiBJTU8sIEl0IGlzIG91dCBvZiBzY29wZSBvZiB0aGlzIHZlcnkgZ2VuZXJp YyBwYXRjaC4gIEFzIGZvciBtbHggTklDcyAtDQo+IHRoZSBpbnRlcm5hbCBkZXZpY2UNCj4gY2xv Y2sgbWlnaHQgYmUgKG9yIG1pZ2h0IGJlIG5vdCkgc3luY2hyb25pemVkIHdpdGggUFRQLCBpdCBj YW4gcHJvdmlkZQ0KPiB0aW1lc3RhbXBzDQo+IGluIHJlYWwgbmFub3NlY29uZHMgaW4gdmFyaW91 cyBmb3JtYXRzIG9yIGp1c3Qgc29tZSBmcmVlIHJ1bm5pbmcNCj4gY291bnRlci4NCg0KQ29vbCEN Cg0KPiBPbiBzb21lIHN5c3RlbXMgdGhlIE5JQyBhbmQgQ1BVIG1pZ2h0IHNoYXJlIHRoZSBzYW1l IGNsb2NrIHNvdXJjZSAoZm9yDQo+IHRoZWlyIFBMTCBpbnB1dHMNCj4gZm9yIGV4YW1wbGUpIGFu ZCB0aGVyZSB3aWxsIGJlIG5vIGFueSBkcmlmdHMuIEFzIHdlIGNhbiBzZWUgLSBpdCBpcyBhDQo+ IHdpZGUgYW5kIGludGVyZXN0aW5nDQo+IG9waWMgdG8gZGlzY3VzcywgYnV0LCBJTU8sICB0aGUg Y29tbWVudCBpbiBoZWFkZXIgZmlsZSBtaWdodCBiZSBub3QgdGhlDQo+IG1vc3QgcmVsZXZhbnQN Cj4gcGxhY2UgdG8gZG8uIEFzIGZvciBtbHg1IGRldmljZXMgY2xvY2sgc3BlY2lmaWNzIC0gaXQg d2lsbCBiZQ0KPiBkb2N1bWVudGVkIGluIFBNRCBjaGFwdGVyLg0KPiANCj4gT0ssIHdpbGwgYWRk IGZldyBnZW5lcmljIHdvcmRzLCB0aGUgZmV3IG9uZXMgLSBpbiBvcmRlciBub3QgdG8gbWFrZQ0K PiBjb21tZW50IHdvcmR5LCBqdXN0DQo+IHBvaW50IHRoZSBkaXJlY3Rpb24gZm9yIGZ1cnRoZXIg dGhpbmtpbmcuDQoNCkkgYWdyZWUgLSB3ZSBkb24ndCB3YW50IGNvb2tib29rcyBpbiB0aGUgaGVh ZGVyIGZpbGVzLiBPbmx5IGVub3VnaCBkZXNjcmlwdGlvbiB0byBhdm9pZCB0aGUgd29yc3QgbWlz dW5kZXJzdGFuZGluZ3MuDQoNCj4gDQo+ID4NCj4gPiBQcmVmZXJhYmx5LCBzb21lIHNvcnQgb2Yg Y29va2Jvb2sgZm9yIGhhbmRsaW5nIHRoaXMgc2hvdWxkIGJlDQo+IHByb3ZpZGVkLg0KPiA+IFBD QVAgY291bGQgYmUgdXNlZCBhcyBhbiBleGFtcGxlLg0KPiA+DQo+IHRlc3RwbWQgZXhhbXBsZSBp cyBpbmNsdWRlZCBpbiBzZXJpZXMsIG1seDUgUE1EIHBhdGNoIGlzIHByZXBhcmVkIGFuZA0KPiBj b21pbmcgc29vbi4NCg0KR3JlYXQuDQoNCkFuZCBJIHN1cHBvc2UgdGhhdCB0aGUgbW9yZSBkZXRh aWxlZCBjb29rYm9vay9leGFtcGxlIC0gcmVnYXJkaW5nIG9mZnNldCBhbmQgZHJpZnQgb2YgdmFy aW91cyBjbG9ja3MgLSBpcyBwcm9iYWJseSBtb3JlIHJlbGV2YW50IGZvciB0aGUgUlggc2lkZSAo Zm9yIHZhcmlvdXMgUENBUCBhcHBsaWNhdGlvbnMpLCBhbmQgdGh1cyBjb21wbGV0ZWx5IHVucmVs YXRlZCB0byB0aGlzIHBhdGNoLg0KDQo+IA0KPiBXaXRoIGJlc3QgcmVnYXJkcywgU2xhdmENCg0K