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 7AA9441D9E; Tue, 28 Feb 2023 17:01:20 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5B35540EE6; Tue, 28 Feb 2023 17:01:20 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id E1B1B4021F for ; Tue, 28 Feb 2023 17:01:18 +0100 (CET) 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: [RFC 0/2] Add high-performance timer facility Date: Tue, 28 Feb 2023 17:01:16 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87797@smartserver.smartshare.dk> In-Reply-To: <20230228093916.87206-1-mattias.ronnblom@ericsson.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [RFC 0/2] Add high-performance timer facility Thread-Index: AdlLWVhWU8DzclA8QU2Sz/PgBUnpYgAJtAKQ References: <20230228093916.87206-1-mattias.ronnblom@ericsson.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , Cc: "Erik Gabriel Carrillo" , "David Marchand" , , "Stefan Sundkvist" 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 b24uY29tXQ0KPiBTZW50OiBUdWVzZGF5LCAyOCBGZWJydWFyeSAyMDIzIDEwLjM5DQoNCkkgaGF2 ZSBiZWVuIGxvb2tpbmcgZm9yIGEgaGlnaCBwZXJmb3JtYW5jZSB0aW1lciBsaWJyYXJ5IChmb3Ig dXNlIGluIGEgZmFzdCBwYXRoIFRDUCBzdGFjayksIGFuZCB0aGlzIGxvb2tzIHZlcnkgdXNlZnVs LCBNYXR0aWFzLg0KDQpNeSBpbml0aWFsIGZlZWRiYWNrIGlzIGJhc2VkIG9uIHF1aWNrbHkgc2tp bW1pbmcgdGhlIHBhdGNoIHNvdXJjZSBjb2RlLCBhbmQgcmVhZGluZyB0aGlzIGNvdmVyIGxldHRl ci4NCg0KPiANCj4gVGhpcyBwYXRjaHNldCBpcyBhbiBhdHRlbXB0IHRvIGludHJvZHVjZSBhIGhp Z2gtcGVyZm9ybWFuY2UsIGhpZ2hseQ0KPiBzY2FsYWJsZSB0aW1lciBmYWNpbGl0eSBpbnRvIERQ REsuDQo+IA0KPiBNb3JlIHNwZWNpZmljYWxseSwgdGhlIGdvYWxzIGZvciB0aGUgaHRpbWVyIGxp YnJhcnkgYXJlOg0KPiANCj4gKiBFZmZpY2llbnQgaGFuZGxpbmcgb2YgYSBoYW5kZnVsIHVwIHRv IGh1bmRyZWRzIG9mIHRob3VzYW5kcyBvZg0KPiAgIGNvbmN1cnJlbnQgdGltZXJzLg0KPiAqIFJl ZHVjZWQgb3ZlcmhlYWQgb2YgYWRkaW5nIGFuZCBjYW5jZWxpbmcgdGltZXJzLg0KPiAqIFByb3Zp ZGUgYSBzZXJ2aWNlIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIHRoYXQgb2YNCj4gICA8cnRl X3RpbWVyLmg+LiBBUEkvQUJJIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXMgc2Vjb25kYXJ5Lg0K PiANCj4gSW4gdGhlIGF1dGhvcidzIG9waW5pb24sIHRoZXJlIGFyZSB0d28gbWFpbiBzaG9ydGNv bWluZ3Mgd2l0aCB0aGUNCj4gY3VycmVudCBEUERLIHRpbWVyIGxpYnJhcnkgKGkuZS4sIHJ0ZV90 aW1lci5bY2hdKS4NCj4gDQo+IE9uZSBpcyB0aGUgc3luY2hyb25pemF0aW9uIG92ZXJoZWFkLCB3 aGVyZSBoZWF2eS13ZWlnaHQgZnVsbC1iYXJyaWVyDQo+IHR5cGUgc3luY2hyb25pemF0aW9uIGlz IHVzZWQuIHJ0ZV90aW1lci5jIHVzZXMgcGVyLUVBTC9sY29yZSBza2lwDQo+IGxpc3RzLCBidXQg YW55IHRocmVhZCBtYXkgYWRkIG9yIGNhbmNlbCAob3Igb3RoZXJ3aXNlIGFjY2VzcykgdGltZXJz DQo+IG1hbmFnZWQgYnkgYW5vdGhlciBsY29yZSAoYW5kIHRodXMgcmVzaWRlcyBpbiBpdHMgdGlt ZXIgc2tpcCBsaXN0KS4NCj4gDQo+IFRoZSBvdGhlciBpcyBhbiBhbGdvcml0aG1pYyBzaG9ydGNv bWluZywgd2l0aCBydGVfdGltZXIuYydzIHJlbGlhbmNlDQo+IG9uIGEgc2tpcCBsaXN0LCB3aGlj aCwgc2VlbWluZ2x5LCBpcyBsZXNzIGVmZmljaWVudCB0aGFuIGNlcnRhaW4NCj4gYWx0ZXJuYXRp dmVzLg0KPiANCj4gVGhpcyBwYXRjaHNldCBpbXBsZW1lbnRzIGEgaGllcmFyY2hpY2FsIHRpbWVy IHdoZWVsIChIV1QsIGluDQoNClR5cG86IEhXVCBvciBIVFc/DQoNCj4gcnRlX2h0dy5jKSwgYXMg cGVyIHRoZSBWYXJnaGVzZSBhbmQgTGF1Y2sgcGFwZXIgIkhhc2hlZCBhbmQNCj4gSGllcmFyY2hp Y2FsIFRpbWluZyBXaGVlbHM6IERhdGEgU3RydWN0dXJlcyBmb3IgdGhlIEVmZmljaWVudA0KPiBJ bXBsZW1lbnRhdGlvbiBvZiBhIFRpbWVyIEZhY2lsaXR5Ii4gQSBIV1QgaXMgYSBkYXRhIHN0cnVj dHVyZQ0KPiBwdXJwb3NlbHkgZGVzaWduIGZvciB0aGlzIHRhc2ssIGFuZCB1c2VkIGJ5IG1hbnkg b3BlcmF0aW5nIHN5c3RlbQ0KPiBrZXJuZWwgdGltZXIgZmFjaWxpdGllcy4NCj4gDQo+IFRvIGZ1 cnRoZXIgaW1wcm92ZSB0aGUgc29sdXRpb24gZGVzY3JpYmVkIGJ5IFZhcmdoZXNlIGFuZCBMYXVj aywgYQ0KPiBiaXRzZXQgaXMgcGxhY2VkIGluIGZyb250IG9mIGVhY2ggb2YgdGhlIHRpbWVyIHdo ZWVsIGluIHRoZSBIV1QsDQo+IHJlZHVjaW5nIG92ZXJoZWFkIG9mIHJ0ZV9odGltZXJfbWdyX21h bmFnZSgpIChpLmUuLCBwcm9ncmVzc2luZyB0aW1lDQo+IGFuZCBleHBpcnkgcHJvY2Vzc2luZyku DQo+IA0KPiBDeWNsZS1lZmZpY2llbnQgc2Nhbm5pbmcgYW5kIG1hbmlwdWxhdGlvbiBvZiB0aGVz ZSBiaXRzZXRzIGFyZSBjcnVjaWFsDQo+IGZvciB0aGUgSFdUJ3MgcGVyZm9ybWFuY2UuDQo+IA0K PiBUaGUgaHRpbWVyIG1vZHVsZSBrZWVwcyBhIHBlci1sY29yZSAob3IgcGVyLXJlZ2lzdGVyZWQg RUFMIHRocmVhZCkgSFdUDQo+IGluc3RhbmNlLCBtdWNoIGxpa2UgcnRlX3RpbWVyLmMga2VlcHMg YSBwZXItbGNvcmUgc2tpcCBsaXN0Lg0KPiANCj4gVG8gYXZvaWQgZXhwZW5zaXZlIHN5bmNocm9u aXphdGlvbiBvdmVyaGVhZCBmb3IgdGhyZWFkLWxvY2FsIHRpbWVyDQo+IG1hbmFnZW1lbnQsIHRo ZSBIV1RzIGFyZSBhY2Nlc3NlZCBvbmx5IGZyb20gdGhlICJvd25pbmciIHRocmVhZC4gIEFueQ0K PiBpbnRlcmFjdGlvbiBhbnkgb3RoZXIgdGhyZWFkIGhhcyB3aXRoIGEgcGFydGljdWxhciBsY29y ZSdzIHRpbWVyDQo+IHdoZWVsIGdvZXMgb3ZlciBhIHNldCBvZiBEUERLIHJpbmdzLiBBIHNpZGUt ZWZmZWN0IG9mIHRoaXMgZGVzaWduIGlzDQo+IHRoYXQgYWxsIG9wZXJhdGlvbnMgd29ya2luZyB0 b3dhcmQgYSAicmVtb3RlIiBIV1QgbXVzdCBiZQ0KPiBhc3luY2hyb25vdXMuDQo+IA0KPiBUaGUg PHJ0ZV9odGltZXIuaD4gQVBJIGlzIGF2YWlsYWJsZSBvbmx5IHRvIEVBTCB0aHJlYWRzIGFuZCBy ZWdpc3RlcmVkDQo+IG5vbi1FQUwgdGhyZWFkcy4NCj4gDQo+IFRoZSBodGltZXIgQVBJIGFsbG93 cyB0aGUgYXBwbGljYXRpb24gdG8gc3VwcGx5IHRoZSBjdXJyZW50IHRpbWUsDQo+IHVzZWZ1bCBp biBjYXNlIGl0IGFscmVhZHkgaGFzIHJldHJpZXZlZCB0aGlzIGZvciBvdGhlciBwdXJwb3NlcywN Cj4gc2F2aW5nIHRoZSBjb3N0IG9mIGEgcmR0c2MgaW5zdHJ1Y3Rpb24gKG9yIGl0cyBlcXVpdmFs ZW50KS4NCj4gDQo+IFJlbGF0aXZlIGh0aW1lciBkb2VzIG5vdCByZXRyaWV2ZSBhIG5ldyB0aW1l LCBidXQgcmV1c2UgdGhlIGN1cnJlbnQNCj4gdGltZSAoYXMga25vd24gdmlhL2F0LXRoZS10aW1l IG9mIHRoZSBtYW5hZ2UtY2FsbCksIGFnYWluIHRvIHNoYXZlIG9mZg0KPiBzb21lIGN5Y2xlcyBv ZiBvdmVyaGVhZC4NCg0KSSBoYXZlIGEgY29tbWVudCB0byB0aGUgdHdvIHBvaW50cyBhYm92ZS4N Cg0KSSBhZ3JlZSB0aGF0IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgc3VwcGx5IHRoZSBjdXJyZW50 IHRpbWUuDQoNClRoaXMgc2hvdWxkIGJlIHRoZSBjb25jZXB0IHRocm91Z2hvdXQgdGhlIGxpYnJh cnkuIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgVFNDIGlzIHVzZWQgaW4gdGhlIGxpYnJhcnkgYXQg YWxsPw0KDQpQbGVhc2UgdXNlIGEgdW5pdC1sZXNzIHRpY2ssIGFuZCBsZXQgdGhlIGFwcGxpY2F0 aW9uIGRlY2lkZSB3aGF0IG9uZSB0aWNrIG1lYW5zLg0KDQpBIHVuaXQtbGVzcyB0aWNrIHdpbGwg YWxzbyBsZXQgdGhlIGFwcGxpY2F0aW9uIGluc3RhbnRpYXRlIGEgSFRXIHdpdGggaGlnaGVyIHJl c29sdXRpb24gdGhhbiB0aGUgVFNDLiAoRS5nLiB0aGluayBhYm91dCBvdmVyc2FtcGxpbmcgaW4g YXVkaW8gcHJvY2Vzc2luZywgb3IgQnJlemVuaGFtJ3MgbGluZSBkcmF3aW5nIGFsZ29yaXRobSBm b3IgMkQgdmlzdWFscyAtIG92ZXJzYW1wbGluZyBjYW4gc291bmQgYW5kIGxvb2sgYmV0dGVyLikN Cg0KRm9yIHJlZmVyZW5jZSAoc3VwcG9ydGluZyBteSBzdWdnZXN0aW9uKSwgdGhlIGR5bmFtaWMg dGltZXN0YW1wIGZpZWxkIGluIHRoZSBydGVfbWJ1ZiBzdHJ1Y3R1cmUgaXMgYWxzbyBkZWZpbmVk IGFzIGJlaW5nIHVuaXQtbGVzcy4gKEkgdGhpbmsgTlZJRElBIGltcGxlbWVudHMgaXQgYXMgbmFu b3NlY29uZHMsIGJ1dCB0aGF0J3MgYW4gaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgY2hvaWNlLikN Cg0KPiANCj4gQSBzZW1hbnRpYyBpbXByb3ZlbWVudCBjb21wYXJlZCB0byB0aGUgPHJ0ZV90aW1l ci5oPiBBUEkgaXMgdGhhdCB0aGUNCj4gaHRpbWVyIGxpYnJhcnkgY2FuIGdpdmUgYSBkZWZpbml0 ZSBhbnN3ZXIgb24gdGhlIHF1ZXN0aW9uIGlmIHRoZSB0aW1lcg0KPiBleHBpcnkgY2FsbGJhY2sg d2FzIGNhbGxlZCwgYWZ0ZXIgYSB0aW1lciBoYXMgYmVlbiBjYW5jZWxlZC4NCj4gDQo+IEJlbG93 IGlzIGEgcGVyZm9ybWFuY2UgZGF0YSBmcm9tIERQREsncyAnYXBwL3Rlc3QnIG1pY3JvIGJlbmNo bWFya3MsDQo+IHVzaW5nIDEwayBjb25jdXJyZW50IHRpbWVycy4gVGhlIGJlbmNobWFya3MgKHRl c3RfdGltZXJfcGVyZi5jIGFuZA0KPiB0ZXN0X2h0aW1lcl9tZ3JfcGVyZi5jKSBhcmVuJ3QgaWRl bnRpY2FsIGluIHRoZWlyIHN0cnVjdHVyZSwgYnV0IHRoZQ0KPiBudW1iZXJzIGdpdmUgc29tZSBp bmRpY2F0aW9uIG9mIHRoZSBkaWZmZXJlbmNlLg0KPiANCj4gVXNlIGNhc2UgICAgICAgICAgICAg ICBodGltZXIgIHRpbWVyDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiBBZGQgdGltZXIgICAgICAgICAgICAgICAgIDI4ICAgIDI1Mw0KPiBDYW5jZWwgdGltZXIgICAg ICAgICAgICAgIDEwICAgIDQxMg0KPiBBc3luYyBhZGQgKHNvdXJjZSBsY29yZSkgIDY0DQo+IEFz eW5jIGFkZCAodGFyZ2V0IGxjb3JlKSAgMTMNCj4gDQo+IChBTUQgNTkwMFggQ1BVLiBUaW1lIGlu IFRTQy4pDQo+IA0KPiBQcm90b3R5cGUgaW50ZWdyYXRpb24gb2YgdGhlIGh0aW1lciBsaWJyYXJ5 IGludG8gcmVhbCwgdGltZXItaGVhdnksDQo+IGFwcGxpY2F0aW9ucyBpbmRpY2F0ZXMgdGhhdCBo dGltZXIgbWF5IHJlc3VsdCBpbiBzaWduaWZpY2FudA0KPiBhcHBsaWNhdGlvbi1sZXZlbCBwZXJm b3JtYW5jZSBnYWlucy4NCj4gDQo+IFRoZSBiaXRzZXQgaW1wbGVtZW50YXRpb24gd2hpY2ggdGhl IEhXVCBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIHVwb24NCj4gc2VlbWVkIGdlbmVyaWMtZW5vdWdo IGFuZCBwb3RlbnRpYWxseSB1c2VmdWwgb3V0c2lkZSB0aGUgd29ybGQgb2YNCj4gSFdUcywgdG8g anVzdGlmeSBiZWluZyBsb2NhdGVkIGluIHRoZSBFQUwuDQo+IA0KPiBUaGlzIHBhdGNoc2V0IGlz IHZlcnkgbXVjaCBhbiBSRkMsIGFuZCB0aGUgYXV0aG9yIGlzIHlldCB0byBmb3JtIGFuDQo+IG9w aW5pb24gb24gbWFueSBpbXBvcnRhbnQgaXNzdWVzLg0KPiANCj4gKiBJZiBkZWVtZWQgYSBzdWl0 YWJsZSByZXBsYWNlbWVudCwgc2hvdWxkIHRoZSBodGltZXIgcmVwbGFjZSB0aGUNCj4gICBjdXJy ZW50IERQREsgdGltZXIgbGlicmFyeSBpbiBzb21lIHBhcnRpY3VsYXIgKEFCSS1icmVha2luZykN Cj4gICByZWxlYXNlLCBvciBzaG91bGQgaXQgbGl2ZSBzaWRlLWJ5LXNpZGUgd2l0aCB0aGUgdGhl bi1sZWdhY3kNCj4gICA8cnRlX3RpbWVyLmg+IEFQST8gQSBsb3Qgb2YgdGhpbmdzIGluIGFuZCBv dXRzaWRlIERQREsgZGVwZW5kIG9uDQo+ICAgPHJ0ZV90aW1lci5oPiwgc28gY29leGlzdGVuY2Ug bWF5IGJlIHJlcXVpcmVkIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGgNCj4gICB0cmFuc2l0aW9uLg0K DQpJdCdzIG15IGltbWVkaWF0ZSBpbXByZXNzaW9uIHRoYXQgdGhleSBhcmUgdG90YWxseSBkaWZm ZXJlbnQgaW4gYm90aCBkZXNpZ24gcGhpbG9zb3BoeSBhbmQgQVBJLg0KDQpQZXJzb25hbCBvcGlu aW9uOiBJIHdvdWxkIGNhbGwgaXQgYW4gZW50aXJlbHkgZGlmZmVyZW50IGxpYnJhcnkuDQoNCj4g DQo+ICogU2hvdWxkIHRoZSBodGltZXIgYW5kIGh0dy1yZWxhdGVkIGZpbGVzIGJlIGNvbG9jYXRl ZCB3aXRoIHJ0ZV90aW1lci5jDQo+ICAgaW4gdGhlIHRpbWVyIGxpYnJhcnk/DQoNClBlcnNvbmFs IG9waW5pb246IE5vLiBUaGlzIGlzIGFuIGVudGlyZWx5IGRpZmZlcmVudCBsaWJyYXJ5LCBhbmQg c2hvdWxkIGxpdmUgZm9yIGl0c2VsZiBpbiBhIGRpcmVjdG9yeSBvZiBpdHMgb3duLg0KDQo+IA0K PiAqIFdvdWxkIGl0IGJlIHVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHVzaW5nIGFzeW5jaHJvbm91 cyBjYW5jZWwgdG8NCj4gICBoYXZlIHRoZSBvcHRpb24gb2YgaGF2aW5nIHRoZSB0aW1lciBjYWxs YmFjayBydW4gbm90IG9ubHkgaW4gY2FzZSBvZg0KPiAgIHRpbWVyIGV4cGlyYXRpb24sIGJ1dCBh bHNvIGNhbmNlbGxhdGlvbiAob24gdGhlIHRhcmdldCBsY29yZSk/IFRoZQ0KPiAgIHRpbWVyIGNi IHNpZ25hdHVyZSB3b3VsZCBuZWVkIHRvIGluY2x1ZGUgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIg aW4NCj4gICB0aGF0IGNhc2UuDQoNCklmIG9uZSB0aHJlYWQgY2FuY2VscyBzb21ldGhpbmcgaW4g YW5vdGhlciB0aHJlYWQsIHNvbWUgc3luY2hyb25pemF0aW9uIGJldHdlZW4gdGhlIHRocmVhZHMg aXMgZ29pbmcgdG8gYmUgcmVxdWlyZWQgYW55d2F5LiBTbyB3ZSBjb3VsZCByZXByYXNlIHlvdXIg cXVlc3Rpb246IFdpbGwgdGhlIGJ1cmRlbiBvZiB0aGUgb3RoZXJ3aXNlIHJlcXVpcmVkIHN5bmNo cm9uaXphdGlvbiBiZXR3ZWVuIHRoZSB0d28gdGhyZWFkcyBiZSBzaWduaWZpY2FudGx5IHJlZHVj ZWQgaWYgdGhlIGxpYnJhcnkgaGFzIHRoZSBhYmlsaXR5IHRvIHJ1biB0aGUgY2FsbGJhY2sgb24g YXN5bmNocm9ub3VzIGNhbmNlbD8NCg0KSXMgc3VjaCBhIGZlYXR1cmUgbW9zdGx5ICJNdXN0IGhh dmUiIG9yICJOaWNlIHRvIGhhdmUiPw0KDQpNb3JlIHRob3VnaHRzIGluIHRoaXMgYXJlYS4uLg0K DQpJZiBhZGRpbmcgYW5kIGFkZGl0aW9uYWwgY2FsbGJhY2sgcGFyYW1ldGVyLCBpdCBjb3VsZCBi ZSBhbiBlbnVtLCBzbyB0aGUgY2FsbGJhY2sgY291bGQgYmUgZXhwYW5kZWQgdG8gc3VwcG9ydCAi dGltZW91dCAoYS5rLmEuIHRpbWVyIGZpcmVkKSIsICJjYW5jZWwiIGFuZCBtb3JlIGV2ZW50cyB3 ZSBoYXZlIG5vdCB5ZXQgY29tZSB1cCB3aXRoLCBlLmcuICJlYXJseSBraWNrIi4NCg0KSGVyZSdz IGFuIGlkZWEgb2ZmIHRoZSB0b3Agb2YgbXkgaGVhZDogQW4gYWRkaXRpb25hbCBjYWxsYmFjayBw YXJhbWV0ZXIgaGFzIGEgKHNtYWxsKSBwZXJmb3JtYW5jZSBjb3N0IGluY3VycmVkIHdpdGggZXZl cnkgdGltZXIgZmlyZWQgKHdoaWNoIGlzIGEgdmVyeSBsYXJnZSBtdWx0aXBsaWVyKS4gSXQgbWln aHQgbm90IGJlIHJlcXVpcmVkLiBBcyBhbiBhbHRlcm5hdGl2ZSB0byBhbiAid2hhdCBoYXBwZW5l ZCIgcGFyYW1ldGVyIHRvIHRoZSBjYWxsYmFjaywgdGhlIGNhbGxiYWNrIGNvdWxkIGludmVzdGln YXRlIHRoZSBzdGF0ZSBvZiB0aGUgb2JqZWN0IGZvciB3aGljaCB0aGUgdGltZXIgZmlyZWQsIGFu ZCBkcmF3IGl0cyBvd24gY29uY2x1c2lvbiBvbiBob3cgdG8gcHJvY2VlZC4gT2J2aW91c2x5LCB0 aGlzIGFsc28gaGFzIGEgcGVyZm9ybWFuY2UgY29zdCwgYnV0IHBlcmhhcHMgdGhlIGNhbGxiYWNr IHdvcmtzIG9uIHRoZSBvYmplY3QncyBzdGF0ZSBhbnl3YXksIG1ha2luZyB0aGlzIGNvc3QgaW5z aWduaWZpY2FudC4NCg0KSGVyZSdzIGFub3RoZXIgYWx0ZXJuYXRpdmUgdG8gYWRkaW5nIGEgIndo YXQgaGFwcGVuZWQiIHBhcmFtZXRlciB0byB0aGUgY2FsbGJhY2s6DQoNClRoZSBydGVfaHRpbWVy IGNvdWxkIGhhdmUgb25lIG1vcmUgY2FsbGJhY2sgcG9pbnRlciwgd2hpY2ggKGlmIHNldCkgd2ls bCBiZSBjYWxsZWQgb24gY2FuY2VsbGF0aW9uIG9mIHRoZSB0aW1lci4NCg0KPiANCj4gKiBTaG91 bGQgdGhlIHJ0ZV9odGltZXIgYmUgYSBuZXN0ZWQgc3RydWN0LCBzbyB0aGUgaHR3IHBhcnRzIGJl IHNlcGFyYXRlZA0KPiAgIGZyb20gdGhlIGh0aW1lciBwYXJ0cz8NCj4gDQo+ICogPHJ0ZV9odGlt ZXIuaD4gaXMga2VwdCBzZXBhcmF0ZSBmcm9tIDxydGVfaHRpbWVyX21nci5oPiwgc28gdGhhdA0K PiAgIDxydGVfaHR3Lmg+IG1heSBhdm9pZCBhIGRlcGVkZW5jeSB0byA8cnRlX2h0aW1lcl9tZ3Iu aD4uIFNob3VsZCBpdA0KPiAgIGJlIHNvPw0KPiANCj4gKiBydGVfaHRpbWVyIHN0cnVjdCBpcyBv bmx5IHN1cHBvc2VkIHRvIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHRvDQo+ICAgZ2l2ZSBh biBpbmRpY2F0aW9uIG9mIGhvdyBtdWNoIG1lbW9yeSBpdCBuZWVkcyB0byBhbGxvY2F0ZSwgYW5k IGlzDQo+ICAgaXRzIG1lbWJlciBhcmUgbm90IHN1cHBvc2VkIHRvIGJlIGRpcmVjdGx5IGFjY2Vz c2VkICh3LyB0aGUgcG9zc2libGUNCj4gICBleGNlcHRpb24gb2YgdGhlIG93bmVyX2xjb3JlX2lk IGZpZWxkKS4gU2hvdWxkIHRoZXJlIGJlIGEgZHVtbXkNCj4gICBzdHJ1Y3QsIG9yIGEgI2RlZmlu ZSBSVEVfSFRJTUVSX01FTVNJWkUgb3IgYSBydGVfaHRpbWVyX2dldF9tZW1zaXplKCkNCj4gICBm dW5jdGlvbiBpbnN0ZWFkLCBzZXJ2aW5nIHRoZSBzYW1lIHB1cnBvc2U/IEJldHRlciBlbmNhcHN1 bGF0aW9uLA0KPiAgIGJ1dCBtb3JlIGluY29udmVuaWVudCBmb3IgYXBwbGljYXRpb25zLiBSdW4t dGltZSBkeW5hbWljIHNpemluZw0KPiAgIHdvdWxkIGZvcmNlIGFwcGxpY2F0aW9uLWxldmVsIGR5 bmFtaWMgYWxsb2NhdGlvbnMuDQo+IA0KPiAqIEFzeW5jaHJvbm91cyBjYW5jZWxsYXRpb24gaXMg YSBsaXR0bGUgdHJpY2t5IHRvIHVzZSBmb3IgdGhlDQo+ICAgYXBwbGljYXRpb24gKHByaW1hcmls eSBkdWUgdG8gdGltZXIgbWVtb3J5IHJlY2xhbWF0aW9uL3JhY2UNCj4gICBpc3N1ZXMpLiBTaG91 bGQgdGhpcyBmdW5jdGlvbmFsaXR5IGJlIHJlbW92ZWQ/DQo+IA0KPiAqIFNob3VsZCBydGVfaHRp bWVyX21ncl9pbml0KCkgYWxzbyByZXRyaWV2ZSB0aGUgY3VycmVudCB0aW1lPyBJZiBzbywNCj4g ICB0aGVyZSBzaG91bGQgdG8gYmUgYSB2YXJpYW50IHdoaWNoIGFsbG93cyB0aGUgdXNlciB0byBz cGVjaWZ5IHRoZQ0KPiAgIHRpbWUgKHRvIG1hdGNoIHJ0ZV9odGltZXJfbWdyX21hbmFnZV90aW1l KCkpLiBPbmUgcGl0ZmFsbCB3aXRoIHRoZQ0KPiAgIGN1cnJlbnQgcHJvcG9zZWQgQVBJIGlzIGFu IGFwcGxpY2F0aW9uIGNhbGxpbmcgcnRlX2h0aW1lcl9tZ3JfaW5pdCgpDQo+ICAgYW5kIHRoZW4g aW1tZWRpYXRlbHkgYWRkaW5nIGEgdGltZXIgd2l0aCBhIHJlbGF0aXZlIHRpbWVvdXQsIGluDQo+ ICAgd2hpY2ggY2FzZSB0aGUgY3VycmVudCBhYnNvbHV0ZSB0aW1lIHVzZWQgaXMgMCwgd2hpY2gg bWlnaHQgYmUgYQ0KPiAgIHN1cnByaXNlLg0KPiANCj4gKiBTaG91bGQgbGliZGl2aWRlIChvcHRp b25hbGx5KSBiZSB1c2VkIHRvIGF2b2lkIHRoZSBkaXYgaW4gdGhlIFRTQyAtPg0KPiAgIHRpY2sg Y29udmVyc2lvbj8gKERvZXNuJ3QgaW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBaZW4gMywgYnV0IG1h eQ0KPiAgIGRvIG9uIG90aGVyIENQVXMuKSBDb25zaWRlciA8cnRlX3JlY2lwcm9jYWwuaD4gYXMg d2VsbC4NCj4gDQo+ICogU2hvdWxkIHRoZSBUU0MtcGVyLXRpY2sgYmUgcm91bmRlZCB1cCB0byBh IHBvd2VyIG9mIDIsIHNvIHNoaWZ0cyBjYW4gYmUNCj4gICB1c2VkIGZvciBjb252ZXJzaW9uPyBW ZXJ5IG1pbm9yIHBlcmZvcm1hbmNlIGdhaW5zIHRvIGJlIGZvdW5kIHRoZXJlLA0KPiAgIGF0IGxl YXN0IG9uIFplbiAzIGNvcmVzLg0KPiANCj4gKiBTaG91bGQgaXQgYmUgcG9zc2libGUgdG8gc3Vw cGx5IHRoZSB0aW1lIGluIHJ0ZV9odGltZXJfbWdyX2FkZCgpDQo+ICAgYW5kL29yIHJ0ZV9odGlt ZXJfbWdyX21hbmFnZV90aW1lKCkgZnVuY3Rpb25zIGFzIHRpY2tzLCByYXRoZXIgdGhhbg0KPiAg IGFzIFRTQz8gU2hvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIGFsc28gdXNlIG5hbm9zZWNvbmRzPw0K PiAgIHJ0ZV9odGltZXJfbWdyX21hbmFnZV90aW1lKCkgd291bGQgbmVlZCBhIGZsYWdzIHBhcmFt ZXRlciBpbiB0aGF0DQo+ICAgY2FzZS4NCg0KRG8gbm90IHVzZSBUU0MgYW55d2hlcmUgaW4gdGhp cyBsaWJyYXJ5LiBMZXQgdGhlIGFwcGxpY2F0aW9uIGRlY2lkZSB0aGUgbWVhbmluZyBvZiBhIHRp Y2suDQoNCj4gDQo+ICogV291bGQgdGhlIGV2ZW50IHRpbWVyIGFkYXB0ZXIgYmUgYmVzdCBvZmYg dXNpbmcgPHJ0ZV9odHcuaD4NCj4gICBkaXJlY3RseSwgb3IgPHJ0ZV9odGltZXIuaD4/IEluIHRo ZSBsYXR0ZXIgY2FzZSwgdGhlcmUgbmVlZHMgdG8gYmUgYQ0KPiAgIHdheSB0byBpbnN0YW50aWF0 ZSBtb3JlIEhXVHMgKHNpbWlsYXIgdG8gdGhlICJhbHQiIGZ1bmN0aW9ucyBvZg0KPiAgIDxydGVf dGltZXIuaD4pPw0KPiANCj4gKiBTaG91bGQgdGhlIFBFUklPRElDQUwgZmxhZyAoYW5kIHRoZSBj b21wbGV4aXR5IGl0IGJyaW5ncykgYmUNCj4gICByZW1vdmVkPyBBbmQgbGVhdmUgdGhlIGFwcGxp Y2F0aW9uIHdpdGggb25seSBzaW5nbGUtc2hvdCB0aW1lcnMsIGFuZA0KPiAgIHRoZSBvcHRpb24g dG8gcmUtYWRkIHRoZW0gaW4gdGhlIHRpbWVyIGNhbGxiYWNrLg0KDQpGaXJzdCB0aG91Z2h0OiBZ ZXMsIGtlZXAgaXQgbGVhbiBhbmQgcmVtb3ZlIHRoZSBwZXJpb2RpY2FsIHN0dWZmLg0KDQpTZWNv bmQgdGhvdWdodDogVGhpcyBuZWVkcyBhIG1vcmUgZGV0YWlsZWQgYW5hbHlzaXMuDQoNCkZyb20g b25lIGFuZ2xlOg0KDQpIb3cgbWFueSBQRVJJT0RJQ0FMIHZlcnN1cyBPTkVTSE9UIHRpbWVycyBk byB3ZSBleHBlY3Q/DQoNCkludHVpdGl2ZWx5LCBJIHdvdWxkIHVzZSB0aGlzIGxpYnJhcnkgZm9y IE9ORVNIT1QgdGltZXJzLCBhbmQgcGVyaGFwcyBpbXBsZW1lbnQgbXkgcGVyaW9kaWNhbCB0aW1l cnMgYnkgb3RoZXIgbWVhbnMuDQoNCklmIHRoZSBQRVJJT0RJQ0FMOk9ORVNIT1QgcmF0aW8gaXMg bG93LCB3ZSBjYW4gcHJvYmFibHkgbGl2ZSB3aXRoIHRoZSBleHRyYSBjb3N0IG9mIGNhbmNlbCth ZGQgZm9yIGEgZmV3IHBlcmlvZGljYWwgdGltZXJzLg0KDQpGcm9tIGFub3RoZXIgYW5nbGU6DQoN CldoYXQgaXMgdGhlIHBlcmZvcm1hbmNlIGdhaW4gd2l0aCB0aGUgUEVSSU9ESUNBTCBmbGFnPw0K DQpXaXRob3V0IGEgcGVyaW9kaWNhbCB0aW1lciwgY2FuY2VsK2FkZCBjb3N0cyAxMCsyOCBjeWNs ZXMuIEhvdyBtYW55IGN5Y2xlcyB3b3VsZCBhICJtb3ZlIiBmdW5jdGlvbiwgcGVyZm9ybWluZyBi b3RoIGNhbmNlbCBhbmQgYWRkLCB1c2U/DQoNCkFuZCB0aGVuIGNvbXBhcmUgdGhhdCB0byB0aGUg Y29zdCAoaW4gY3ljbGVzKSBvZiByZXBlYXRpbmcgYSB0aW1lciB3aXRoIFBFUklPRElDQUw/DQoN CkZ1cnRoZXJtb3JlLCBub3QgaGF2aW5nIHRoZSBQRVJJT0RJQ0FMIGZsYWcgcHJvYmFibHkgaW1w cm92ZXMgdGhlIHBlcmZvcm1hbmNlIGZvciBub24tcGVyaW9kaWNhbCB0aW1lcnMuIEhvdyBtYW55 IGN5Y2xlcyBjb3VsZCB3ZSBnYWluIGhlcmU/DQoNCg0KQW5vdGhlciwgdmFndWVseSByZWxhdGVk LCBpZGVhOg0KDQpUaGUgY2FsbGJhY2sgcG9pbnRlciBtaWdodCBub3QgbmVlZCB0byBiZSBzdG9y ZWQgcGVyIHJ0ZV9odGltZXIsIGJ1dCBjb3VsZCBpbnN0ZWFkIGJlIGNvbW1vbiBmb3IgdGhlIHJ0 ZV9odHcuDQoNCldoZW4gYSB0aW1lciBmaXJlcywgdGhlIGNhbGxiYWNrIHByb2JhYmx5IG5lZWRz IHRvIGNoZWNrL3VwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIG9iamVjdCBmb3Igd2hpY2ggdGhlIHRp bWVyIGZpcmVkIGFueXdheSwgc28gd2h5IG5vdCBqdXN0IGxldCB0aGUgYXBwbGljYXRpb24gdXNl IHRoYXQgc3RhdGUgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBhY3Rpb24uIFRoaXMgbWln aHQgcHJvdmlkZSBzb21lIHBlcmZvcm1hbmNlIGJlbmVmaXQuDQoNCkl0IG1pZ2h0IGNvbXBsaWNh dGUgdXNpbmcgb25lIEhUVyBmb3IgbXVsdGlwbGUgZGlmZmVyZW50IHB1cnBvc2VzLCB0aG91Z2gu IFByb2JhYmx5IGEgdXNlbGVzcyBpZGVhLCBidXQgSSB3YW50ZWQgdG8gc2hhcmUgdGhlIGlkZWEg YW55d2F5LiBJdCBtaWdodCB0cmlnZ2VyIG90aGVyLCBiZXR0ZXIgaWRlYXMgaW4gdGhlIGNvbW11 bml0eS4NCg0KPiANCj4gKiBTaG91bGQgdGhlIGFzeW5jIHJlc3VsdCBjb2RlcyBhbmQgdGhlIHN5 bmMgY2FuY2VsIGVycm9yIGNvZGVzIGJlIG1lcmdlZA0KPiAgIGludG8gb25lIHNldCBvZiByZXN1 bHQgY29kZXM/DQo+IA0KPiAqIFNob3VsZCB0aGUgcnRlX2h0aW1lcl9tZ3JfYXN5bmNfYWRkKCkg aGF2ZSBhIGZsYWcgd2hpY2ggYWxsb3cNCj4gICBidWZmZXJpbmcgYWRkIHJlcXVlc3QgbWVzc2Fn ZXMgdW50aWwgcnRlX2h0aW1lcl9tZ3JfcHJvY2VzcygpIGlzDQo+ICAgY2FsbGVkPyBPciBhbnkg bWFuYWdlIGZ1bmN0aW9uLiBXb3VsZCByZWR1Y2UgcmluZyBzaWduYWxpbmcgb3ZlcmhlYWQNCj4g ICAoaS5lLiwgYnVyc3QgZW5xdWV1ZSBvcGVyYXRpb25zIGluc3RlYWQgb2Ygc2luZ2xlLWVsZW1l bnQNCj4gICBlbnF1ZXVlKS4gQ291bGQgYWxzbyBiZSBhIHJ0ZV9odGltZXJfbWdyX2FzeW5jX2Fk ZF9idXJzdCgpIGZ1bmN0aW9uLA0KPiAgIHNvbHZpbmcgdGhlIHNhbWUgInByb2JsZW0iIGEgZGlm ZmVyZW50IHdheS4gKFRoZSBzaWduYXR1cmUgb2Ygc3VjaA0KPiAgIGEgZnVuY3Rpb24gd291bGQg bm90IGJlIHByZXR0eS4pDQo+IA0KPiAqIERvZXMgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQg YnkgdGhlIHJ0ZV9odGltZXJfbWdyX3Byb2Nlc3MoKQ0KPiAgIGZ1bmN0aW9uIG1hdGNoIGl0cyB0 aGUgdXNlIGNhc2VzPyBTaG91bGQgdGhlcmUgbWUgYSBtb3JlIGNsZWFyDQo+ICAgc2VwYXJhdGlv biBiZXR3ZWVuIGV4cGlyeSBwcm9jZXNzaW5nIGFuZCBhc3luY2hyb25vdXMgb3BlcmF0aW9uDQo+ ICAgcHJvY2Vzc2luZz8NCj4gDQo+ICogU2hvdWxkIHRoZSBwYXRjaHNldCBiZSBzcGxpdCBpbnRv IG1vcmUgY29tbWl0cz8gSWYgc28sIGhvdz8NCj4gDQo+IFRoYW5rcyB0byBFcmlrIENhcnJpbGxv IGZvciBoaXMgYXNzaXN0YW5jZS4NCj4gDQo+IE1hdHRpYXMgUsO2bm5ibG9tICgyKToNCj4gICBl YWw6IGFkZCBiaXRzZXQgdHlwZQ0KPiAgIGVhbDogYWRkIGhpZ2gtcGVyZm9ybWFuY2UgdGltZXIg ZmFjaWxpdHkNCg==