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 73B06A04AD; Mon, 24 Jan 2022 18:20:53 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EB9DD4115D; Mon, 24 Jan 2022 18:20:52 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id B0C5140040 for ; Mon, 24 Jan 2022 18:20:50 +0100 (CET) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH v2] mempool: test performance with constant n X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Mon, 24 Jan 2022 18:20:49 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D86E29@smartserver.smartshare.dk> In-Reply-To: <20220124145953.14281-1-olivier.matz@6wind.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v2] mempool: test performance with constant n Thread-Index: AdgRMxTGcP8fCpRhR7ajOmzYzN+W6gABv4aQ References: <20220119113732.40167-1-mb@smartsharesystems.com> <20220124145953.14281-1-olivier.matz@6wind.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Olivier Matz" , Cc: , , , 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 PiBGcm9tOiBPbGl2aWVyIE1hdHogW21haWx0bzpvbGl2aWVyLm1hdHpANndpbmQuY29tXQ0KPiBT ZW50OiBNb25kYXksIDI0IEphbnVhcnkgMjAyMiAxNi4wMA0KPiANCj4gRnJvbTogTW9ydGVuIEJy w7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gDQo+ICJXaGF0IGdldHMgbWVhc3Vy ZWQgZ2V0cyBkb25lLiINCj4gDQo+IFRoaXMgcGF0Y2ggYWRkcyBtZW1wb29sIHBlcmZvcm1hbmNl IHRlc3RzIHdoZXJlIHRoZSBudW1iZXIgb2Ygb2JqZWN0cw0KPiB0bw0KPiBwdXQgYW5kIGdldCBp cyBjb25zdGFudCBhdCBjb21waWxlIHRpbWUsIHdoaWNoIG1heSBzaWduaWZpY2FudGx5DQo+IGlt cHJvdmUNCj4gdGhlIHBlcmZvcm1hbmNlIG9mIHRoZXNlIGZ1bmN0aW9ucy4gWypdDQo+IA0KPiBB bHNvLCBpdCBpcyBlbnN1cmVkIHRoYXQgdGhlIGFycmF5IGhvbGRpbmcgdGhlIG9iamVjdCB1c2Vk IGZvciB0ZXN0aW5nDQo+IGlzIGNhY2hlIGxpbmUgYWxpZ25lZCwgZm9yIG1heGltdW0gcGVyZm9y bWFuY2UuDQo+IA0KPiBBbmQgZmluYWxseSwgdGhlIGZvbGxvd2luZyBlbnRyaWVzIGFyZSBhZGRl ZCB0byB0aGUgbGlzdCBvZiB0ZXN0czoNCj4gLSBOdW1iZXIgb2Yga2VwdCBvYmplY3RzOiA1MTIN Cj4gLSBOdW1iZXIgb2Ygb2JqZWN0cyB0byBnZXQgYW5kIHRvIHB1dDogVGhlIG51bWJlciBvZiBw b2ludGVycyBmaXR0aW5nDQo+ICAgaW50byBhIGNhY2hlIGxpbmUsIGkuZS4gOCBvciAxNg0KPiAN Cj4gWypdIFNvbWUgZXhhbXBsZSBwZXJmb3JtYW5jZSB0ZXN0ICh3aXRoIGNhY2hlKSByZXN1bHRz Og0KPiANCj4gZ2V0X2J1bGs9NCBwdXRfYnVsaz00IGtlZXA9MTI4IGNvbnN0YW50X249ZmFsc2Ug cmF0ZV9wZXJzZWM9MjgwNDgwOTcyDQo+IGdldF9idWxrPTQgcHV0X2J1bGs9NCBrZWVwPTEyOCBj b25zdGFudF9uPXRydWUgIHJhdGVfcGVyc2VjPTYyMjE1OTQ2Mg0KPiANCj4gZ2V0X2J1bGs9OCBw dXRfYnVsaz04IGtlZXA9MTI4IGNvbnN0YW50X249ZmFsc2UgcmF0ZV9wZXJzZWM9NDc3OTY3MTU1 DQo+IGdldF9idWxrPTggcHV0X2J1bGs9OCBrZWVwPTEyOCBjb25zdGFudF9uPXRydWUgIHJhdGVf cGVyc2VjPTkxNzU4MjY0Mw0KPiANCj4gZ2V0X2J1bGs9MzIgcHV0X2J1bGs9MzIga2VlcD0zMiBj b25zdGFudF9uPWZhbHNlIHJhdGVfcGVyc2VjPTg3MTI0ODY5MQ0KPiBnZXRfYnVsaz0zMiBwdXRf YnVsaz0zMiBrZWVwPTMyIGNvbnN0YW50X249dHJ1ZSByYXRlX3BlcnNlYz0xMTM0MDIxODM2DQo+ IA0KPiBTaWduZWQtb2ZmLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMu Y29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5j b20+DQo+IC0tLQ0KPiANCj4gSGkgTW9ydGVuLA0KPiANCj4gSGVyZSBpcyB0aGUgdXBkYXRlZCBw YXRjaC4NCj4gDQo+IEkgbGF1bmNoZWQgdGhlIG1lbXBvb2xfcGVyZiBvbiBteSBkZXNrdG9wIG1h Y2hpbmUsIGJ1dCBJIGRvbid0DQo+IHJlcHJvZHVjZSB0aGUgbnVtYmVyczogY29uc3RhbnQgb3IN Cj4gbm9uLWNvbnN0YW50IGdpdmUgYWxtb3N0IHRoZSBzYW1lIHJhdGUgb24gbXkgbWFjaGluZSAo aXQncyBldmVuIHdvcnN0DQo+IHdpdGggY29uc3RhbnRzKS4gSSB0ZXN0ZWQgd2l0aA0KPiB5b3Vy IGluaXRpYWwgcGF0Y2ggYW5kIHdpdGggdGhpcyBvbmUuIENhbiB5b3UgcGxlYXNlIHRyeSB0aGlz IHBhdGNoLA0KPiBhbmQvb3IgZ2l2ZSBzb21lIGRldGFpbHMgYWJvdXQNCj4geW91ciB0ZXN0IGVu dmlyb25tZW50Pw0KDQpUZXN0IGVudmlyb25tZW50Og0KVk13YXJlIHZpcnR1YWwgbWFjaGluZSBy dW5uaW5nIFVidW50dSAyMC4wNC4zIExUUy4NCjQgQ1BVcyBhbmQgOCBHQiBSQU0gYXNzaWduZWQu DQpUaGUgcGh5c2ljYWwgQ1BVIGlzIGEgWGVvbiBFNS0yNjIwIHY0IHdpdGggcGxlbnR5IG9mIFJB TS4NCkFsdGhvdWdoIG90aGVyIFZNcyBhcmUgcnVubmluZyBvbiB0aGUgc2FtZSBzZXJ2ZXIsIGl0 IGlzIG5vdCB2ZXJ5IG92ZXJzdWJzY3JpYmVkLg0KDQpIdWdlcGFnZXMgZXN0YWJsaXNoZWQgd2l0 aDoNCnVzZXJ0b29scy9kcGRrLWh1Z2VwYWdlcy5weSAtcCAyTSAtLXNldHVwIDJHDQoNCkJ1aWxk IHN0ZXBzOg0KbWVzb24gLURwbGF0Zm9ybT1nZW5lcmljIHdvcmsNCmNkIHdvcmsNCm5pbmphDQoN Cj4gSGVyZSBpcyB3aGF0IEkgZ2V0Og0KPiANCj4gd2l0aCB5b3VyIHBhdGNoOg0KPiBtZW1wb29s X2F1dG90ZXN0IGNhY2hlPTUxMiBjb3Jlcz0xIG5fZ2V0X2J1bGs9OCBuX3B1dF9idWxrPTggbl9r ZWVwPTEyOA0KPiBjb25zdGFudF9uPWZhbHNlIHJhdGVfcGVyc2VjPTE1MjYyMDIzNg0KPiBtZW1w b29sX2F1dG90ZXN0IGNhY2hlPTUxMiBjb3Jlcz0xIG5fZ2V0X2J1bGs9OCBuX3B1dF9idWxrPTgg bl9rZWVwPTEyOA0KPiBjb25zdGFudF9uPXRydWUgcmF0ZV9wZXJzZWM9MTQ0NzE2NTk1DQo+IG1l bXBvb2xfYXV0b3Rlc3QgY2FjaGU9NTEyIGNvcmVzPTIgbl9nZXRfYnVsaz04IG5fcHV0X2J1bGs9 OCBuX2tlZXA9MTI4DQo+IGNvbnN0YW50X249ZmFsc2UgcmF0ZV9wZXJzZWM9MzA2OTk2ODM4DQo+ IG1lbXBvb2xfYXV0b3Rlc3QgY2FjaGU9NTEyIGNvcmVzPTIgbl9nZXRfYnVsaz04IG5fcHV0X2J1 bGs9OCBuX2tlZXA9MTI4DQo+IGNvbnN0YW50X249dHJ1ZSByYXRlX3BlcnNlYz0yODczNzUzNTkN Cj4gbWVtcG9vbF9hdXRvdGVzdCBjYWNoZT01MTIgY29yZXM9MTIgbl9nZXRfYnVsaz04IG5fcHV0 X2J1bGs9OA0KPiBuX2tlZXA9MTI4IGNvbnN0YW50X249ZmFsc2UgcmF0ZV9wZXJzZWM9OTc3NjI2 NzIzDQo+IG1lbXBvb2xfYXV0b3Rlc3QgY2FjaGU9NTEyIGNvcmVzPTEyIG5fZ2V0X2J1bGs9OCBu X3B1dF9idWxrPTgNCj4gbl9rZWVwPTEyOCBjb25zdGFudF9uPXRydWUgcmF0ZV9wZXJzZWM9OTYz MTAzOTQ0DQoNCk15IHRlc3QgcmVzdWx0cyB3ZXJlIHdpdGggYW4gZXhwZXJpbWVudGFsLCBvcHRp bWl6ZWQgdmVyc2lvbiBvZiB0aGUgbWVtcG9vbCBsaWJyYXJ5LCB3aGljaCBzaG93ZWQgYSBsYXJn ZXIgZGlmZmVyZW5jZS4gKFRoaXMgd2FzIHRoZSByZWFzb24gZm9yIHVwZGF0aW5nIHRoZSBwZXJm IHRlc3QgLSB0byBtZWFzdXJlIHRoZSBlZmZlY3RzIG9mIG9wdGltaXppbmcgdGhlIG1lbXBvb2wg bGlicmFyeS4pDQoNCkhvd2V2ZXIsIHRlc3RpbmcgdGhlIHBhdGNoICh2ZXJzaW9uIDEpIHdpdGgg YSBicmFuZCBuZXcgZ2l0IGNoZWNrb3V0IHN0aWxsIHNob3dzIGEgaHVnZSBkaWZmZXJlbmNlLCBl LmcuOg0KDQptZW1wb29sX2F1dG90ZXN0IGNhY2hlPTUxMiBjb3Jlcz0xIG5fZ2V0X2J1bGs9OCBu X3B1dF9idWxrPTggbl9rZWVwPTEyOCBjb25zdGFudF9uPWZhbHNlIHJhdGVfcGVyc2VjPTUwMTAw OTYxMg0KbWVtcG9vbF9hdXRvdGVzdCBjYWNoZT01MTIgY29yZXM9MSBuX2dldF9idWxrPTggbl9w dXRfYnVsaz04IG5fa2VlcD0xMjggY29uc3RhbnRfbj10cnVlIHJhdGVfcGVyc2VjPTc5OTAxNDkx Mg0KDQpZb3Ugc2hvdWxkIGFsc28gc2VlIGEgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSB3aGVuIHRl c3RpbmcuDQoNCk15IHJhdGVfcGVyc2VjIHdpdGhvdXQgY29uc3RhbnQgbiBpcyAzIHggeW91cnMg KDUwMSBNIHZzLiAxNTYgTSBvcHMvcyksIHNvIHRoZSBiYXNlbGluZSBzZWVtcyB3cm9uZyEgSSBk b24ndCB0aGluayBvdXIgc2VydmVyIHJpZyBpcyBzbyBtdWNoIGZhc3RlciB0aGFuIHlvdXIgZGVz a3RvcCBtYWNoaW5lLiBQZXJoYXBzIG1lbXBvb2wgZGVidWcsIHRlbGVtZXRyeSBvciBvdGhlciBi YWNrZ3JvdW5kIG5vaXNlIGlzIHBvbGx1dGluZyB5b3VyIHRlc3QuDQoNCj4gDQo+IHdpdGggdGhp cyBwYXRjaDoNCj4gbWVtcG9vbF9hdXRvdGVzdCBjYWNoZT01MTIgY29yZXM9MSBuX2dldF9idWxr PTggbl9wdXRfYnVsaz04IG5fa2VlcD0xMjgNCj4gY29uc3RhbnRfbj0wIHJhdGVfcGVyc2VjPTE1 NjQ2MDY0Ng0KPiBtZW1wb29sX2F1dG90ZXN0IGNhY2hlPTUxMiBjb3Jlcz0xIG5fZ2V0X2J1bGs9 OCBuX3B1dF9idWxrPTggbl9rZWVwPTEyOA0KPiBjb25zdGFudF9uPTEgcmF0ZV9wZXJzZWM9MTQy MTczNzk4DQo+IG1lbXBvb2xfYXV0b3Rlc3QgY2FjaGU9NTEyIGNvcmVzPTIgbl9nZXRfYnVsaz04 IG5fcHV0X2J1bGs9OCBuX2tlZXA9MTI4DQo+IGNvbnN0YW50X249MCByYXRlX3BlcnNlYz0zMTI0 MTAxMTENCj4gbWVtcG9vbF9hdXRvdGVzdCBjYWNoZT01MTIgY29yZXM9MiBuX2dldF9idWxrPTgg bl9wdXRfYnVsaz04IG5fa2VlcD0xMjgNCj4gY29uc3RhbnRfbj0xIHJhdGVfcGVyc2VjPTI4MTY5 OTk0Mg0KPiBtZW1wb29sX2F1dG90ZXN0IGNhY2hlPTUxMiBjb3Jlcz0xMiBuX2dldF9idWxrPTgg bl9wdXRfYnVsaz04DQo+IG5fa2VlcD0xMjggY29uc3RhbnRfbj0wIHJhdGVfcGVyc2VjPTk4MzMx NTI0Nw0KPiBtZW1wb29sX2F1dG90ZXN0IGNhY2hlPTUxMiBjb3Jlcz0xMiBuX2dldF9idWxrPTgg bl9wdXRfYnVsaz04DQo+IG5fa2VlcD0xMjggY29uc3RhbnRfbj0xIHJhdGVfcGVyc2VjPTk1MDM1 MDYzOA0KPiANCj4gDQo+IHYyOg0KPiAtIHVzZSBhIGZsYWcgaW5zdGVhZCBvZiBhIG5lZ2F0aXZl IHZhbHVlIHRvIGVuYWJsZSB0ZXN0cyB3aXRoDQo+ICAgY29tcGlsZS10aW1lIGNvbnN0YW50DQo+ IC0gdXNlIGEgc3RhdGljIGlubGluZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgbWFjcm8NCj4gLSBy ZW1vdmUgc29tZSAibm9pc2UiIChkbyBub3QgY2hhbmdlIHZhcmlhYmxlIHR5cGUgd2hlbiBub3Qg cmVxdWlyZWQpDQo+IA0KPiANCj4gVGhhbmtzLA0KPiBPbGl2aWVyDQo+IA0KPiANCj4gIGFwcC90 ZXN0L3Rlc3RfbWVtcG9vbF9wZXJmLmMgfCAxMTAgKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlv bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC90ZXN0X21lbXBvb2xfcGVyZi5jDQo+ IGIvYXBwL3Rlc3QvdGVzdF9tZW1wb29sX3BlcmYuYw0KPiBpbmRleCA4N2FkMjUxMzY3Li5jZTdj NjI0MWFiIDEwMDY0NA0KPiAtLS0gYS9hcHAvdGVzdC90ZXN0X21lbXBvb2xfcGVyZi5jDQo+ICsr KyBiL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbF9wZXJmLmMNCj4gQEAgLTEsNSArMSw2IEBADQo+ICAv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICAgKiBDb3B5cmlnaHQo YykgMjAxMC0yMDE0IEludGVsIENvcnBvcmF0aW9uDQo+ICsgKiBDb3B5cmlnaHQoYykgMjAyMiBT bWFydFNoYXJlIFN5c3RlbXMNCj4gICAqLw0KPiANCj4gICNpbmNsdWRlIDxzdHJpbmcuaD4NCj4g QEAgLTU1LDE5ICs1NiwyNCBAQA0KPiAgICoNCj4gICAqICAgICAgLSBCdWxrIGdldCBmcm9tIDEg dG8gMzINCj4gICAqICAgICAgLSBCdWxrIHB1dCBmcm9tIDEgdG8gMzINCj4gKyAqICAgICAgLSBC dWxrIGdldCBhbmQgcHV0IGZyb20gMSB0byAzMiwgY29tcGlsZSB0aW1lIGNvbnN0YW50DQo+ICAg Kg0KPiAgICogICAgLSBOdW1iZXIgb2Yga2VwdCBvYmplY3RzICgqbl9rZWVwKikNCj4gICAqDQo+ ICAgKiAgICAgIC0gMzINCj4gICAqICAgICAgLSAxMjgNCj4gKyAqICAgICAgLSA1MTINCj4gICAq Lw0KPiANCj4gICNkZWZpbmUgTiA2NTUzNg0KPiAgI2RlZmluZSBUSU1FX1MgNQ0KPiAgI2RlZmlu ZSBNRU1QT09MX0VMVF9TSVpFIDIwNDgNCj4gLSNkZWZpbmUgTUFYX0tFRVAgMTI4DQo+ICsjZGVm aW5lIE1BWF9LRUVQIDUxMg0KPiAgI2RlZmluZSBNRU1QT09MX1NJWkUNCj4gKChydGVfbGNvcmVf Y291bnQoKSooTUFYX0tFRVArUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUpKS0xKQ0KPiANCj4g Ky8qIE51bWJlciBvZiBwb2ludGVycyBmaXR0aW5nIGludG8gb25lIGNhY2hlIGxpbmUuICovDQo+ ICsjZGVmaW5lIENBQ0hFX0xJTkVfQlVSU1QgKFJURV9DQUNIRV9MSU5FX1NJWkUgLyBzaXplb2Yo dWludHB0cl90KSkNCj4gKw0KPiAgI2RlZmluZSBMT0dfRVJSKCkgcHJpbnRmKCJ0ZXN0IGZhaWxl ZCBhdCAlcygpOiVkXG4iLCBfX2Z1bmNfXywNCj4gX19MSU5FX18pDQo+ICAjZGVmaW5lIFJFVF9F UlIoKSBkbyB7CQkJCQkJCVwNCj4gIAkJTE9HX0VSUigpOwkJCQkJCVwNCj4gQEAgLTkxLDYgKzk3 LDkgQEAgc3RhdGljIHVuc2lnbmVkIG5fcHV0X2J1bGs7DQo+ICAvKiBudW1iZXIgb2Ygb2JqZWN0 cyByZXRyaWV2ZWQgZnJvbSBtZW1wb29sIGJlZm9yZSBwdXR0aW5nIHRoZW0gYmFjaw0KPiAqLw0K PiAgc3RhdGljIHVuc2lnbmVkIG5fa2VlcDsNCj4gDQo+ICsvKiB0cnVlIGlmIHdlIHdhbnQgdG8g dGVzdCB3aXRoIGNvbnN0YW50IG5fZ2V0X2J1bGsgYW5kIG5fcHV0X2J1bGsgKi8NCj4gK3N0YXRp YyBpbnQgdXNlX2NvbnN0YW50X3ZhbHVlczsNCj4gKw0KPiAgLyogbnVtYmVyIG9mIGVucXVldWVz IC8gZGVxdWV1ZXMgKi8NCj4gIHN0cnVjdCBtZW1wb29sX3Rlc3Rfc3RhdHMgew0KPiAgCXVpbnQ2 NF90IGVucV9jb3VudDsNCj4gQEAgLTExMSwxMSArMTIwLDQzIEBAIG15X29ial9pbml0KHN0cnVj dCBydGVfbWVtcG9vbCAqbXAsIF9fcnRlX3VudXNlZA0KPiB2b2lkICphcmcsDQo+ICAJKm9iam51 bSA9IGk7DQo+ICB9DQo+IA0KPiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgaW50DQo+ICt0 ZXN0X2xvb3Aoc3RydWN0IHJ0ZV9tZW1wb29sICptcCwgc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hl ICpjYWNoZSwNCj4gKwkgIHVuc2lnbmVkIGludCB4X2tlZXAsIHVuc2lnbmVkIGludCB4X2dldF9i dWxrLCB1bnNpZ25lZCBpbnQNCj4geF9wdXRfYnVsaykNCj4gK3sNCj4gKwl2b2lkICpvYmpfdGFi bGVbTUFYX0tFRVBdIF9fcnRlX2NhY2hlX2FsaWduZWQ7DQo+ICsJdW5zaWduZWQgaW50IGlkeDsN Cj4gKwl1bnNpZ25lZCBpbnQgaTsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJZm9yIChpID0gMDsg bGlrZWx5KGkgPCAoTiAvIHhfa2VlcCkpOyBpKyspIHsNCj4gKwkJLyogZ2V0IHhfa2VlcCBvYmpl Y3RzIGJ5IGJ1bGsgb2YgeF9nZXRfYnVsayAqLw0KPiArCQlmb3IgKGlkeCA9IDA7IGlkeCA8IHhf a2VlcDsgaWR4ICs9IHhfZ2V0X2J1bGspIHsNCj4gKwkJCXJldCA9IHJ0ZV9tZW1wb29sX2dlbmVy aWNfZ2V0KG1wLA0KPiArCQkJCQkJICAgICAgJm9ial90YWJsZVtpZHhdLA0KPiArCQkJCQkJICAg ICAgeF9nZXRfYnVsaywNCj4gKwkJCQkJCSAgICAgIGNhY2hlKTsNCj4gKwkJCWlmICh1bmxpa2Vs eShyZXQgPCAwKSkgew0KPiArCQkJCXJ0ZV9tZW1wb29sX2R1bXAoc3Rkb3V0LCBtcCk7DQo+ICsJ CQkJcmV0dXJuIHJldDsNCj4gKwkJCX0NCj4gKwkJfQ0KPiArDQo+ICsJCS8qIHB1dCB0aGUgb2Jq ZWN0cyBiYWNrIGJ5IGJ1bGsgb2YgeF9wdXRfYnVsayAqLw0KPiArCQlmb3IgKGlkeCA9IDA7IGlk eCA8IHhfa2VlcDsgaWR4ICs9IHhfcHV0X2J1bGspIHsNCj4gKwkJCXJ0ZV9tZW1wb29sX2dlbmVy aWNfcHV0KG1wLA0KPiArCQkJCQkJJm9ial90YWJsZVtpZHhdLA0KPiArCQkJCQkJeF9wdXRfYnVs aywNCj4gKwkJCQkJCWNhY2hlKTsNCj4gKwkJfQ0KPiArCX0NCj4gKw0KPiArCXJldHVybiAwOw0K PiArfQ0KPiArDQo+ICBzdGF0aWMgaW50DQo+ICBwZXJfbGNvcmVfbWVtcG9vbF90ZXN0KHZvaWQg KmFyZykNCj4gIHsNCj4gLQl2b2lkICpvYmpfdGFibGVbTUFYX0tFRVBdOw0KPiAtCXVuc2lnbmVk IGksIGlkeDsNCj4gIAlzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wID0gYXJnOw0KPiAgCXVuc2lnbmVk IGxjb3JlX2lkID0gcnRlX2xjb3JlX2lkKCk7DQo+ICAJaW50IHJldCA9IDA7DQo+IEBAIC0xMzks NiArMTgwLDkgQEAgcGVyX2xjb3JlX21lbXBvb2xfdGVzdCh2b2lkICphcmcpDQo+ICAJCUdPVE9f RVJSKHJldCwgb3V0KTsNCj4gIAlpZiAoKChuX2tlZXAgLyBuX3B1dF9idWxrKSAqIG5fcHV0X2J1 bGspICE9IG5fa2VlcCkNCj4gIAkJR09UT19FUlIocmV0LCBvdXQpOw0KPiArCS8qIGZvciBjb25z dGFudCBuLCBuX2dldF9idWxrIGFuZCBuX3B1dF9idWxrIG11c3QgYmUgdGhlIHNhbWUgKi8NCj4g KwlpZiAodXNlX2NvbnN0YW50X3ZhbHVlcyAmJiBuX3B1dF9idWxrICE9IG5fZ2V0X2J1bGspDQo+ ICsJCUdPVE9fRVJSKHJldCwgb3V0KTsNCj4gDQo+ICAJc3RhdHNbbGNvcmVfaWRdLmVucV9jb3Vu dCA9IDA7DQo+IA0KPiBAQCAtMTQ5LDMxICsxOTMsMjMgQEAgcGVyX2xjb3JlX21lbXBvb2xfdGVz dCh2b2lkICphcmcpDQo+ICAJc3RhcnRfY3ljbGVzID0gcnRlX2dldF90aW1lcl9jeWNsZXMoKTsN Cj4gDQo+ICAJd2hpbGUgKHRpbWVfZGlmZi9oeiA8IFRJTUVfUykgew0KPiAtCQlmb3IgKGkgPSAw OyBsaWtlbHkoaSA8IChOL25fa2VlcCkpOyBpKyspIHsNCj4gLQkJCS8qIGdldCBuX2tlZXAgb2Jq ZWN0cyBieSBidWxrIG9mIG5fYnVsayAqLw0KPiAtCQkJaWR4ID0gMDsNCj4gLQkJCXdoaWxlIChp ZHggPCBuX2tlZXApIHsNCj4gLQkJCQlyZXQgPSBydGVfbWVtcG9vbF9nZW5lcmljX2dldChtcCwN Cj4gLQkJCQkJCQkgICAgICAmb2JqX3RhYmxlW2lkeF0sDQo+IC0JCQkJCQkJICAgICAgbl9nZXRf YnVsaywNCj4gLQkJCQkJCQkgICAgICBjYWNoZSk7DQo+IC0JCQkJaWYgKHVubGlrZWx5KHJldCA8 IDApKSB7DQo+IC0JCQkJCXJ0ZV9tZW1wb29sX2R1bXAoc3Rkb3V0LCBtcCk7DQo+IC0JCQkJCS8q IGluIHRoaXMgY2FzZSwgb2JqZWN0cyBhcmUgbG9zdC4uLiAqLw0KPiAtCQkJCQlHT1RPX0VSUihy ZXQsIG91dCk7DQo+IC0JCQkJfQ0KPiAtCQkJCWlkeCArPSBuX2dldF9idWxrOw0KPiAtCQkJfQ0K PiArCQlpZiAoIXVzZV9jb25zdGFudF92YWx1ZXMpDQo+ICsJCQlyZXQgPSB0ZXN0X2xvb3AobXAs IGNhY2hlLCBuX2tlZXAsIG5fZ2V0X2J1bGssDQo+IG5fcHV0X2J1bGspOw0KPiArCQllbHNlIGlm IChuX2dldF9idWxrID09IDEpDQo+ICsJCQlyZXQgPSB0ZXN0X2xvb3AobXAsIGNhY2hlLCBuX2tl ZXAsIDEsIDEpOw0KPiArCQllbHNlIGlmIChuX2dldF9idWxrID09IDQpDQo+ICsJCQlyZXQgPSB0 ZXN0X2xvb3AobXAsIGNhY2hlLCBuX2tlZXAsIDQsIDQpOw0KPiArCQllbHNlIGlmIChuX2dldF9i dWxrID09IENBQ0hFX0xJTkVfQlVSU1QpDQo+ICsJCQlyZXQgPSB0ZXN0X2xvb3AobXAsIGNhY2hl LCBuX2tlZXAsDQo+ICsJCQkJCUNBQ0hFX0xJTkVfQlVSU1QsIENBQ0hFX0xJTkVfQlVSU1QpOw0K PiArCQllbHNlIGlmIChuX2dldF9idWxrID09IDMyKQ0KPiArCQkJcmV0ID0gdGVzdF9sb29wKG1w LCBjYWNoZSwgbl9rZWVwLCAzMiwgMzIpOw0KPiArCQllbHNlDQo+ICsJCQlyZXQgPSAtMTsNCj4g Kw0KPiArCQlpZiAocmV0IDwgMCkNCj4gKwkJCUdPVE9fRVJSKHJldCwgb3V0KTsNCj4gDQo+IC0J CQkvKiBwdXQgdGhlIG9iamVjdHMgYmFjayAqLw0KPiAtCQkJaWR4ID0gMDsNCj4gLQkJCXdoaWxl IChpZHggPCBuX2tlZXApIHsNCj4gLQkJCQlydGVfbWVtcG9vbF9nZW5lcmljX3B1dChtcCwgJm9i al90YWJsZVtpZHhdLA0KPiAtCQkJCQkJCW5fcHV0X2J1bGssDQo+IC0JCQkJCQkJY2FjaGUpOw0K PiAtCQkJCWlkeCArPSBuX3B1dF9idWxrOw0KPiAtCQkJfQ0KPiAtCQl9DQo+ICAJCWVuZF9jeWNs ZXMgPSBydGVfZ2V0X3RpbWVyX2N5Y2xlcygpOw0KPiAgCQl0aW1lX2RpZmYgPSBlbmRfY3ljbGVz IC0gc3RhcnRfY3ljbGVzOw0KPiAgCQlzdGF0c1tsY29yZV9pZF0uZW5xX2NvdW50ICs9IE47DQo+ IEBAIC0yMDMsMTAgKzIzOSwxMCBAQCBsYXVuY2hfY29yZXMoc3RydWN0IHJ0ZV9tZW1wb29sICpt cCwgdW5zaWduZWQgaW50DQo+IGNvcmVzKQ0KPiAgCW1lbXNldChzdGF0cywgMCwgc2l6ZW9mKHN0 YXRzKSk7DQo+IA0KPiAgCXByaW50ZigibWVtcG9vbF9hdXRvdGVzdCBjYWNoZT0ldSBjb3Jlcz0l dSBuX2dldF9idWxrPSV1ICINCj4gLQkgICAgICAgIm5fcHV0X2J1bGs9JXUgbl9rZWVwPSV1ICIs DQo+ICsJICAgICAgICJuX3B1dF9idWxrPSV1IG5fa2VlcD0ldSBjb25zdGFudF9uPSV1ICIsDQo+ ICAJICAgICAgIHVzZV9leHRlcm5hbF9jYWNoZSA/DQo+ICAJCSAgIGV4dGVybmFsX2NhY2hlX3Np emUgOiAodW5zaWduZWQpIG1wLT5jYWNoZV9zaXplLA0KPiAtCSAgICAgICBjb3Jlcywgbl9nZXRf YnVsaywgbl9wdXRfYnVsaywgbl9rZWVwKTsNCj4gKwkgICAgICAgY29yZXMsIG5fZ2V0X2J1bGss IG5fcHV0X2J1bGssIG5fa2VlcCwNCj4gdXNlX2NvbnN0YW50X3ZhbHVlcyk7DQo+IA0KPiAgCWlm IChydGVfbWVtcG9vbF9hdmFpbF9jb3VudChtcCkgIT0gTUVNUE9PTF9TSVpFKSB7DQo+ICAJCXBy aW50ZigibWVtcG9vbCBpcyBub3QgZnVsbFxuIik7DQo+IEBAIC0yNTMsOSArMjg5LDkgQEAgbGF1 bmNoX2NvcmVzKHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsIHVuc2lnbmVkIGludA0KPiBjb3JlcykN Cj4gIHN0YXRpYyBpbnQNCj4gIGRvX29uZV9tZW1wb29sX3Rlc3Qoc3RydWN0IHJ0ZV9tZW1wb29s ICptcCwgdW5zaWduZWQgaW50IGNvcmVzKQ0KPiAgew0KPiAtCXVuc2lnbmVkIGJ1bGtfdGFiX2dl dFtdID0geyAxLCA0LCAzMiwgMCB9Ow0KPiAtCXVuc2lnbmVkIGJ1bGtfdGFiX3B1dFtdID0geyAx LCA0LCAzMiwgMCB9Ow0KPiAtCXVuc2lnbmVkIGtlZXBfdGFiW10gPSB7IDMyLCAxMjgsIDAgfTsN Cj4gKwl1bnNpZ25lZCBpbnQgYnVsa190YWJfZ2V0W10gPSB7IDEsIDQsIENBQ0hFX0xJTkVfQlVS U1QsIDMyLCAwIH07DQo+ICsJdW5zaWduZWQgaW50IGJ1bGtfdGFiX3B1dFtdID0geyAxLCA0LCBD QUNIRV9MSU5FX0JVUlNULCAzMiwgMCB9Ow0KPiArCXVuc2lnbmVkIGludCBrZWVwX3RhYltdID0g eyAzMiwgMTI4LCA1MTIsIDAgfTsNCj4gIAl1bnNpZ25lZCAqZ2V0X2J1bGtfcHRyOw0KPiAgCXVu c2lnbmVkICpwdXRfYnVsa19wdHI7DQo+ICAJdW5zaWduZWQgKmtlZXBfcHRyOw0KPiBAQCAtMjY1 LDEzICszMDEsMjEgQEAgZG9fb25lX21lbXBvb2xfdGVzdChzdHJ1Y3QgcnRlX21lbXBvb2wgKm1w LA0KPiB1bnNpZ25lZCBpbnQgY29yZXMpDQo+ICAJCWZvciAocHV0X2J1bGtfcHRyID0gYnVsa190 YWJfcHV0OyAqcHV0X2J1bGtfcHRyOw0KPiBwdXRfYnVsa19wdHIrKykgew0KPiAgCQkJZm9yIChr ZWVwX3B0ciA9IGtlZXBfdGFiOyAqa2VlcF9wdHI7IGtlZXBfcHRyKyspIHsNCj4gDQo+ICsJCQkJ dXNlX2NvbnN0YW50X3ZhbHVlcyA9IDA7DQo+ICAJCQkJbl9nZXRfYnVsayA9ICpnZXRfYnVsa19w dHI7DQo+ICAJCQkJbl9wdXRfYnVsayA9ICpwdXRfYnVsa19wdHI7DQo+ICAJCQkJbl9rZWVwID0g KmtlZXBfcHRyOw0KPiAgCQkJCXJldCA9IGxhdW5jaF9jb3JlcyhtcCwgY29yZXMpOw0KPiAtDQo+ ICAJCQkJaWYgKHJldCA8IDApDQo+ICAJCQkJCXJldHVybiAtMTsNCj4gKw0KPiArCQkJCS8qIHJl cGxheSB0ZXN0IHdpdGggY29uc3RhbnQgdmFsdWVzICovDQo+ICsJCQkJaWYgKG5fZ2V0X2J1bGsg PT0gbl9wdXRfYnVsaykgew0KPiArCQkJCQl1c2VfY29uc3RhbnRfdmFsdWVzID0gMTsNCj4gKwkJ CQkJcmV0ID0gbGF1bmNoX2NvcmVzKG1wLCBjb3Jlcyk7DQo+ICsJCQkJCWlmIChyZXQgPCAwKQ0K PiArCQkJCQkJcmV0dXJuIC0xOw0KPiArCQkJCX0NCj4gIAkJCX0NCj4gIAkJfQ0KPiAgCX0NCj4g LS0NCj4gMi4zMC4yDQoNCg==