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 B01A743DF8; Thu, 4 Apr 2024 11:26:48 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A052F40268; Thu, 4 Apr 2024 11:26:48 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 7ECA04025D for ; Thu, 4 Apr 2024 11:26:47 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 63ADF20CEE; Thu, 4 Apr 2024 11:26:47 +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: [PATCH v7] mempool: test performance with larger bursts Date: Thu, 4 Apr 2024 11:26:45 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F359@smartserver.smartshare.dk> In-Reply-To: <20240302200408.6419-1-mb@smartsharesystems.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v7] mempool: test performance with larger bursts Thread-Index: Adps3MpEU0OdMYeYQDO0PLkH+gZXDgZlQHEg References: <20240121045249.22465-1-mb@smartsharesystems.com> <20240302200408.6419-1-mb@smartsharesystems.com> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: , , 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 UElORyBmb3IgcmV2aWV3LiBUaGlzIHBhdGNoIGlzIHJlbGF0aXZlbHkgdHJpdmlhbC4NCg0KPiBG cm9tOiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRvOm1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbV0NCj4g U2VudDogU2F0dXJkYXksIDIgTWFyY2ggMjAyNCAyMS4wNA0KPiANCj4gQnVyc3RzIG9mIHVwIHRv IDY0LCAxMjggYW5kIDI1NiBwYWNrZXRzIGFyZSBub3QgdW5jb21tb24sIHNvIGluY3JlYXNlIHRo ZQ0KPiBtYXhpbXVtIHRlc3RlZCBnZXQgYW5kIHB1dCBidXJzdCBzaXplcyBmcm9tIDMyIHRvIDI1 Ni4NCj4gRm9yIGNvbnZlbmllbmNlLCBhbHNvIHRlc3QgZ2V0IGFuZCBwdXQgYnVyc3Qgc2l6ZXMg b2YNCj4gUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUuDQo+IA0KPiBTb21lIGFwcGxpY2F0aW9u cyBrZWVwIG1vcmUgdGhhbiA1MTIgb2JqZWN0cywgc28gaW5jcmVhc2UgdGhlIG1heGltdW0NCj4g bnVtYmVyIG9mIGtlcHQgb2JqZWN0cyBmcm9tIDUxMiB0byAzMjc2OCwgc3RpbGwgaW4ganVtcHMg b2YgZmFjdG9yIGZvdXIuDQo+IFRoaXMgZXhjZWVkcyB0aGUgdHlwaWNhbCBtZW1wb29sIGNhY2hl IHNpemUgb2YgNTEyIG9iamVjdHMsIHNvIHRoZSB0ZXN0DQo+IGFsc28gZXhlcmNpc2VzIHRoZSBt ZW1wb29sIGRyaXZlci4NCj4gDQo+IEluY3JlYXNlZCB0aGUgcHJlY2lzaW9uIG9mIHJhdGVfcGVy c2VjIGNhbGN1bGF0aW9uIGJ5IHRpbWluZyB0aGUgYWN0dWFsDQo+IGR1cmF0aW9uIG9mIHRoZSB0 ZXN0LCBpbnN0ZWFkIG9mIGFzc3VtaW5nIGl0IHRvb2sgZXhhY3RseSA1IHNlY29uZHMuDQo+IA0K PiBBZGRlZCBjYWNoZSBndWFyZCB0byBwZXItbGNvcmUgc3RhdHMgc3RydWN0dXJlLg0KPiANCj4g U2lnbmVkLW9mZi1ieTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4N Cj4gQWNrZWQtYnk6IENoZW5nd2VuIEZlbmcgPGZlbmdjaGVuZ3dlbkBodWF3ZWkuY29tPg0KPiAt LS0NCj4gDQo+IHY3Og0KPiAqIEluY3JlYXNlIG1heCBidXJzdCBzaXplIHRvIDI1Ni4gKEluc3Bp cmVkIGJ5IEhvbm5hcHBhKQ0KPiB2NjoNCj4gKiBEbyBub3QgdGVzdCB3aXRoIG1vcmUgbGNvcmVz IHRoYW4gYXZhaWxhYmxlLiAoVGhvbWFzKQ0KPiB2NToNCj4gKiBJbmNyZWFzZWQgTiwgdG8gcmVk dWNlIG1lYXN1cmVtZW50IG92ZXJoZWFkIHdpdGggbGFyZ2UgbnVtYmVycyBvZiBrZXB0DQo+ICAg b2JqZWN0cy4NCj4gKiBJbmNyZWFzZWQgcHJlY2lzaW9uIG9mIHJhdGVfcGVyc2VjIGNhbGN1bGF0 aW9uLg0KPiAqIEFkZGVkIG1pc3NpbmcgY2FjaGUgZ3VhcmQgdG8gcGVyLWxjb3JlIHN0YXRzIHN0 cnVjdHVyZS4NCj4gdjQ6DQo+ICogdjMgZmFpbGVkIHRvIGFwcGx5OyBJIGhhZCBtZXNzZWQgdXAg c29tZXRoaW5nIHdpdGggZ2l0Lg0KPiAqIEFkZGVkIEFDSyBmcm9tIENoZW5nd2VuIEZlbmcuDQo+ IHYzOg0KPiAqIEluY3JlYXNlZCBtYXggbnVtYmVyIG9mIGtlcHQgb2JqZWN0cyB0byAzMjc2OC4N Cj4gKiBBZGRlZCBnZXQgYW5kIHB1dCBidXJzdCBzaXplcyBvZiBSVEVfTUVNUE9PTF9DQUNIRV9N QVhfU0laRSBvYmplY3RzLg0KPiAqIFByaW50IGVycm9yIGlmIHVuYWJsZSB0byBhbGxvY2F0ZSBt ZW1wb29sLg0KPiAqIEluaXRpYWxpemUgdXNlX2V4dGVybmFsX2NhY2hlIHdpdGggZWFjaCB0ZXN0 Lg0KPiAgIEEgcHJldmlvdXMgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhZCBhIGJ1Zywgd2hlcmUg YWxsIHRlc3QgcnVucw0KPiAgIGZvbGxvd2luZyB0aGUgZmlyc3Qgd291bGQgdXNlIGV4dGVybmFs IGNhY2hlLiAoQ2hlbmd3ZW4gRmVuZykNCj4gdjI6IEFkZHJlc3NlZCBmZWVkYmFjayBieSBDaGVu Z3dlbiBGZW5nDQo+ICogQWRkZWQgZ2V0IGFuZCBwdXQgYnVyc3Qgc2l6ZXMgb2YgNjQgb2JqZWN0 cywgd2hpY2ggaXMgcHJvYmFibHkgYWxzbyBub3QNCj4gICB1bmNvbW1vbiBwYWNrZXQgYnVyc3Qg c2l6ZS4NCj4gKiBGaXhlZCBsaXN0IG9mIG51bWJlciBvZiBrZXB0IG9iamVjdHMgc28gbGlzdCBy ZW1haW5zIGluIGp1bXBzIG9mIGZhY3Rvcg0KPiAgIGZvdXIuDQo+ICogQWRkZWQgdGhyZWUgZGVy aXZhdGl2ZSB0ZXN0IGNhc2VzLCBmb3IgZmFzdGVyIHRlc3RpbmcuDQo+IC0tLQ0KPiAgYXBwL3Rl c3QvdGVzdF9tZW1wb29sX3BlcmYuYyB8IDE0NCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9u cygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbF9wZXJmLmMgYi9h cHAvdGVzdC90ZXN0X21lbXBvb2xfcGVyZi5jDQo+IGluZGV4IDk2ZGUzNDdmMDQuLmJiNDBkMWQ5 MTEgMTAwNjQ0DQo+IC0tLSBhL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbF9wZXJmLmMNCj4gKysrIGIv YXBwL3Rlc3QvdGVzdF9tZW1wb29sX3BlcmYuYw0KPiBAQCAtNTQsMjIgKzU0LDI1IEBADQo+ICAg Kg0KPiAgICogICAgLSBCdWxrIHNpemUgKCpuX2dldF9idWxrKiwgKm5fcHV0X2J1bGsqKQ0KPiAg ICoNCj4gLSAqICAgICAgLSBCdWxrIGdldCBmcm9tIDEgdG8gMzINCj4gLSAqICAgICAgLSBCdWxr IHB1dCBmcm9tIDEgdG8gMzINCj4gLSAqICAgICAgLSBCdWxrIGdldCBhbmQgcHV0IGZyb20gMSB0 byAzMiwgY29tcGlsZSB0aW1lIGNvbnN0YW50DQo+ICsgKiAgICAgIC0gQnVsayBnZXQgZnJvbSAx IHRvIDI1NiwgYW5kIFJURV9NRU1QT09MX0NBQ0hFX01BWF9TSVpFDQo+ICsgKiAgICAgIC0gQnVs ayBwdXQgZnJvbSAxIHRvIDI1NiwgYW5kIFJURV9NRU1QT09MX0NBQ0hFX01BWF9TSVpFDQo+ICsg KiAgICAgIC0gQnVsayBnZXQgYW5kIHB1dCBmcm9tIDEgdG8gMjU2LCBhbmQgUlRFX01FTVBPT0xf Q0FDSEVfTUFYX1NJWkUsDQo+IGNvbXBpbGUgdGltZSBjb25zdGFudA0KPiAgICoNCj4gICAqICAg IC0gTnVtYmVyIG9mIGtlcHQgb2JqZWN0cyAoKm5fa2VlcCopDQo+ICAgKg0KPiAgICogICAgICAt IDMyDQo+ICAgKiAgICAgIC0gMTI4DQo+ICAgKiAgICAgIC0gNTEyDQo+ICsgKiAgICAgIC0gMjA0 OA0KPiArICogICAgICAtIDgxOTINCj4gKyAqICAgICAgLSAzMjc2OA0KPiAgICovDQo+IA0KPiAt I2RlZmluZSBOIDY1NTM2DQo+ICAjZGVmaW5lIFRJTUVfUyA1DQo+ICAjZGVmaW5lIE1FTVBPT0xf RUxUX1NJWkUgMjA0OA0KPiAtI2RlZmluZSBNQVhfS0VFUCA1MTINCj4gLSNkZWZpbmUgTUVNUE9P TF9TSVpFDQo+ICgocnRlX2xjb3JlX2NvdW50KCkqKE1BWF9LRUVQK1JURV9NRU1QT09MX0NBQ0hF X01BWF9TSVpFKSktMSkNCj4gKyNkZWZpbmUgTUFYX0tFRVAgMzI3NjgNCj4gKyNkZWZpbmUgTiAo MTI4ICogTUFYX0tFRVApDQo+ICsjZGVmaW5lIE1FTVBPT0xfU0laRQ0KPiAoKHJ0ZV9sY29yZV9j b3VudCgpKihNQVhfS0VFUCtSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRSoyKSktMSkNCj4gDQo+ ICAvKiBOdW1iZXIgb2YgcG9pbnRlcnMgZml0dGluZyBpbnRvIG9uZSBjYWNoZSBsaW5lLiAqLw0K PiAgI2RlZmluZSBDQUNIRV9MSU5FX0JVUlNUIChSVEVfQ0FDSEVfTElORV9TSVpFIC8gc2l6ZW9m KHVpbnRwdHJfdCkpDQo+IEBAIC0xMDAsOSArMTAzLDExIEBAIHN0YXRpYyB1bnNpZ25lZCBuX2tl ZXA7DQo+ICAvKiB0cnVlIGlmIHdlIHdhbnQgdG8gdGVzdCB3aXRoIGNvbnN0YW50IG5fZ2V0X2J1 bGsgYW5kIG5fcHV0X2J1bGsgKi8NCj4gIHN0YXRpYyBpbnQgdXNlX2NvbnN0YW50X3ZhbHVlczsN Cj4gDQo+IC0vKiBudW1iZXIgb2YgZW5xdWV1ZXMgLyBkZXF1ZXVlcyAqLw0KPiArLyogbnVtYmVy IG9mIGVucXVldWVzIC8gZGVxdWV1ZXMsIGFuZCB0aW1lIHVzZWQgKi8NCj4gIHN0cnVjdCBtZW1w b29sX3Rlc3Rfc3RhdHMgew0KPiAgCXVpbnQ2NF90IGVucV9jb3VudDsNCj4gKwl1aW50NjRfdCBk dXJhdGlvbl9jeWNsZXM7DQo+ICsJUlRFX0NBQ0hFX0dVQVJEOw0KPiAgfSBfX3J0ZV9jYWNoZV9h bGlnbmVkOw0KPiANCj4gIHN0YXRpYyBzdHJ1Y3QgbWVtcG9vbF90ZXN0X3N0YXRzIHN0YXRzW1JU RV9NQVhfTENPUkVdOw0KPiBAQCAtMTg1LDYgKzE5MCw3IEBAIHBlcl9sY29yZV9tZW1wb29sX3Rl c3Qodm9pZCAqYXJnKQ0KPiAgCQlHT1RPX0VSUihyZXQsIG91dCk7DQo+IA0KPiAgCXN0YXRzW2xj b3JlX2lkXS5lbnFfY291bnQgPSAwOw0KPiArCXN0YXRzW2xjb3JlX2lkXS5kdXJhdGlvbl9jeWNs ZXMgPSAwOw0KPiANCj4gIAkvKiB3YWl0IHN5bmNocm8gZm9yIHdvcmtlcnMgKi8NCj4gIAlpZiAo bGNvcmVfaWQgIT0gcnRlX2dldF9tYWluX2xjb3JlKCkpDQo+IEBAIC0yMDQsNiArMjEwLDE1IEBA IHBlcl9sY29yZV9tZW1wb29sX3Rlc3Qodm9pZCAqYXJnKQ0KPiAgCQkJCQlDQUNIRV9MSU5FX0JV UlNULCBDQUNIRV9MSU5FX0JVUlNUKTsNCj4gIAkJZWxzZSBpZiAobl9nZXRfYnVsayA9PSAzMikN Cj4gIAkJCXJldCA9IHRlc3RfbG9vcChtcCwgY2FjaGUsIG5fa2VlcCwgMzIsIDMyKTsNCj4gKwkJ ZWxzZSBpZiAobl9nZXRfYnVsayA9PSA2NCkNCj4gKwkJCXJldCA9IHRlc3RfbG9vcChtcCwgY2Fj aGUsIG5fa2VlcCwgNjQsIDY0KTsNCj4gKwkJZWxzZSBpZiAobl9nZXRfYnVsayA9PSAxMjgpDQo+ ICsJCQlyZXQgPSB0ZXN0X2xvb3AobXAsIGNhY2hlLCBuX2tlZXAsIDEyOCwgMTI4KTsNCj4gKwkJ ZWxzZSBpZiAobl9nZXRfYnVsayA9PSAyNTYpDQo+ICsJCQlyZXQgPSB0ZXN0X2xvb3AobXAsIGNh Y2hlLCBuX2tlZXAsIDI1NiwgMjU2KTsNCj4gKwkJZWxzZSBpZiAobl9nZXRfYnVsayA9PSBSVEVf TUVNUE9PTF9DQUNIRV9NQVhfU0laRSkNCj4gKwkJCXJldCA9IHRlc3RfbG9vcChtcCwgY2FjaGUs IG5fa2VlcCwNCj4gKwkJCQkJUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUsDQo+IFJURV9NRU1Q T09MX0NBQ0hFX01BWF9TSVpFKTsNCj4gIAkJZWxzZQ0KPiAgCQkJcmV0ID0gLTE7DQo+IA0KPiBA QCAtMjE1LDYgKzIzMCw4IEBAIHBlcl9sY29yZV9tZW1wb29sX3Rlc3Qodm9pZCAqYXJnKQ0KPiAg CQlzdGF0c1tsY29yZV9pZF0uZW5xX2NvdW50ICs9IE47DQo+ICAJfQ0KPiANCj4gKwlzdGF0c1ts Y29yZV9pZF0uZHVyYXRpb25fY3ljbGVzID0gdGltZV9kaWZmOw0KPiArDQo+ICBvdXQ6DQo+ICAJ aWYgKHVzZV9leHRlcm5hbF9jYWNoZSkgew0KPiAgCQlydGVfbWVtcG9vbF9jYWNoZV9mbHVzaChj YWNoZSwgbXApOw0KPiBAQCAtMjMyLDYgKzI0OSw3IEBAIGxhdW5jaF9jb3JlcyhzdHJ1Y3QgcnRl X21lbXBvb2wgKm1wLCB1bnNpZ25lZCBpbnQgY29yZXMpDQo+ICAJdWludDY0X3QgcmF0ZTsNCj4g IAlpbnQgcmV0Ow0KPiAgCXVuc2lnbmVkIGNvcmVzX3NhdmUgPSBjb3JlczsNCj4gKwlkb3VibGUg aHogPSBydGVfZ2V0X3RpbWVyX2h6KCk7DQo+IA0KPiAgCV9fYXRvbWljX3N0b3JlX24oJnN5bmNo cm8sIDAsIF9fQVRPTUlDX1JFTEFYRUQpOw0KPiANCj4gQEAgLTI3OCw3ICsyOTYsOSBAQCBsYXVu Y2hfY29yZXMoc3RydWN0IHJ0ZV9tZW1wb29sICptcCwgdW5zaWduZWQgaW50IGNvcmVzKQ0KPiAN Cj4gIAlyYXRlID0gMDsNCj4gIAlmb3IgKGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBSVEVfTUFY X0xDT1JFOyBsY29yZV9pZCsrKQ0KPiAtCQlyYXRlICs9IChzdGF0c1tsY29yZV9pZF0uZW5xX2Nv dW50IC8gVElNRV9TKTsNCj4gKwkJaWYgKHN0YXRzW2xjb3JlX2lkXS5kdXJhdGlvbl9jeWNsZXMg IT0gMCkNCj4gKwkJCXJhdGUgKz0gKGRvdWJsZSlzdGF0c1tsY29yZV9pZF0uZW5xX2NvdW50ICog aHogLw0KPiArCQkJCQkoZG91YmxlKXN0YXRzW2xjb3JlX2lkXS5kdXJhdGlvbl9jeWNsZXM7DQo+ IA0KPiAgCXByaW50ZigicmF0ZV9wZXJzZWM9JSIgUFJJdTY0ICJcbiIsIHJhdGUpOw0KPiANCj4g QEAgLTI4NywxMSArMzA3LDEzIEBAIGxhdW5jaF9jb3JlcyhzdHJ1Y3QgcnRlX21lbXBvb2wgKm1w LCB1bnNpZ25lZCBpbnQgY29yZXMpDQo+IA0KPiAgLyogZm9yIGEgZ2l2ZW4gbnVtYmVyIG9mIGNv cmUsIGxhdW5jaCBhbGwgdGVzdCBjYXNlcyAqLw0KPiAgc3RhdGljIGludA0KPiAtZG9fb25lX21l bXBvb2xfdGVzdChzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wLCB1bnNpZ25lZCBpbnQgY29yZXMpDQo+ ICtkb19vbmVfbWVtcG9vbF90ZXN0KHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsIHVuc2lnbmVkIGlu dCBjb3JlcywgaW50DQo+IGV4dGVybmFsX2NhY2hlKQ0KPiAgew0KPiAtCXVuc2lnbmVkIGludCBi dWxrX3RhYl9nZXRbXSA9IHsgMSwgNCwgQ0FDSEVfTElORV9CVVJTVCwgMzIsIDAgfTsNCj4gLQl1 bnNpZ25lZCBpbnQgYnVsa190YWJfcHV0W10gPSB7IDEsIDQsIENBQ0hFX0xJTkVfQlVSU1QsIDMy LCAwIH07DQo+IC0JdW5zaWduZWQgaW50IGtlZXBfdGFiW10gPSB7IDMyLCAxMjgsIDUxMiwgMCB9 Ow0KPiArCXVuc2lnbmVkIGludCBidWxrX3RhYl9nZXRbXSA9IHsgMSwgNCwgQ0FDSEVfTElORV9C VVJTVCwgMzIsIDY0LCAxMjgsDQo+IDI1NiwNCj4gKwkJCVJURV9NRU1QT09MX0NBQ0hFX01BWF9T SVpFLCAwIH07DQo+ICsJdW5zaWduZWQgaW50IGJ1bGtfdGFiX3B1dFtdID0geyAxLCA0LCBDQUNI RV9MSU5FX0JVUlNULCAzMiwgNjQsIDEyOCwNCj4gMjU2LA0KPiArCQkJUlRFX01FTVBPT0xfQ0FD SEVfTUFYX1NJWkUsIDAgfTsNCj4gKwl1bnNpZ25lZCBpbnQga2VlcF90YWJbXSA9IHsgMzIsIDEy OCwgNTEyLCAyMDQ4LCA4MTkyLCAzMjc2OCwgMCB9Ow0KPiAgCXVuc2lnbmVkICpnZXRfYnVsa19w dHI7DQo+ICAJdW5zaWduZWQgKnB1dF9idWxrX3B0cjsNCj4gIAl1bnNpZ25lZCAqa2VlcF9wdHI7 DQo+IEBAIC0zMDEsNiArMzIzLDEwIEBAIGRvX29uZV9tZW1wb29sX3Rlc3Qoc3RydWN0IHJ0ZV9t ZW1wb29sICptcCwgdW5zaWduZWQgaW50DQo+IGNvcmVzKQ0KPiAgCQlmb3IgKHB1dF9idWxrX3B0 ciA9IGJ1bGtfdGFiX3B1dDsgKnB1dF9idWxrX3B0cjsgcHV0X2J1bGtfcHRyKyspDQo+IHsNCj4g IAkJCWZvciAoa2VlcF9wdHIgPSBrZWVwX3RhYjsgKmtlZXBfcHRyOyBrZWVwX3B0cisrKSB7DQo+ IA0KPiArCQkJCWlmICgqa2VlcF9wdHIgPCAqZ2V0X2J1bGtfcHRyIHx8ICprZWVwX3B0ciA8DQo+ ICpwdXRfYnVsa19wdHIpDQo+ICsJCQkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCQkJdXNlX2V4dGVy bmFsX2NhY2hlID0gZXh0ZXJuYWxfY2FjaGU7DQo+ICAJCQkJdXNlX2NvbnN0YW50X3ZhbHVlcyA9 IDA7DQo+ICAJCQkJbl9nZXRfYnVsayA9ICpnZXRfYnVsa19wdHI7DQo+ICAJCQkJbl9wdXRfYnVs ayA9ICpwdXRfYnVsa19wdHI7DQo+IEBAIC0zMjMsNyArMzQ5LDcgQEAgZG9fb25lX21lbXBvb2xf dGVzdChzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wLCB1bnNpZ25lZCBpbnQNCj4gY29yZXMpDQo+ICB9 DQo+IA0KPiAgc3RhdGljIGludA0KPiAtdGVzdF9tZW1wb29sX3BlcmYodm9pZCkNCj4gK2RvX2Fs bF9tZW1wb29sX3BlcmZfdGVzdHModW5zaWduZWQgaW50IGNvcmVzKQ0KPiAgew0KPiAgCXN0cnVj dCBydGVfbWVtcG9vbCAqbXBfY2FjaGUgPSBOVUxMOw0KPiAgCXN0cnVjdCBydGVfbWVtcG9vbCAq bXBfbm9jYWNoZSA9IE5VTEw7DQo+IEBAIC0zMzcsOCArMzYzLDEwIEBAIHRlc3RfbWVtcG9vbF9w ZXJmKHZvaWQpDQo+ICAJCQkJCU5VTEwsIE5VTEwsDQo+ICAJCQkJCW15X29ial9pbml0LCBOVUxM LA0KPiAgCQkJCQlTT0NLRVRfSURfQU5ZLCAwKTsNCj4gLQlpZiAobXBfbm9jYWNoZSA9PSBOVUxM KQ0KPiArCWlmIChtcF9ub2NhY2hlID09IE5VTEwpIHsNCj4gKwkJcHJpbnRmKCJjYW5ub3QgYWxs b2NhdGUgbWVtcG9vbCAod2l0aG91dCBjYWNoZSlcbiIpOw0KPiAgCQlnb3RvIGVycjsNCj4gKwl9 DQo+IA0KPiAgCS8qIGNyZWF0ZSBhIG1lbXBvb2wgKHdpdGggY2FjaGUpICovDQo+ICAJbXBfY2Fj aGUgPSBydGVfbWVtcG9vbF9jcmVhdGUoInBlcmZfdGVzdF9jYWNoZSIsIE1FTVBPT0xfU0laRSwN Cj4gQEAgLTM0Nyw4ICszNzUsMTAgQEAgdGVzdF9tZW1wb29sX3BlcmYodm9pZCkNCj4gIAkJCQkg ICAgICBOVUxMLCBOVUxMLA0KPiAgCQkJCSAgICAgIG15X29ial9pbml0LCBOVUxMLA0KPiAgCQkJ CSAgICAgIFNPQ0tFVF9JRF9BTlksIDApOw0KPiAtCWlmIChtcF9jYWNoZSA9PSBOVUxMKQ0KPiAr CWlmIChtcF9jYWNoZSA9PSBOVUxMKSB7DQo+ICsJCXByaW50ZigiY2Fubm90IGFsbG9jYXRlIG1l bXBvb2wgKHdpdGggY2FjaGUpXG4iKTsNCj4gIAkJZ290byBlcnI7DQo+ICsJfQ0KPiANCj4gIAlk ZWZhdWx0X3Bvb2xfb3BzID0gcnRlX21idWZfYmVzdF9tZW1wb29sX29wcygpOw0KPiAgCS8qIENy ZWF0ZSBhIG1lbXBvb2wgYmFzZWQgb24gRGVmYXVsdCBoYW5kbGVyICovDQo+IEBAIC0zNzYsNjUg KzQwNiw4MyBAQCB0ZXN0X21lbXBvb2xfcGVyZih2b2lkKQ0KPiANCj4gIAlydGVfbWVtcG9vbF9v YmpfaXRlcihkZWZhdWx0X3Bvb2wsIG15X29ial9pbml0LCBOVUxMKTsNCj4gDQo+IC0JLyogcGVy Zm9ybWFuY2UgdGVzdCB3aXRoIDEsIDIgYW5kIG1heCBjb3JlcyAqLw0KPiAgCXByaW50Zigic3Rh cnQgcGVyZm9ybWFuY2UgdGVzdCAod2l0aG91dCBjYWNoZSlcbiIpOw0KPiAtDQo+IC0JaWYgKGRv X29uZV9tZW1wb29sX3Rlc3QobXBfbm9jYWNoZSwgMSkgPCAwKQ0KPiAtCQlnb3RvIGVycjsNCj4g LQ0KPiAtCWlmIChkb19vbmVfbWVtcG9vbF90ZXN0KG1wX25vY2FjaGUsIDIpIDwgMCkNCj4gKwlp ZiAoZG9fb25lX21lbXBvb2xfdGVzdChtcF9ub2NhY2hlLCBjb3JlcywgMCkgPCAwKQ0KPiAgCQln b3RvIGVycjsNCj4gDQo+IC0JaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QobXBfbm9jYWNoZSwgcnRl X2xjb3JlX2NvdW50KCkpIDwgMCkNCj4gLQkJZ290byBlcnI7DQo+IC0NCj4gLQkvKiBwZXJmb3Jt YW5jZSB0ZXN0IHdpdGggMSwgMiBhbmQgbWF4IGNvcmVzICovDQo+ICAJcHJpbnRmKCJzdGFydCBw ZXJmb3JtYW5jZSB0ZXN0IGZvciAlcyAod2l0aG91dCBjYWNoZSlcbiIsDQo+ICAJICAgICAgIGRl ZmF1bHRfcG9vbF9vcHMpOw0KPiAtDQo+IC0JaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QoZGVmYXVs dF9wb29sLCAxKSA8IDApDQo+ICsJaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QoZGVmYXVsdF9wb29s LCBjb3JlcywgMCkgPCAwKQ0KPiAgCQlnb3RvIGVycjsNCj4gDQo+IC0JaWYgKGRvX29uZV9tZW1w b29sX3Rlc3QoZGVmYXVsdF9wb29sLCAyKSA8IDApDQo+ICsJcHJpbnRmKCJzdGFydCBwZXJmb3Jt YW5jZSB0ZXN0ICh3aXRoIGNhY2hlKVxuIik7DQo+ICsJaWYgKGRvX29uZV9tZW1wb29sX3Rlc3Qo bXBfY2FjaGUsIGNvcmVzLCAwKSA8IDApDQo+ICAJCWdvdG8gZXJyOw0KPiANCj4gLQlpZiAoZG9f b25lX21lbXBvb2xfdGVzdChkZWZhdWx0X3Bvb2wsIHJ0ZV9sY29yZV9jb3VudCgpKSA8IDApDQo+ ICsJcHJpbnRmKCJzdGFydCBwZXJmb3JtYW5jZSB0ZXN0ICh3aXRoIHVzZXItb3duZWQgY2FjaGUp XG4iKTsNCj4gKwlpZiAoZG9fb25lX21lbXBvb2xfdGVzdChtcF9ub2NhY2hlLCBjb3JlcywgMSkg PCAwKQ0KPiAgCQlnb3RvIGVycjsNCj4gDQo+IC0JLyogcGVyZm9ybWFuY2UgdGVzdCB3aXRoIDEs IDIgYW5kIG1heCBjb3JlcyAqLw0KPiAtCXByaW50Zigic3RhcnQgcGVyZm9ybWFuY2UgdGVzdCAo d2l0aCBjYWNoZSlcbiIpOw0KPiArCXJ0ZV9tZW1wb29sX2xpc3RfZHVtcChzdGRvdXQpOw0KPiAN Cj4gLQlpZiAoZG9fb25lX21lbXBvb2xfdGVzdChtcF9jYWNoZSwgMSkgPCAwKQ0KPiAtCQlnb3Rv IGVycjsNCj4gKwlyZXQgPSAwOw0KPiANCj4gLQlpZiAoZG9fb25lX21lbXBvb2xfdGVzdChtcF9j YWNoZSwgMikgPCAwKQ0KPiAtCQlnb3RvIGVycjsNCj4gK2VycjoNCj4gKwlydGVfbWVtcG9vbF9m cmVlKG1wX2NhY2hlKTsNCj4gKwlydGVfbWVtcG9vbF9mcmVlKG1wX25vY2FjaGUpOw0KPiArCXJ0 ZV9tZW1wb29sX2ZyZWUoZGVmYXVsdF9wb29sKTsNCj4gKwlyZXR1cm4gcmV0Ow0KPiArfQ0KPiAN Cj4gLQlpZiAoZG9fb25lX21lbXBvb2xfdGVzdChtcF9jYWNoZSwgcnRlX2xjb3JlX2NvdW50KCkp IDwgMCkNCj4gLQkJZ290byBlcnI7DQo+ICtzdGF0aWMgaW50DQo+ICt0ZXN0X21lbXBvb2xfcGVy Zl8xY29yZSh2b2lkKQ0KPiArew0KPiArCXJldHVybiBkb19hbGxfbWVtcG9vbF9wZXJmX3Rlc3Rz KDEpOw0KPiArfQ0KPiANCj4gLQkvKiBwZXJmb3JtYW5jZSB0ZXN0IHdpdGggMSwgMiBhbmQgbWF4 IGNvcmVzICovDQo+IC0JcHJpbnRmKCJzdGFydCBwZXJmb3JtYW5jZSB0ZXN0ICh3aXRoIHVzZXIt b3duZWQgY2FjaGUpXG4iKTsNCj4gLQl1c2VfZXh0ZXJuYWxfY2FjaGUgPSAxOw0KPiArc3RhdGlj IGludA0KPiArdGVzdF9tZW1wb29sX3BlcmZfMmNvcmVzKHZvaWQpDQo+ICt7DQo+ICsJaWYgKHJ0 ZV9sY29yZV9jb3VudCgpIDwgMikgew0KPiArCQlwcmludGYoIm5vdCBlbm91Z2ggbGNvcmVzXG4i KTsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4gKwlyZXR1cm4gZG9fYWxsX21lbXBvb2xfcGVy Zl90ZXN0cygyKTsNCj4gK30NCj4gDQo+IC0JaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QobXBfbm9j YWNoZSwgMSkgPCAwKQ0KPiAtCQlnb3RvIGVycjsNCj4gK3N0YXRpYyBpbnQNCj4gK3Rlc3RfbWVt cG9vbF9wZXJmX2FsbGNvcmVzKHZvaWQpDQo+ICt7DQo+ICsJcmV0dXJuIGRvX2FsbF9tZW1wb29s X3BlcmZfdGVzdHMocnRlX2xjb3JlX2NvdW50KCkpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50 DQo+ICt0ZXN0X21lbXBvb2xfcGVyZih2b2lkKQ0KPiArew0KPiArCWludCByZXQgPSAtMTsNCj4g DQo+IC0JaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QobXBfbm9jYWNoZSwgMikgPCAwKQ0KPiArCS8q IHBlcmZvcm1hbmNlIHRlc3Qgd2l0aCAxLCAyIGFuZCBtYXggY29yZXMgKi8NCj4gKwlpZiAoZG9f YWxsX21lbXBvb2xfcGVyZl90ZXN0cygxKSA8IDApDQo+ICAJCWdvdG8gZXJyOw0KPiArCWlmIChy dGVfbGNvcmVfY291bnQoKSA9PSAxKQ0KPiArCQlnb3RvIGRvbmU7DQo+IA0KPiAtCWlmIChkb19v bmVfbWVtcG9vbF90ZXN0KG1wX25vY2FjaGUsIHJ0ZV9sY29yZV9jb3VudCgpKSA8IDApDQo+ICsJ aWYgKGRvX2FsbF9tZW1wb29sX3BlcmZfdGVzdHMoMikgPCAwKQ0KPiAgCQlnb3RvIGVycjsNCj4g KwlpZiAocnRlX2xjb3JlX2NvdW50KCkgPT0gMikNCj4gKwkJZ290byBkb25lOw0KPiANCj4gLQly dGVfbWVtcG9vbF9saXN0X2R1bXAoc3Rkb3V0KTsNCj4gKwlpZiAoZG9fYWxsX21lbXBvb2xfcGVy Zl90ZXN0cyhydGVfbGNvcmVfY291bnQoKSkgPCAwKQ0KPiArCQlnb3RvIGVycjsNCj4gDQo+ICtk b25lOg0KPiAgCXJldCA9IDA7DQo+IA0KPiAgZXJyOg0KPiAtCXJ0ZV9tZW1wb29sX2ZyZWUobXBf Y2FjaGUpOw0KPiAtCXJ0ZV9tZW1wb29sX2ZyZWUobXBfbm9jYWNoZSk7DQo+IC0JcnRlX21lbXBv b2xfZnJlZShkZWZhdWx0X3Bvb2wpOw0KPiAgCXJldHVybiByZXQ7DQo+ICB9DQo+IA0KPiAgUkVH SVNURVJfUEVSRl9URVNUKG1lbXBvb2xfcGVyZl9hdXRvdGVzdCwgdGVzdF9tZW1wb29sX3BlcmYp Ow0KPiArUkVHSVNURVJfUEVSRl9URVNUKG1lbXBvb2xfcGVyZl9hdXRvdGVzdF8xY29yZSwgdGVz dF9tZW1wb29sX3BlcmZfMWNvcmUpOw0KPiArUkVHSVNURVJfUEVSRl9URVNUKG1lbXBvb2xfcGVy Zl9hdXRvdGVzdF8yY29yZXMsIHRlc3RfbWVtcG9vbF9wZXJmXzJjb3Jlcyk7DQo+ICtSRUdJU1RF Ul9QRVJGX1RFU1QobWVtcG9vbF9wZXJmX2F1dG90ZXN0X2FsbGNvcmVzLA0KPiB0ZXN0X21lbXBv b2xfcGVyZl9hbGxjb3Jlcyk7DQo+IC0tDQo+IDIuMTcuMQ0KDQo=