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 6802743FF2; Fri, 10 May 2024 11:14:31 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 31A67402C4; Fri, 10 May 2024 11:14:31 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id F24C6402BB for ; Fri, 10 May 2024 11:14:29 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id C9FEF209B2; Fri, 10 May 2024 11:14:29 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Subject: RE: [RFC v3] net/af_packet: make stats reset reliable Date: Fri, 10 May 2024 11:14:25 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F434@smartserver.smartshare.dk> In-Reply-To: <20240509215602.7e03f34d@hermes.local> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [RFC v3] net/af_packet: make stats reset reliable Thread-Index: Adqill6vX1WqZFv+Q2KOIKa6wtmWRAAFTqLg References: <20240425174617.2126159-1-ferruh.yigit@amd.com><20240503154547.392069-1-ferruh.yigit@amd.com><20240503150011.55681b97@hermes.local><432fb280-96e3-4079-b987-990d509b8c79@lysator.liu.se><20240508082339.6bf74202@hermes.local><834102e5-8f4b-4b67-9f62-8e8f61403b39@amd.com><20240508135418.55505105@hermes.local><98CBD80474FA8B44BF855DF32C47DC35E9F431@smartserver.smartshare.dk><98CBD80474FA8B44BF855DF32C47DC35E9F432@smartserver.smartshare.dk><98CBD80474FA8B44BF855DF32C47DC35E9F433@smartserver.smartshare.dk> <20240509215602.7e03f34d@hermes.local> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Stephen Hemminger" Cc: "Bruce Richardson" , "Ferruh Yigit" , =?UTF-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "John W. Linville" , "Thomas Monjalon" , , =?UTF-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= 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 PiBGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciBbbWFpbHRvOnN0ZXBoZW5AbmV0d29ya3BsdW1iZXIu b3JnXQ0KPiBTZW50OiBGcmlkYXksIDEwIE1heSAyMDI0IDA2LjU2DQo+IA0KPiBPbiBUaHUsIDkg TWF5IDIwMjQgMTY6MTk6MDggKzAyMDANCj4gTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVz eXN0ZW1zLmNvbT4gd3JvdGU6DQo+IA0KPiA+ID4gRnJvbTogTW9ydGVuIEJyw7hydXAgW21haWx0 bzptYkBzbWFydHNoYXJlc3lzdGVtcy5jb21dDQo+ID4gPiBTZW50OiBUaHVyc2RheSwgOSBNYXkg MjAyNCAxMy4zNw0KPiA+ID4NCj4gPiA+ID4gRnJvbTogQnJ1Y2UgUmljaGFyZHNvbiBbbWFpbHRv OmJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tXQ0KPiA+ID4gPiBTZW50OiBUaHVyc2RheSwgOSBN YXkgMjAyNCAxMS4zMA0KPiA+ID4gPg0KPiA+ID4gPiBPbiBUaHUsIE1heSAwOSwgMjAyNCBhdCAw OTo0MzoxNkFNICswMjAwLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPiA+ID4gPiA+IEZyb206 IFN0ZXBoZW4gSGVtbWluZ2VyIFttYWlsdG86c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmddDQo+ ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIDggTWF5IDIwMjQgMjIuNTQNCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiBPbiBXZWQsIDggTWF5IDIwMjQgMjA6NDg6MDYgKzAxMDANCj4gPiA+ID4g PiA+IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGFtZC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRoZSBpZGVhIG9mIGxvYWQgdGVh cmluZyBpcyBjcmF6eSB0YWxrIG9mIGludGVncmFsIHR5cGVzLg0KPiBJdA0KPiA+ID4gPiB3b3Vs ZA0KPiA+ID4gPiA+ID4gYnJlYWsgc28gbWFueSB0aGluZ3MuDQo+ID4gPiA+ID4gPiA+ID4gSXQg aXMgdGhlIGtpbmQgb2Ygc3R1cGlkIGNvbXBpbGVyIHRoaW5nIHRoYXQgd291bGQgc2VuZA0KPiBM aW51cw0KPiA+ID4gb24NCj4gPiA+ID4gYQ0KPiA+ID4gPiA+ID4gcmFudCBhbmQgZ2V0DQo+ID4g PiA+ID4gPiA+ID4gdGhlIEdDQyBjb21waWxlciB3cml0ZXJzIGluIHRyb3VibGUuDQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGUgRFBESyBoYXMgYWx3YXlzIGZhdm9yZWQgcGVy Zm9ybWFuY2Ugb3ZlciBzdHJpY3Qgc2FmZXR5DQo+ID4gPiBndWFyZA0KPiA+ID4gPiA+ID4gcmFp bHMgZXZlcnl3aGVyZS4NCj4gPiA+ID4gPiA+ID4gPiBTd2l0Y2hpbmcgdG8gbWFraW5nIGV2ZXJ5 IHN0YXRpc3RpYyBhbiBhdG9taWMgb3BlcmF0aW9uIGlzDQo+IG5vdA0KPiA+ID4gPiBpbg0KPiA+ ID4gPiA+ID4gdGhlIHNwaXJpdCBvZg0KPiA+ID4gPiA+ID4gPiA+IHdoYXQgaXMgcmVxdWlyZWQu IFRoZXJlIGlzIG5vIHN0cmljdCBndWFyYW50ZWUgbmVjZXNzYXJ5DQo+IGhlcmUuDQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSBraW5kIG9mIGFncmVlIHdp dGggU3RlcGhlbi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhhbmtzIE1hdHRpYXMs IE1vcnRlbiAmIFN0ZXBoZW4sIGl0IHdhcyBpbmZvcm1hdGl2ZQ0KPiBkaXNjdXNzaW9uLg0KPiA+ ID4gPiBCdXQNCj4gPiA+ID4gPiA+IGZvcg0KPiA+ID4gPiA+ID4gPiAqU1cgZHJpdmVycyogc3Rh dHMgdXBkYXRlIGFuZCByZXNldCBpcyBub3QgY29yZQ0KPiBmdW5jdGlvbmFsaXR5DQo+ID4gPiBh bmQNCj4gPiA+ID4gSQ0KPiA+ID4gPiA+ID4gPiB0aGluayB3ZSBjYW4gYmUgT0sgdG8gZ2V0IGhp dCBvbiBjb3JuZXIgY2FzZXMsIGluc3RlYWQgb2YNCj4gPiA+ID4gPiA+ID4gb3Zlci1lbmdpbmVl cmluZyBvciBtYWtpbmcgY29kZSBtb3JlIGNvbXBsZXguDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IEkgZm9yZ290IHRoZSBjYXNlIG9mIDY0IGJpdCB2YWx1ZXMgb24gMzIg Yml0IHBsYXRmb3JtcyENCj4gPiA+ID4gPiA+IE1vc3RseSBiZWNhdXNlIGhhdmVuJ3QgY2FyZWQg YWJvdXQgMzIgYml0IGZvciB5ZWFycy4uLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRoZSBM aW51eCBrZXJuZWwgdXNlcyBzb21lIHdyYXBwZXJzIHRvIGhhbmRsZSB0aGlzLg0KPiA+ID4gPiA+ ID4gT24gNjQgYml0IHBsYXRmb3JtcyB0aGV5IGJlY29tZSBub29wLg0KPiA+ID4gPiA+ID4gT24g MzIgYml0IHBsYXRmb3JtLCB0aGV5IGFyZSBwcm90ZWN0ZWQgYnkgYSBzZXFsb2NrIGFuZA0KPiB1 cGRhdGVzDQo+ID4gPiBhcmUNCj4gPiA+ID4gPiA+IHdyYXBwZWQgYnkgdGhlIHNlcXVlbmNlIGNv dW50Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IElmIHdlIGdvIHRoaXMgd2F5LCB0aGVuIGRv aW5nIHNpbWlsYXIgTm9vcCBvbiA2NCBiaXQgYW5kDQo+IGF0b21pYyBvcg0KPiA+ID4gPiA+ID4g c2VxbG9jaw0KPiA+ID4gPiA+ID4gb24gMzIgYml0IHNob3VsZCBiZSBkb25lLCBidXQgaW4gY29t bW9uIGhlbHBlci4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBMb29raW5nIGluc2lkZSBGcmVl QlNELCBpdCBsb29rcyBsaWtlIHRoYXQgaGFzIGNoYW5nZWQgb3Zlcg0KPiB0aGUNCj4gPiA+ID4g eWVhcnMgYXMNCj4gPiA+ID4gPiA+IHdlbGwuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gCWlm X2luY19jb3VudGVyDQo+ID4gPiA+ID4gPiAJCWNvdW50ZXJfdTY0X2FkZA0KPiA+ID4gPiA+ID4g CQkJYXRvbWljX2FkZF82NA0KPiA+ID4gPiA+ID4gQnV0IHRoZSBjb3VudGVycyBhcmUgYWx3YXlz IHBlci1jcHUgaW4gdGhpcyBjYXNlLiBTbyBhbHRob3VnaA0KPiBpdA0KPiA+ID4gPiBkb2VzDQo+ ID4gPiA+ID4gPiB1c2UNCj4gPiA+ID4gPiA+IGxvY2tlZCBvcGVyYXRpb24sIHdpbGwgYWx3YXlz IGJlIHVuY29udGVuZGVkLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBQ UzogRG9lcyBEUERLIHN0aWxsIGFjdHVhbGx5IHN1cHBvcnQgMzIgYml0IG9uIHg4Nj8gQ2FuIGl0 IGJlDQo+ID4gPiA+IGRyb3BwZWQNCj4gPiA+ID4gPiA+IHRoaXMgY3ljbGU/DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBXZSBjYW5ub3QgZHJvcCAzMiBiaXQgYXJjaGl0ZWN0dXJlIHN1cHBvcnQgYWx0 b2dldGhlci4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEJ1dCwgdW5saWtlIHRoZSBMaW51eCBrZXJu ZWwsIERQREsgZG9lc24ndCBuZWVkIHRvIHN1cHBvcnQNCj4gYW5jaWVudA0KPiA+ID4gMzINCj4g PiA+ID4gYml0IGFyY2hpdGVjdHVyZXMuDQo+ID4gPiA+ID4gSWYgdGhlIGZldyAzMiBiaXQgYXJj aGl0ZWN0dXJlcyBzdXBwb3J0ZWQgYnkgRFBESyBwcm92aWRlIG5vbi0NCj4gPiA+IHRlYXJpbmcN Cj4gPiA+ID4gNjQgYml0IGxvYWRzL3N0b3Jlcywgd2UgZG9uJ3QgbmVlZCBsb2NrcyAoaW4gdGhl IGZhc3QgcGF0aCkgZm9yIDY0DQo+IGJpdA0KPiA+ID4gPiBjb3VudGVycy4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IEluIGFkZGl0aW9uIHRvIDMyIGJpdCB4ODYsIERQREsgc3VwcG9ydHMgQVJNdjct QSAoYSAzMiBiaXQNCj4gPiA+ID4gYXJjaGl0ZWN0dXJlKSBhbmQgMzIgYml0IEFSTXY4Lg0KPiA+ ID4gPiA+IEkgZG9uJ3QgdGhpbmsgRFBESyBzdXBwb3J0IGFueSBvdGhlciAzMiBiaXQgYXJjaGl0 ZWN0dXJlcy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQXMgTWF0dGlhcyBtZW50 aW9uZWQsIDMyIGJpdCB4ODYgY2FuIHVzZSB4bW0gcmVnaXN0ZXJzIHRvDQo+IHByb3ZpZGUgNjQN Cj4gPiA+ID4gYml0IG5vbi10ZWFyaW5nIGxvYWQvc3RvcmUuDQo+ID4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4gVGVzdGluZyB0aGlzIGEgbGl0dGxlIGluIGdvZGJvbHQsIEkgc2VlIGdjYyB1c2lu ZyB4bW0gcmVnaXN0ZXJzIG9uDQo+IDMyLQ0KPiA+ID4gPiBiaXQNCj4gPiA+ID4gd2hlbiB1cGRh dGluZyA2NC1iaXQgY291bnRlcnMsIGJ1dCBjbGFuZyBkb2Vzbid0IHNlZW0gdG8gZG8gc28sDQo+ IGJ1dA0KPiA+ID4gPiBpbnN0ZWFkDQo+ID4gPiA+IGRvZXMgMiBzdG9yZXMgd2hlbiB3cml0aW5n IGJhY2sgdGhlIDY0IHZhbHVlLiAoSSB0cmllZCB3aXRoIGJvdGgNCj4gPiA+ID4gdm9sYXRpbGUN Cj4gPiA+ID4gYW5kIG5vbi12b2xhdGlsZSA2NC1iaXQgdmFsdWVzLCBqdXN0IHRvIHNlZSBpZiB2 b2xhdGlsZSB3b3VsZA0KPiA+ID4gZW5jb3VyYWdlDQo+ID4gPiA+IGNsYW5nIHRvIGRvIGEgc2lu Z2xlIHN0b3JlKS4NCj4gPiA+ID4NCj4gPiA+ID4gR0NDOiBodHRwczovL2dvZGJvbHQub3JnL3ov OWVxS2ZUM2h6DQo+ID4gPiA+IENsYW5nOiBodHRwczovL2dvZGJvbHQub3JnL3ovUFQ1RXFLbjRj DQo+ID4gPg0KPiA+ID4gSW50ZXJlc3RpbmcuDQo+ID4gPiBJIGd1ZXNzIHRoaXMgY2FuIGJlIGZp eGVkIGJ5IG1hbnVhbGx5IGltcGxlbWVudGluZyB3aGF0IEdDQyBkb2VzLg0KPiA+ID4NCj4gPiA+ IEknbSBtb3JlIGNvbmNlcm5lZCBhYm91dCBmaW5kaW5nIGEgaGlnaC1wZXJmb3JtYW5jZSAoaW4g dGhlIGZhc3QNCj4gcGF0aCkNCj4gPiA+IDY0IGJpdCBjb3VudGVyIHNvbHV0aW9uIGZvciAzMiBi aXQgQVJNLg0KPiA+DQo+ID4gUmVhZGluZyB1cCBvbiB0aGUgdG9waWMsIGFuZCBjb250aW51aW5n IEJydWNlJ3MgZXhwZXJpbWVudCBvbiBHb2Rib2x0LA0KPiBpdCBpcyBwb3NzaWJsZSBvbiAzMiBi aXQgQVJNdjctQSB0b28sIHVzaW5nIExEUkQvU1RSRCAoTG9hZC9TdG9yZQ0KPiBSZWdpc3RlciBE dWFsKSBpbnN0cnVjdGlvbnMsIHdoaWNoIGxvYWQvc3RvcmUgNjQgYml0IGZyb20gbWVtb3J5IGlu dG8NCj4gdHdvIHJlZ2lzdGVycyBhdCBvbmNlLg0KPiA+DQo+ID4gQ2xhbmcgaXMgZW1pdHMgbW9y ZSBlZmZpY2llbnQgY29kZSB3aXRob3V0IHZvbGF0aWxlLg0KPiA+IEdDQyByZXF1aXJlcyB2b2xh dGlsZSB0byB1c2UgU1RSRC4NCj4gPg0KPiA+IENsYW5nOiBodHRwczovL2dvZGJvbHQub3JnL3ov V2pkVHE2RUtoDQo+ID4gR0NDOiBodHRwczovL2dvZGJvbHQub3JnL3ovcXE5ajdkNEVhDQo+ID4N Cj4gPiBTdW1taW5nIGl0IHVwLCBpdCBpcyBwb3NzaWJsZSB0byBpbXBsZW1lbnQgbm9uLXRlYXJp bmcgNjQgYml0IGhpZ2gtDQo+IHBlcmZvcm1hbmNlIChsb2NrbGVzcywgYmFycmllci1mcmVlKSBj b3VudGVycyBvbiB0aGUgMzIgYml0DQo+IGFyY2hpdGVjdHVyZXMgc3VwcG9ydGVkIGJ5IERQREsu DQo+ID4NCj4gPiBCdXQgdGhlIGltcGxlbWVudGF0aW9uIGlzIGJvdGggYXJjaGl0ZWN0dXJlIGFu ZCBjb21waWxlciBzcGVjaWZpYy4NCj4gPiBTbyBpdCBzZWVtcyBhICI2NCBiaXQgY291bnRlcnMi IGxpYnJhcnkgd291bGQgYmUgaGFuZHkuIChPciBhICJub24tDQo+IHRlYXJpbmcgNjQgYml0IGlu dGVnZXJzIiBsaWJyYXJ5LCBmb3Igc3VwcG9ydCBvZiB0aGUgc2lnbmVkIHZhcmlhbnQgdG9vOw0K PiBidXQgSSBkb24ndCB0aGluayB3ZSBuZWVkIHRoYXQuKQ0KPiA+IFdlIGNhbiB1c2UgdWludDY0 X3QgYXMgdGhlIHVuZGVybHlpbmcgdHlwZSBhbmQgdHlwZSBjYXN0IGluIHRoZQ0KPiBsaWJyYXJ5 ICh3aGVyZSBuZWVkZWQgYnkgdGhlIHNwZWNpZmljIGNvbXBpbGVyL2FyY2hpdGVjdHVyZSksIG9y DQo+IGludHJvZHVjZSBhIG5ldyBydGVfY3RyNjRfdCB0eXBlIHRvIGVuc3VyZSB0aGF0IGFjY2Vz c29yIGZ1bmN0aW9ucyBhcmUNCj4gYWx3YXlzIHVzZWQgYW5kIHRoZSBkZXZlbG9wZXIgZG9lc24n dCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRlYXJpbmcgb24gMzINCj4gYml0IGFyY2hpdGVjdHVyZXMu DQo+ID4NCj4gPiBUaGUgbW9zdCBzaW1wbGUgdmFyaWFudCBvZiBzdWNoIGEgbGlicmFyeSBvbmx5 IHByb3ZpZGVzIGxvYWQgYW5kIHN0b3JlDQo+IGZ1bmN0aW9ucy4gVGhlIEFQSSB3b3VsZCBsb29r IGxpa2UgdGhpczoNCj4gPg0KPiA+IHVpbnQ2NF90IGlubGluZQ0KPiA+IHJ0ZV9jdHI2NF9nZXQo Y29uc3QgcnRlX2N0cjY0X3QgKmNvbnN0IGN0cik7DQo+ID4NCj4gPiB2b2lkIGlubGluZQ0KPiA+ IHJ0ZV9jdHI2NF9zZXQocnRlX2N0cjY0X3QgKmNvbnN0IGN0ciwgY29uc3QgdWludDY0X3QgdmFs dWUpOw0KPiA+DQo+ID4gQW5kIGlmIHNvbWUgQ1BVIG9mZmVycyBzcGVjaWFsIGluc3RydWN0aW9u cyBmb3IgaW5jcmVtZW50IG9yIGFkZGl0aW9uLA0KPiBmYXN0ZXIgKHJlZ2FyZGluZyBwZXJmb3Jt YW5jZSkgYW5kL29yIG1vcmUgY29tcGFjdCAocmVnYXJkaW5nDQo+IGluc3RydWN0aW9uIG1lbW9y eSkgdGhhbiBhIHNlcXVlbmNlIG9mIGxvYWQtYWRkLXN0b3JlIGluc3RydWN0aW9uczoNCj4gPg0K PiA+IHZvaWQgaW5saW5lDQo+ID4gcnRlX2N0cjY0X2luYyhydGVfY3RyNjRfdCAqY29uc3QgY3Ry KTsNCj4gPg0KPiA+IHZvaWQgaW5saW5lDQo+ID4gcnRlX2N0cjY0X2FkZChydGVfY3RyNjRfdCAq Y29uc3QgY3RyLCBjb25zdCB1aW50NjRfdCB2YWx1ZSk7DQoNCk5vdGU6IDMyIGJpdCBhcmNoaXRl Y3R1cmVzIG1pZ2h0IGFjaGlldmUgaGlnaGVyIHBlcmZvcm1hbmNlIGlmIHRoZSAidmFsdWUiIHBh cmFtZXRlciB0byBydGVfY3RyNjRfYWRkKCkgaXMgdW5zaWduZWQgbG9uZyAob3IgdW5zaWduZWQg aW50KSBpbnN0ZWFkIG9mIHVpbnQ2NF90Lg0KDQo+ID4NCj4gPiA8ZmVhdHVyZSBjcmVlcD4NCj4g PiBBbmQgcGVyaGFwcyBhdG9taWMgdmFyaWFudHMgb2YgYWxsIHRoZXNlIGZ1bmN0aW9ucywgd2l0 aCBleHBsaWNpdA0KPiBhbmQvb3IgcmVsYXhlZCBtZW1vcnkgb3JkZXJpbmcsIGZvciBjb3VudGVy cyBzaGFyZWQgYnkgbXVsdGlwbGUgdGhyZWFkcy4NCj4gPiA8L2ZlYXR1cmUgY3JlZXA+DQo+ID4N Cj4gDQo+IA0KPiBUaGlzIGtpbmQgb2Ygd2hhdCBJIGFtIGV4cGVyaW1lbnRpbmcgd2l0aCBidXQu Li4NCg0KRXhjZWxsZW50IQ0KDQo+IEludGVuZCB0byBrZWVwIHRoZSBkZXRhaWxzIG9mIHRoZSBj b3VudGVycyByZWFkIGFuZCB1cGRhdGUgaW4gb25lIGZpbGUNCj4gYW5kIG5vdCBhcyBpbmxpbmVz Lg0KDQpQbGVhc2Ugbm90ZSB0aGF0IHRyYWZmaWMgbWFuYWdlbWVudCBhcHBsaWNhdGlvbnMgbWFp bnRhaW4gbWFueSBjb3VudGVycyAoZS5nLiBwZXItZmxvdywgcGVyLXN1YnNjcmliZXIgYW5kIHBl ci1saW5rIHBhY2tldCBhbmQgYnl0ZSBjb3VudGVycywgc29tZSBhbHNvIHBlciBRb1MgY2xhc3Mp LCBzbyBydGVfY3RyNjRfYWRkKCkgbXVzdCBoYXZlIHRoZSBoaWdoZXN0IHBlcmZvcm1hbmNlIHRl Y2huaWNhbGx5IHBvc3NpYmxlLg0KDQpGb3IgcmVmZXJlbmNlLCB0aGUgcGFja2V0IHNjaGVkdWxp bmcgY29kZSBpbiBvdXIgYXBwbGljYXRpb24gdXBkYXRlcyAyOCBzdGF0aXN0aWNzIGNvdW50ZXJz IHBlciBidXJzdCBvZiBwYWNrZXRzLiAoSW4gYWRkaXRpb24gdG8gaW50ZXJuYWwgc3RhdGUgdmFy aWFibGVzIGZvciBlLmcuIHF1ZXVlIGxlbmdodHMuKQ0KDQpGdXJ0aGVybW9yZSwgb3VyIGFwcGxp Y2F0aW9uIHByb2Nlc3NlcyBhbmQgZGlzcGxheXMgbGl2ZSBzdGF0aXN0aWNzIHdpdGggb25lIHNl Y29uZCBncmFudWxhcml0eSwgdXNpbmcgYSBzZXBhcmF0ZSB0aHJlYWQuIEFsdGhvdWdoIHN0YXRp c3RpY3MgcHJvY2Vzc2luZyBpcyBub3QgcGFydCBvZiB0aGUgZmFzdCBwYXRoLCB0aGUgc2hlZXIg bnVtYmVyIG9mIGNvdW50ZXJzIHByb2Nlc3NlZCByZXF1aXJlcyBoaWdoIHBlcmZvcm1hbmNlIHJl YWQgYWNjZXNzIHRvIHRob3NlIGNvdW50ZXJzLg0KDQoNCjxtb3JlIGZlYXR1cmUgY3JlZXA+DQpT b21lIGdyb3VwcyBvZiBjb3VudGVycyBhcmUgbWFpbnRhaW5lZCBsb2NhbGx5IGluIHRoZSBpbm5l ciBsb29wLCBhbmQgdGhlbiBhZGRlZCBpbiBidWxrIHRvIHRoZSAicHVibGljIiBzdGF0aXN0aWNz IGFmdGVyd2FyZHMuIENvbmNlcHR1YWxseToNCg0Kc3RydWN0IHN0YXRzX3Blcl9wcmlvIHsNCgl1 aW50NjRfdAlmb3J3YXJkZWRfYnl0ZXM7DQoJdWludDY0X3QJZm9yd2FyZGVkX3BhY2tldHM7DQoJ dWludDY0X3QJbWFya2VkX2J5dGVzOw0KCXVpbnQ2NF90CW1hcmtlZF9wYWNrZXRzOw0KCXVpbnQ2 NF90CWRyb3BwZWRfYnl0ZXM7DQoJdWludDY0X3QJZHJvcHBlZF9wYWNrZXRzOw0KfTsNCg0KSWYg dGhpcyBpcyBhIGNvbW1vbiBkZXNpZ24gcGF0dGVybiBpbiBEUERLIChkcml2ZXJzLCBsaWJyYXJp ZXMgYW5kL29yIGFwcGxpY2F0aW9ucyksIHBlcmhhcHMgYWxzbyBwcm92aWRlIGEgcGVyZm9ybWFu Y2Ugb3B0aW1pemVkIGZ1bmN0aW9uIGZvciBhcmNoaXRlY3R1cmVzIG9mZmVyaW5nIHZlY3RvciBp bnN0cnVjdGlvbnM6DQoNCnZvaWQgaW5saW5lDQpydGVfY3RyNjRfYWRkX2J1bGsoDQoJCXJ0ZV9j dHI2NF90ICpjb25zdCBjdHJzLA0KCQljb25zdCB1bnNpZ25lZCBsb25nICpjb25zdCB2YWx1ZXMs DQoJCWNvbnN0IHVuc2lnbmVkIGludCBuIC8qIGNvbXBpbGUgdGltZSBjb25zdGFudCAqLyk7DQoN ClRoaXMgc2xpZ2h0bHkgcmVzZW1ibGVzIHRoZSBMaW51eCBrZXJuZWwncyBkZXNpZ24gcGF0dGVy biwgd2hlcmUgY291bnRlcnMgYXJlIHVwZGF0ZWQgaW4gYnVsaywgcHJvdGVjdGVkIGJ5IGEgY29t bW9uIGxvY2sgZm9yIHRoZSBidWxrIHVwZGF0ZS4gKEhvd2V2ZXIsIERQREsgaGFzIG5vIGxvY2ss IHNvIHRoZSBtb3RpdmF0aW9uIGZvciBvcHRpbWl6aW5nIGZvciB0aGlzIGRlc2lnbiBwYXR0ZXJu IGlzIG9ubHkgIm5pY2UgdG8gaGF2ZSIuKQ0KDQpQUzoNCk1hbnkgRFBESyBhcHBsaWNhdGlvbnMg YXJlIDY0IGJpdCBvbmx5LCBpbmNsdWRpbmcgdGhlIFNtYXJ0U2hhcmUgYXBwbGlhbmNlcywgYW5k IGNhbiBlYXNpbHkgbWFuYWdlIDY0IGJpdCBjb3VudGVycyB3aXRob3V0IGFsbCB0aGlzLg0KSG93 ZXZlciwgaWYgdGhlIERQREsgcHJvamVjdCBzdGlsbCBjb25zaWRlcnMgMzIgYml0IGFyY2hpdGVj dHVyZXMgZmlyc3QgY2xhc3MgY2l0aXplbnMsIDY0IGJpdCBjb3VudGVycyBzaG91bGQgaGF2ZSBo aWdoIHBlcmZvcm1hbmNlIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzIHRvby4NCg0K