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 33AD241F67; Mon, 10 Jun 2024 10:56:05 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1B60B40669; Mon, 10 Jun 2024 10:56:05 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 8FBDC402CA for ; Mon, 10 Jun 2024 10:56:03 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 844F72035F; Mon, 10 Jun 2024 10:56:02 +0200 (CEST) Content-class: urn:content-classes:message Subject: RE: [PATCH v7] mempool: test performance with larger bursts MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Date: Mon, 10 Jun 2024 10:56:00 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F50B@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35E9F359@smartserver.smartshare.dk> X-MS-Has-Attach: X-MS-TNEF-Correlator: X-MimeOLE: Produced By Microsoft Exchange V6.5 Thread-Topic: [PATCH v7] mempool: test performance with larger bursts Thread-Index: Adps3MpEU0OdMYeYQDO0PLkH+gZXDgZlQHEgDShAnwA= References: <20240121045249.22465-1-mb@smartsharesystems.com> <20240302200408.6419-1-mb@smartsharesystems.com> <98CBD80474FA8B44BF855DF32C47DC35E9F359@smartserver.smartshare.dk> 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 UElORyAoYWdhaW4pIGZvciByZXZpZXcuDQoNCk1hbnkgYXBwbGljYXRpb25zIHVzZSBidXJzdHMg b2YgbW9yZSB0aGFuIDMyIHBhY2tldHMsDQphbmQgc29tZSBhcHBsaWNhdGlvbnMgYnVmZmVyIG1v cmUgdGhhbiA1MTIgcGFja2V0cy4NCg0KVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBtZW1wb29sIHBl cmYgdGVzdCBhY2NvcmRpbmdseS4NCg0KLU1vcnRlbg0KDQo+IEZyb206IE1vcnRlbiBCcsO4cnVw IFttYWlsdG86bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgNCBB cHJpbCAyMDI0IDExLjI3DQo+IA0KPiBQSU5HIGZvciByZXZpZXcuIFRoaXMgcGF0Y2ggaXMgcmVs YXRpdmVseSB0cml2aWFsLg0KPiANCj4gPiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRvOm1i QHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbV0NCj4gPiBTZW50OiBTYXR1cmRheSwgMiBNYXJjaCAyMDI0 IDIxLjA0DQo+ID4NCj4gPiBCdXJzdHMgb2YgdXAgdG8gNjQsIDEyOCBhbmQgMjU2IHBhY2tldHMg YXJlIG5vdCB1bmNvbW1vbiwgc28gaW5jcmVhc2UgdGhlDQo+ID4gbWF4aW11bSB0ZXN0ZWQgZ2V0 IGFuZCBwdXQgYnVyc3Qgc2l6ZXMgZnJvbSAzMiB0byAyNTYuDQo+ID4gRm9yIGNvbnZlbmllbmNl LCBhbHNvIHRlc3QgZ2V0IGFuZCBwdXQgYnVyc3Qgc2l6ZXMgb2YNCj4gPiBSVEVfTUVNUE9PTF9D QUNIRV9NQVhfU0laRS4NCj4gPg0KPiA+IFNvbWUgYXBwbGljYXRpb25zIGtlZXAgbW9yZSB0aGFu IDUxMiBvYmplY3RzLCBzbyBpbmNyZWFzZSB0aGUgbWF4aW11bQ0KPiA+IG51bWJlciBvZiBrZXB0 IG9iamVjdHMgZnJvbSA1MTIgdG8gMzI3NjgsIHN0aWxsIGluIGp1bXBzIG9mIGZhY3RvciBmb3Vy Lg0KPiA+IFRoaXMgZXhjZWVkcyB0aGUgdHlwaWNhbCBtZW1wb29sIGNhY2hlIHNpemUgb2YgNTEy IG9iamVjdHMsIHNvIHRoZSB0ZXN0DQo+ID4gYWxzbyBleGVyY2lzZXMgdGhlIG1lbXBvb2wgZHJp dmVyLg0KPiA+DQo+ID4gSW5jcmVhc2VkIHRoZSBwcmVjaXNpb24gb2YgcmF0ZV9wZXJzZWMgY2Fs Y3VsYXRpb24gYnkgdGltaW5nIHRoZSBhY3R1YWwNCj4gPiBkdXJhdGlvbiBvZiB0aGUgdGVzdCwg aW5zdGVhZCBvZiBhc3N1bWluZyBpdCB0b29rIGV4YWN0bHkgNSBzZWNvbmRzLg0KPiA+DQo+ID4g QWRkZWQgY2FjaGUgZ3VhcmQgdG8gcGVyLWxjb3JlIHN0YXRzIHN0cnVjdHVyZS4NCj4gPg0KPiA+ IFNpZ25lZC1vZmYtYnk6IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+ DQo+ID4gQWNrZWQtYnk6IENoZW5nd2VuIEZlbmcgPGZlbmdjaGVuZ3dlbkBodWF3ZWkuY29tPg0K PiA+IC0tLQ0KPiA+DQo+ID4gdjc6DQo+ID4gKiBJbmNyZWFzZSBtYXggYnVyc3Qgc2l6ZSB0byAy NTYuIChJbnNwaXJlZCBieSBIb25uYXBwYSkNCj4gPiB2NjoNCj4gPiAqIERvIG5vdCB0ZXN0IHdp dGggbW9yZSBsY29yZXMgdGhhbiBhdmFpbGFibGUuIChUaG9tYXMpDQo+ID4gdjU6DQo+ID4gKiBJ bmNyZWFzZWQgTiwgdG8gcmVkdWNlIG1lYXN1cmVtZW50IG92ZXJoZWFkIHdpdGggbGFyZ2UgbnVt YmVycyBvZiBrZXB0DQo+ID4gICBvYmplY3RzLg0KPiA+ICogSW5jcmVhc2VkIHByZWNpc2lvbiBv ZiByYXRlX3BlcnNlYyBjYWxjdWxhdGlvbi4NCj4gPiAqIEFkZGVkIG1pc3NpbmcgY2FjaGUgZ3Vh cmQgdG8gcGVyLWxjb3JlIHN0YXRzIHN0cnVjdHVyZS4NCj4gPiB2NDoNCj4gPiAqIHYzIGZhaWxl ZCB0byBhcHBseTsgSSBoYWQgbWVzc2VkIHVwIHNvbWV0aGluZyB3aXRoIGdpdC4NCj4gPiAqIEFk ZGVkIEFDSyBmcm9tIENoZW5nd2VuIEZlbmcuDQo+ID4gdjM6DQo+ID4gKiBJbmNyZWFzZWQgbWF4 IG51bWJlciBvZiBrZXB0IG9iamVjdHMgdG8gMzI3NjguDQo+ID4gKiBBZGRlZCBnZXQgYW5kIHB1 dCBidXJzdCBzaXplcyBvZiBSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRSBvYmplY3RzLg0KPiA+ ICogUHJpbnQgZXJyb3IgaWYgdW5hYmxlIHRvIGFsbG9jYXRlIG1lbXBvb2wuDQo+ID4gKiBJbml0 aWFsaXplIHVzZV9leHRlcm5hbF9jYWNoZSB3aXRoIGVhY2ggdGVzdC4NCj4gPiAgIEEgcHJldmlv dXMgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhZCBhIGJ1Zywgd2hlcmUgYWxsIHRlc3QgcnVucw0K PiA+ICAgZm9sbG93aW5nIHRoZSBmaXJzdCB3b3VsZCB1c2UgZXh0ZXJuYWwgY2FjaGUuIChDaGVu Z3dlbiBGZW5nKQ0KPiA+IHYyOiBBZGRyZXNzZWQgZmVlZGJhY2sgYnkgQ2hlbmd3ZW4gRmVuZw0K PiA+ICogQWRkZWQgZ2V0IGFuZCBwdXQgYnVyc3Qgc2l6ZXMgb2YgNjQgb2JqZWN0cywgd2hpY2gg aXMgcHJvYmFibHkgYWxzbyBub3QNCj4gPiAgIHVuY29tbW9uIHBhY2tldCBidXJzdCBzaXplLg0K PiA+ICogRml4ZWQgbGlzdCBvZiBudW1iZXIgb2Yga2VwdCBvYmplY3RzIHNvIGxpc3QgcmVtYWlu cyBpbiBqdW1wcyBvZiBmYWN0b3INCj4gPiAgIGZvdXIuDQo+ID4gKiBBZGRlZCB0aHJlZSBkZXJp dmF0aXZlIHRlc3QgY2FzZXMsIGZvciBmYXN0ZXIgdGVzdGluZy4NCj4gPiAtLS0NCj4gPiAgYXBw L3Rlc3QvdGVzdF9tZW1wb29sX3BlcmYuYyB8IDE0NCArKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKSwgNDggZGVs ZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvdGVzdF9tZW1wb29sX3Bl cmYuYyBiL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbF9wZXJmLmMNCj4gPiBpbmRleCA5NmRlMzQ3ZjA0 Li5iYjQwZDFkOTExIDEwMDY0NA0KPiA+IC0tLSBhL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbF9wZXJm LmMNCj4gPiArKysgYi9hcHAvdGVzdC90ZXN0X21lbXBvb2xfcGVyZi5jDQo+ID4gQEAgLTU0LDIy ICs1NCwyNSBAQA0KPiA+ICAgKg0KPiA+ICAgKiAgICAtIEJ1bGsgc2l6ZSAoKm5fZ2V0X2J1bGsq LCAqbl9wdXRfYnVsayopDQo+ID4gICAqDQo+ID4gLSAqICAgICAgLSBCdWxrIGdldCBmcm9tIDEg dG8gMzINCj4gPiAtICogICAgICAtIEJ1bGsgcHV0IGZyb20gMSB0byAzMg0KPiA+IC0gKiAgICAg IC0gQnVsayBnZXQgYW5kIHB1dCBmcm9tIDEgdG8gMzIsIGNvbXBpbGUgdGltZSBjb25zdGFudA0K PiA+ICsgKiAgICAgIC0gQnVsayBnZXQgZnJvbSAxIHRvIDI1NiwgYW5kIFJURV9NRU1QT09MX0NB Q0hFX01BWF9TSVpFDQo+ID4gKyAqICAgICAgLSBCdWxrIHB1dCBmcm9tIDEgdG8gMjU2LCBhbmQg UlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUNCj4gPiArICogICAgICAtIEJ1bGsgZ2V0IGFuZCBw dXQgZnJvbSAxIHRvIDI1NiwgYW5kIFJURV9NRU1QT09MX0NBQ0hFX01BWF9TSVpFLA0KPiA+IGNv bXBpbGUgdGltZSBjb25zdGFudA0KPiA+ICAgKg0KPiA+ICAgKiAgICAtIE51bWJlciBvZiBrZXB0 IG9iamVjdHMgKCpuX2tlZXAqKQ0KPiA+ICAgKg0KPiA+ICAgKiAgICAgIC0gMzINCj4gPiAgICog ICAgICAtIDEyOA0KPiA+ICAgKiAgICAgIC0gNTEyDQo+ID4gKyAqICAgICAgLSAyMDQ4DQo+ID4g KyAqICAgICAgLSA4MTkyDQo+ID4gKyAqICAgICAgLSAzMjc2OA0KPiA+ICAgKi8NCj4gPg0KPiA+ IC0jZGVmaW5lIE4gNjU1MzYNCj4gPiAgI2RlZmluZSBUSU1FX1MgNQ0KPiA+ICAjZGVmaW5lIE1F TVBPT0xfRUxUX1NJWkUgMjA0OA0KPiA+IC0jZGVmaW5lIE1BWF9LRUVQIDUxMg0KPiA+IC0jZGVm aW5lIE1FTVBPT0xfU0laRQ0KPiA+ICgocnRlX2xjb3JlX2NvdW50KCkqKE1BWF9LRUVQK1JURV9N RU1QT09MX0NBQ0hFX01BWF9TSVpFKSktMSkNCj4gPiArI2RlZmluZSBNQVhfS0VFUCAzMjc2OA0K PiA+ICsjZGVmaW5lIE4gKDEyOCAqIE1BWF9LRUVQKQ0KPiA+ICsjZGVmaW5lIE1FTVBPT0xfU0la RQ0KPiA+ICgocnRlX2xjb3JlX2NvdW50KCkqKE1BWF9LRUVQK1JURV9NRU1QT09MX0NBQ0hFX01B WF9TSVpFKjIpKS0xKQ0KPiA+DQo+ID4gIC8qIE51bWJlciBvZiBwb2ludGVycyBmaXR0aW5nIGlu dG8gb25lIGNhY2hlIGxpbmUuICovDQo+ID4gICNkZWZpbmUgQ0FDSEVfTElORV9CVVJTVCAoUlRF X0NBQ0hFX0xJTkVfU0laRSAvIHNpemVvZih1aW50cHRyX3QpKQ0KPiA+IEBAIC0xMDAsOSArMTAz LDExIEBAIHN0YXRpYyB1bnNpZ25lZCBuX2tlZXA7DQo+ID4gIC8qIHRydWUgaWYgd2Ugd2FudCB0 byB0ZXN0IHdpdGggY29uc3RhbnQgbl9nZXRfYnVsayBhbmQgbl9wdXRfYnVsayAqLw0KPiA+ICBz dGF0aWMgaW50IHVzZV9jb25zdGFudF92YWx1ZXM7DQo+ID4NCj4gPiAtLyogbnVtYmVyIG9mIGVu cXVldWVzIC8gZGVxdWV1ZXMgKi8NCj4gPiArLyogbnVtYmVyIG9mIGVucXVldWVzIC8gZGVxdWV1 ZXMsIGFuZCB0aW1lIHVzZWQgKi8NCj4gPiAgc3RydWN0IG1lbXBvb2xfdGVzdF9zdGF0cyB7DQo+ ID4gIAl1aW50NjRfdCBlbnFfY291bnQ7DQo+ID4gKwl1aW50NjRfdCBkdXJhdGlvbl9jeWNsZXM7 DQo+ID4gKwlSVEVfQ0FDSEVfR1VBUkQ7DQo+ID4gIH0gX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4g Pg0KPiA+ICBzdGF0aWMgc3RydWN0IG1lbXBvb2xfdGVzdF9zdGF0cyBzdGF0c1tSVEVfTUFYX0xD T1JFXTsNCj4gPiBAQCAtMTg1LDYgKzE5MCw3IEBAIHBlcl9sY29yZV9tZW1wb29sX3Rlc3Qodm9p ZCAqYXJnKQ0KPiA+ICAJCUdPVE9fRVJSKHJldCwgb3V0KTsNCj4gPg0KPiA+ICAJc3RhdHNbbGNv cmVfaWRdLmVucV9jb3VudCA9IDA7DQo+ID4gKwlzdGF0c1tsY29yZV9pZF0uZHVyYXRpb25fY3lj bGVzID0gMDsNCj4gPg0KPiA+ICAJLyogd2FpdCBzeW5jaHJvIGZvciB3b3JrZXJzICovDQo+ID4g IAlpZiAobGNvcmVfaWQgIT0gcnRlX2dldF9tYWluX2xjb3JlKCkpDQo+ID4gQEAgLTIwNCw2ICsy MTAsMTUgQEAgcGVyX2xjb3JlX21lbXBvb2xfdGVzdCh2b2lkICphcmcpDQo+ID4gIAkJCQkJQ0FD SEVfTElORV9CVVJTVCwgQ0FDSEVfTElORV9CVVJTVCk7DQo+ID4gIAkJZWxzZSBpZiAobl9nZXRf YnVsayA9PSAzMikNCj4gPiAgCQkJcmV0ID0gdGVzdF9sb29wKG1wLCBjYWNoZSwgbl9rZWVwLCAz MiwgMzIpOw0KPiA+ICsJCWVsc2UgaWYgKG5fZ2V0X2J1bGsgPT0gNjQpDQo+ID4gKwkJCXJldCA9 IHRlc3RfbG9vcChtcCwgY2FjaGUsIG5fa2VlcCwgNjQsIDY0KTsNCj4gPiArCQllbHNlIGlmIChu X2dldF9idWxrID09IDEyOCkNCj4gPiArCQkJcmV0ID0gdGVzdF9sb29wKG1wLCBjYWNoZSwgbl9r ZWVwLCAxMjgsIDEyOCk7DQo+ID4gKwkJZWxzZSBpZiAobl9nZXRfYnVsayA9PSAyNTYpDQo+ID4g KwkJCXJldCA9IHRlc3RfbG9vcChtcCwgY2FjaGUsIG5fa2VlcCwgMjU2LCAyNTYpOw0KPiA+ICsJ CWVsc2UgaWYgKG5fZ2V0X2J1bGsgPT0gUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUpDQo+ID4g KwkJCXJldCA9IHRlc3RfbG9vcChtcCwgY2FjaGUsIG5fa2VlcCwNCj4gPiArCQkJCQlSVEVfTUVN UE9PTF9DQUNIRV9NQVhfU0laRSwNCj4gPiBSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRSk7DQo+ ID4gIAkJZWxzZQ0KPiA+ICAJCQlyZXQgPSAtMTsNCj4gPg0KPiA+IEBAIC0yMTUsNiArMjMwLDgg QEAgcGVyX2xjb3JlX21lbXBvb2xfdGVzdCh2b2lkICphcmcpDQo+ID4gIAkJc3RhdHNbbGNvcmVf aWRdLmVucV9jb3VudCArPSBOOw0KPiA+ICAJfQ0KPiA+DQo+ID4gKwlzdGF0c1tsY29yZV9pZF0u ZHVyYXRpb25fY3ljbGVzID0gdGltZV9kaWZmOw0KPiA+ICsNCj4gPiAgb3V0Og0KPiA+ICAJaWYg KHVzZV9leHRlcm5hbF9jYWNoZSkgew0KPiA+ICAJCXJ0ZV9tZW1wb29sX2NhY2hlX2ZsdXNoKGNh Y2hlLCBtcCk7DQo+ID4gQEAgLTIzMiw2ICsyNDksNyBAQCBsYXVuY2hfY29yZXMoc3RydWN0IHJ0 ZV9tZW1wb29sICptcCwgdW5zaWduZWQgaW50IGNvcmVzKQ0KPiA+ICAJdWludDY0X3QgcmF0ZTsN Cj4gPiAgCWludCByZXQ7DQo+ID4gIAl1bnNpZ25lZCBjb3Jlc19zYXZlID0gY29yZXM7DQo+ID4g Kwlkb3VibGUgaHogPSBydGVfZ2V0X3RpbWVyX2h6KCk7DQo+ID4NCj4gPiAgCV9fYXRvbWljX3N0 b3JlX24oJnN5bmNocm8sIDAsIF9fQVRPTUlDX1JFTEFYRUQpOw0KPiA+DQo+ID4gQEAgLTI3OCw3 ICsyOTYsOSBAQCBsYXVuY2hfY29yZXMoc3RydWN0IHJ0ZV9tZW1wb29sICptcCwgdW5zaWduZWQg aW50IGNvcmVzKQ0KPiA+DQo+ID4gIAlyYXRlID0gMDsNCj4gPiAgCWZvciAobGNvcmVfaWQgPSAw OyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7IGxjb3JlX2lkKyspDQo+ID4gLQkJcmF0ZSArPSAo c3RhdHNbbGNvcmVfaWRdLmVucV9jb3VudCAvIFRJTUVfUyk7DQo+ID4gKwkJaWYgKHN0YXRzW2xj b3JlX2lkXS5kdXJhdGlvbl9jeWNsZXMgIT0gMCkNCj4gPiArCQkJcmF0ZSArPSAoZG91YmxlKXN0 YXRzW2xjb3JlX2lkXS5lbnFfY291bnQgKiBoeiAvDQo+ID4gKwkJCQkJKGRvdWJsZSlzdGF0c1ts Y29yZV9pZF0uZHVyYXRpb25fY3ljbGVzOw0KPiA+DQo+ID4gIAlwcmludGYoInJhdGVfcGVyc2Vj PSUiIFBSSXU2NCAiXG4iLCByYXRlKTsNCj4gPg0KPiA+IEBAIC0yODcsMTEgKzMwNywxMyBAQCBs YXVuY2hfY29yZXMoc3RydWN0IHJ0ZV9tZW1wb29sICptcCwgdW5zaWduZWQgaW50DQo+IGNvcmVz KQ0KPiA+DQo+ID4gIC8qIGZvciBhIGdpdmVuIG51bWJlciBvZiBjb3JlLCBsYXVuY2ggYWxsIHRl c3QgY2FzZXMgKi8NCj4gPiAgc3RhdGljIGludA0KPiA+IC1kb19vbmVfbWVtcG9vbF90ZXN0KHN0 cnVjdCBydGVfbWVtcG9vbCAqbXAsIHVuc2lnbmVkIGludCBjb3JlcykNCj4gPiArZG9fb25lX21l bXBvb2xfdGVzdChzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wLCB1bnNpZ25lZCBpbnQgY29yZXMsIGlu dA0KPiA+IGV4dGVybmFsX2NhY2hlKQ0KPiA+ICB7DQo+ID4gLQl1bnNpZ25lZCBpbnQgYnVsa190 YWJfZ2V0W10gPSB7IDEsIDQsIENBQ0hFX0xJTkVfQlVSU1QsIDMyLCAwIH07DQo+ID4gLQl1bnNp Z25lZCBpbnQgYnVsa190YWJfcHV0W10gPSB7IDEsIDQsIENBQ0hFX0xJTkVfQlVSU1QsIDMyLCAw IH07DQo+ID4gLQl1bnNpZ25lZCBpbnQga2VlcF90YWJbXSA9IHsgMzIsIDEyOCwgNTEyLCAwIH07 DQo+ID4gKwl1bnNpZ25lZCBpbnQgYnVsa190YWJfZ2V0W10gPSB7IDEsIDQsIENBQ0hFX0xJTkVf QlVSU1QsIDMyLCA2NCwgMTI4LA0KPiA+IDI1NiwNCj4gPiArCQkJUlRFX01FTVBPT0xfQ0FDSEVf TUFYX1NJWkUsIDAgfTsNCj4gPiArCXVuc2lnbmVkIGludCBidWxrX3RhYl9wdXRbXSA9IHsgMSwg NCwgQ0FDSEVfTElORV9CVVJTVCwgMzIsIDY0LCAxMjgsDQo+ID4gMjU2LA0KPiA+ICsJCQlSVEVf TUVNUE9PTF9DQUNIRV9NQVhfU0laRSwgMCB9Ow0KPiA+ICsJdW5zaWduZWQgaW50IGtlZXBfdGFi W10gPSB7IDMyLCAxMjgsIDUxMiwgMjA0OCwgODE5MiwgMzI3NjgsIDAgfTsNCj4gPiAgCXVuc2ln bmVkICpnZXRfYnVsa19wdHI7DQo+ID4gIAl1bnNpZ25lZCAqcHV0X2J1bGtfcHRyOw0KPiA+ICAJ dW5zaWduZWQgKmtlZXBfcHRyOw0KPiA+IEBAIC0zMDEsNiArMzIzLDEwIEBAIGRvX29uZV9tZW1w b29sX3Rlc3Qoc3RydWN0IHJ0ZV9tZW1wb29sICptcCwgdW5zaWduZWQNCj4gaW50DQo+ID4gY29y ZXMpDQo+ID4gIAkJZm9yIChwdXRfYnVsa19wdHIgPSBidWxrX3RhYl9wdXQ7ICpwdXRfYnVsa19w dHI7IHB1dF9idWxrX3B0cisrKQ0KPiA+IHsNCj4gPiAgCQkJZm9yIChrZWVwX3B0ciA9IGtlZXBf dGFiOyAqa2VlcF9wdHI7IGtlZXBfcHRyKyspIHsNCj4gPg0KPiA+ICsJCQkJaWYgKCprZWVwX3B0 ciA8ICpnZXRfYnVsa19wdHIgfHwgKmtlZXBfcHRyIDwNCj4gPiAqcHV0X2J1bGtfcHRyKQ0KPiA+ ICsJCQkJCWNvbnRpbnVlOw0KPiA+ICsNCj4gPiArCQkJCXVzZV9leHRlcm5hbF9jYWNoZSA9IGV4 dGVybmFsX2NhY2hlOw0KPiA+ICAJCQkJdXNlX2NvbnN0YW50X3ZhbHVlcyA9IDA7DQo+ID4gIAkJ CQluX2dldF9idWxrID0gKmdldF9idWxrX3B0cjsNCj4gPiAgCQkJCW5fcHV0X2J1bGsgPSAqcHV0 X2J1bGtfcHRyOw0KPiA+IEBAIC0zMjMsNyArMzQ5LDcgQEAgZG9fb25lX21lbXBvb2xfdGVzdChz dHJ1Y3QgcnRlX21lbXBvb2wgKm1wLCB1bnNpZ25lZCBpbnQNCj4gPiBjb3JlcykNCj4gPiAgfQ0K PiA+DQo+ID4gIHN0YXRpYyBpbnQNCj4gPiAtdGVzdF9tZW1wb29sX3BlcmYodm9pZCkNCj4gPiAr ZG9fYWxsX21lbXBvb2xfcGVyZl90ZXN0cyh1bnNpZ25lZCBpbnQgY29yZXMpDQo+ID4gIHsNCj4g PiAgCXN0cnVjdCBydGVfbWVtcG9vbCAqbXBfY2FjaGUgPSBOVUxMOw0KPiA+ICAJc3RydWN0IHJ0 ZV9tZW1wb29sICptcF9ub2NhY2hlID0gTlVMTDsNCj4gPiBAQCAtMzM3LDggKzM2MywxMCBAQCB0 ZXN0X21lbXBvb2xfcGVyZih2b2lkKQ0KPiA+ICAJCQkJCU5VTEwsIE5VTEwsDQo+ID4gIAkJCQkJ bXlfb2JqX2luaXQsIE5VTEwsDQo+ID4gIAkJCQkJU09DS0VUX0lEX0FOWSwgMCk7DQo+ID4gLQlp ZiAobXBfbm9jYWNoZSA9PSBOVUxMKQ0KPiA+ICsJaWYgKG1wX25vY2FjaGUgPT0gTlVMTCkgew0K PiA+ICsJCXByaW50ZigiY2Fubm90IGFsbG9jYXRlIG1lbXBvb2wgKHdpdGhvdXQgY2FjaGUpXG4i KTsNCj4gPiAgCQlnb3RvIGVycjsNCj4gPiArCX0NCj4gPg0KPiA+ICAJLyogY3JlYXRlIGEgbWVt cG9vbCAod2l0aCBjYWNoZSkgKi8NCj4gPiAgCW1wX2NhY2hlID0gcnRlX21lbXBvb2xfY3JlYXRl KCJwZXJmX3Rlc3RfY2FjaGUiLCBNRU1QT09MX1NJWkUsDQo+ID4gQEAgLTM0Nyw4ICszNzUsMTAg QEAgdGVzdF9tZW1wb29sX3BlcmYodm9pZCkNCj4gPiAgCQkJCSAgICAgIE5VTEwsIE5VTEwsDQo+ ID4gIAkJCQkgICAgICBteV9vYmpfaW5pdCwgTlVMTCwNCj4gPiAgCQkJCSAgICAgIFNPQ0tFVF9J RF9BTlksIDApOw0KPiA+IC0JaWYgKG1wX2NhY2hlID09IE5VTEwpDQo+ID4gKwlpZiAobXBfY2Fj aGUgPT0gTlVMTCkgew0KPiA+ICsJCXByaW50ZigiY2Fubm90IGFsbG9jYXRlIG1lbXBvb2wgKHdp dGggY2FjaGUpXG4iKTsNCj4gPiAgCQlnb3RvIGVycjsNCj4gPiArCX0NCj4gPg0KPiA+ICAJZGVm YXVsdF9wb29sX29wcyA9IHJ0ZV9tYnVmX2Jlc3RfbWVtcG9vbF9vcHMoKTsNCj4gPiAgCS8qIENy ZWF0ZSBhIG1lbXBvb2wgYmFzZWQgb24gRGVmYXVsdCBoYW5kbGVyICovDQo+ID4gQEAgLTM3Niw2 NSArNDA2LDgzIEBAIHRlc3RfbWVtcG9vbF9wZXJmKHZvaWQpDQo+ID4NCj4gPiAgCXJ0ZV9tZW1w b29sX29ial9pdGVyKGRlZmF1bHRfcG9vbCwgbXlfb2JqX2luaXQsIE5VTEwpOw0KPiA+DQo+ID4g LQkvKiBwZXJmb3JtYW5jZSB0ZXN0IHdpdGggMSwgMiBhbmQgbWF4IGNvcmVzICovDQo+ID4gIAlw cmludGYoInN0YXJ0IHBlcmZvcm1hbmNlIHRlc3QgKHdpdGhvdXQgY2FjaGUpXG4iKTsNCj4gPiAt DQo+ID4gLQlpZiAoZG9fb25lX21lbXBvb2xfdGVzdChtcF9ub2NhY2hlLCAxKSA8IDApDQo+ID4g LQkJZ290byBlcnI7DQo+ID4gLQ0KPiA+IC0JaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QobXBfbm9j YWNoZSwgMikgPCAwKQ0KPiA+ICsJaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QobXBfbm9jYWNoZSwg Y29yZXMsIDApIDwgMCkNCj4gPiAgCQlnb3RvIGVycjsNCj4gPg0KPiA+IC0JaWYgKGRvX29uZV9t ZW1wb29sX3Rlc3QobXBfbm9jYWNoZSwgcnRlX2xjb3JlX2NvdW50KCkpIDwgMCkNCj4gPiAtCQln b3RvIGVycjsNCj4gPiAtDQo+ID4gLQkvKiBwZXJmb3JtYW5jZSB0ZXN0IHdpdGggMSwgMiBhbmQg bWF4IGNvcmVzICovDQo+ID4gIAlwcmludGYoInN0YXJ0IHBlcmZvcm1hbmNlIHRlc3QgZm9yICVz ICh3aXRob3V0IGNhY2hlKVxuIiwNCj4gPiAgCSAgICAgICBkZWZhdWx0X3Bvb2xfb3BzKTsNCj4g PiAtDQo+ID4gLQlpZiAoZG9fb25lX21lbXBvb2xfdGVzdChkZWZhdWx0X3Bvb2wsIDEpIDwgMCkN Cj4gPiArCWlmIChkb19vbmVfbWVtcG9vbF90ZXN0KGRlZmF1bHRfcG9vbCwgY29yZXMsIDApIDwg MCkNCj4gPiAgCQlnb3RvIGVycjsNCj4gPg0KPiA+IC0JaWYgKGRvX29uZV9tZW1wb29sX3Rlc3Qo ZGVmYXVsdF9wb29sLCAyKSA8IDApDQo+ID4gKwlwcmludGYoInN0YXJ0IHBlcmZvcm1hbmNlIHRl c3QgKHdpdGggY2FjaGUpXG4iKTsNCj4gPiArCWlmIChkb19vbmVfbWVtcG9vbF90ZXN0KG1wX2Nh Y2hlLCBjb3JlcywgMCkgPCAwKQ0KPiA+ICAJCWdvdG8gZXJyOw0KPiA+DQo+ID4gLQlpZiAoZG9f b25lX21lbXBvb2xfdGVzdChkZWZhdWx0X3Bvb2wsIHJ0ZV9sY29yZV9jb3VudCgpKSA8IDApDQo+ ID4gKwlwcmludGYoInN0YXJ0IHBlcmZvcm1hbmNlIHRlc3QgKHdpdGggdXNlci1vd25lZCBjYWNo ZSlcbiIpOw0KPiA+ICsJaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QobXBfbm9jYWNoZSwgY29yZXMs IDEpIDwgMCkNCj4gPiAgCQlnb3RvIGVycjsNCj4gPg0KPiA+IC0JLyogcGVyZm9ybWFuY2UgdGVz dCB3aXRoIDEsIDIgYW5kIG1heCBjb3JlcyAqLw0KPiA+IC0JcHJpbnRmKCJzdGFydCBwZXJmb3Jt YW5jZSB0ZXN0ICh3aXRoIGNhY2hlKVxuIik7DQo+ID4gKwlydGVfbWVtcG9vbF9saXN0X2R1bXAo c3Rkb3V0KTsNCj4gPg0KPiA+IC0JaWYgKGRvX29uZV9tZW1wb29sX3Rlc3QobXBfY2FjaGUsIDEp IDwgMCkNCj4gPiAtCQlnb3RvIGVycjsNCj4gPiArCXJldCA9IDA7DQo+ID4NCj4gPiAtCWlmIChk b19vbmVfbWVtcG9vbF90ZXN0KG1wX2NhY2hlLCAyKSA8IDApDQo+ID4gLQkJZ290byBlcnI7DQo+ ID4gK2VycjoNCj4gPiArCXJ0ZV9tZW1wb29sX2ZyZWUobXBfY2FjaGUpOw0KPiA+ICsJcnRlX21l bXBvb2xfZnJlZShtcF9ub2NhY2hlKTsNCj4gPiArCXJ0ZV9tZW1wb29sX2ZyZWUoZGVmYXVsdF9w b29sKTsNCj4gPiArCXJldHVybiByZXQ7DQo+ID4gK30NCj4gPg0KPiA+IC0JaWYgKGRvX29uZV9t ZW1wb29sX3Rlc3QobXBfY2FjaGUsIHJ0ZV9sY29yZV9jb3VudCgpKSA8IDApDQo+ID4gLQkJZ290 byBlcnI7DQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArdGVzdF9tZW1wb29sX3BlcmZfMWNvcmUodm9p ZCkNCj4gPiArew0KPiA+ICsJcmV0dXJuIGRvX2FsbF9tZW1wb29sX3BlcmZfdGVzdHMoMSk7DQo+ ID4gK30NCj4gPg0KPiA+IC0JLyogcGVyZm9ybWFuY2UgdGVzdCB3aXRoIDEsIDIgYW5kIG1heCBj b3JlcyAqLw0KPiA+IC0JcHJpbnRmKCJzdGFydCBwZXJmb3JtYW5jZSB0ZXN0ICh3aXRoIHVzZXIt b3duZWQgY2FjaGUpXG4iKTsNCj4gPiAtCXVzZV9leHRlcm5hbF9jYWNoZSA9IDE7DQo+ID4gK3N0 YXRpYyBpbnQNCj4gPiArdGVzdF9tZW1wb29sX3BlcmZfMmNvcmVzKHZvaWQpDQo+ID4gK3sNCj4g PiArCWlmIChydGVfbGNvcmVfY291bnQoKSA8IDIpIHsNCj4gPiArCQlwcmludGYoIm5vdCBlbm91 Z2ggbGNvcmVzXG4iKTsNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKwl9DQo+ID4gKwlyZXR1cm4g ZG9fYWxsX21lbXBvb2xfcGVyZl90ZXN0cygyKTsNCj4gPiArfQ0KPiA+DQo+ID4gLQlpZiAoZG9f b25lX21lbXBvb2xfdGVzdChtcF9ub2NhY2hlLCAxKSA8IDApDQo+ID4gLQkJZ290byBlcnI7DQo+ ID4gK3N0YXRpYyBpbnQNCj4gPiArdGVzdF9tZW1wb29sX3BlcmZfYWxsY29yZXModm9pZCkNCj4g PiArew0KPiA+ICsJcmV0dXJuIGRvX2FsbF9tZW1wb29sX3BlcmZfdGVzdHMocnRlX2xjb3JlX2Nv dW50KCkpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK3Rlc3RfbWVtcG9v bF9wZXJmKHZvaWQpDQo+ID4gK3sNCj4gPiArCWludCByZXQgPSAtMTsNCj4gPg0KPiA+IC0JaWYg KGRvX29uZV9tZW1wb29sX3Rlc3QobXBfbm9jYWNoZSwgMikgPCAwKQ0KPiA+ICsJLyogcGVyZm9y bWFuY2UgdGVzdCB3aXRoIDEsIDIgYW5kIG1heCBjb3JlcyAqLw0KPiA+ICsJaWYgKGRvX2FsbF9t ZW1wb29sX3BlcmZfdGVzdHMoMSkgPCAwKQ0KPiA+ICAJCWdvdG8gZXJyOw0KPiA+ICsJaWYgKHJ0 ZV9sY29yZV9jb3VudCgpID09IDEpDQo+ID4gKwkJZ290byBkb25lOw0KPiA+DQo+ID4gLQlpZiAo ZG9fb25lX21lbXBvb2xfdGVzdChtcF9ub2NhY2hlLCBydGVfbGNvcmVfY291bnQoKSkgPCAwKQ0K PiA+ICsJaWYgKGRvX2FsbF9tZW1wb29sX3BlcmZfdGVzdHMoMikgPCAwKQ0KPiA+ICAJCWdvdG8g ZXJyOw0KPiA+ICsJaWYgKHJ0ZV9sY29yZV9jb3VudCgpID09IDIpDQo+ID4gKwkJZ290byBkb25l Ow0KPiA+DQo+ID4gLQlydGVfbWVtcG9vbF9saXN0X2R1bXAoc3Rkb3V0KTsNCj4gPiArCWlmIChk b19hbGxfbWVtcG9vbF9wZXJmX3Rlc3RzKHJ0ZV9sY29yZV9jb3VudCgpKSA8IDApDQo+ID4gKwkJ Z290byBlcnI7DQo+ID4NCj4gPiArZG9uZToNCj4gPiAgCXJldCA9IDA7DQo+ID4NCj4gPiAgZXJy Og0KPiA+IC0JcnRlX21lbXBvb2xfZnJlZShtcF9jYWNoZSk7DQo+ID4gLQlydGVfbWVtcG9vbF9m cmVlKG1wX25vY2FjaGUpOw0KPiA+IC0JcnRlX21lbXBvb2xfZnJlZShkZWZhdWx0X3Bvb2wpOw0K PiA+ICAJcmV0dXJuIHJldDsNCj4gPiAgfQ0KPiA+DQo+ID4gIFJFR0lTVEVSX1BFUkZfVEVTVCht ZW1wb29sX3BlcmZfYXV0b3Rlc3QsIHRlc3RfbWVtcG9vbF9wZXJmKTsNCj4gPiArUkVHSVNURVJf UEVSRl9URVNUKG1lbXBvb2xfcGVyZl9hdXRvdGVzdF8xY29yZSwgdGVzdF9tZW1wb29sX3BlcmZf MWNvcmUpOw0KPiA+ICtSRUdJU1RFUl9QRVJGX1RFU1QobWVtcG9vbF9wZXJmX2F1dG90ZXN0XzJj b3JlcywgdGVzdF9tZW1wb29sX3BlcmZfMmNvcmVzKTsNCj4gPiArUkVHSVNURVJfUEVSRl9URVNU KG1lbXBvb2xfcGVyZl9hdXRvdGVzdF9hbGxjb3JlcywNCj4gPiB0ZXN0X21lbXBvb2xfcGVyZl9h bGxjb3Jlcyk7DQo+ID4gLS0NCj4gPiAyLjE3LjENCg0K