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 0DBB0A0542; Tue, 4 Oct 2022 22:01:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B1E0440DFB; Tue, 4 Oct 2022 22:01:11 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 64AAE40DDC for ; Tue, 4 Oct 2022 22:01:10 +0200 (CEST) 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: [PATCH v4] mempool: fix mempool cache flushing algorithm Date: Tue, 4 Oct 2022 22:01:08 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87390@smartserver.smartshare.dk> In-Reply-To: <20220202103354.79832-1-mb@smartsharesystems.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v4] mempool: fix mempool cache flushing algorithm Thread-Index: AdgYIGHYIUN1aCoVR2GQLxO6PjpMFzAAybTw References: <98CBD80474FA8B44BF855DF32C47DC35D86DB2@smartserver.smartshare.dk> <20220202103354.79832-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 PiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRvOm1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbV0N Cj4gU2VudDogV2VkbmVzZGF5LCAyIEZlYnJ1YXJ5IDIwMjIgMTEuMzQNCj4gDQo+IFRoaXMgcGF0 Y2ggZml4ZXMgdGhlIHJ0ZV9tZW1wb29sX2RvX2dlbmVyaWNfcHV0KCkgY2FjaGluZyBhbGdvcml0 aG0sDQo+IHdoaWNoIHdhcyBmdW5kYW1lbnRhbGx5IHdyb25nLCBjYXVzaW5nIG11bHRpcGxlIHBl cmZvcm1hbmNlIGlzc3VlcyB3aGVuDQo+IGZsdXNoaW5nLg0KPiANCj4gQWx0aG91Z2ggdGhlIGJ1 Z3MgZG8gaGF2ZSBzZXJpb3VzIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyB3aGVuDQo+IGZsdXNo aW5nLCB0aGUgZnVuY3Rpb24gZGlkIG5vdCBmYWlsIHdoZW4gZmx1c2hpbmcgKG9yIG90aGVyd2lz ZSkuDQo+IEJhY2twb3J0aW5nIGNvdWxkIGJlIGNvbnNpZGVyZWQgb3B0aW9uYWwuDQo+IA0KPiBU aGUgYWxnb3JpdGhtIHdhczoNCj4gIDEuIEFkZCB0aGUgb2JqZWN0cyB0byB0aGUgY2FjaGUNCj4g IDIuIEFueXRoaW5nIGdyZWF0ZXIgdGhhbiB0aGUgY2FjaGUgc2l6ZSAoaWYgaXQgY3Jvc3NlcyB0 aGUgY2FjaGUgZmx1c2gNCj4gICAgIHRocmVzaG9sZCkgaXMgZmx1c2hlZCB0byB0aGUgcmluZy4N Cj4gDQo+IFBsZWFzZSBub3RlIHRoYXQgdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBzb3VyY2UgY29k ZSBzYWlkIHRoYXQgaXQga2VwdA0KPiAiY2FjaGUgbWluIHZhbHVlIiBvYmplY3RzIGFmdGVyIGZs dXNoaW5nLCBidXQgdGhlIGZ1bmN0aW9uIGFjdHVhbGx5DQo+IGtlcHQNCj4gdGhlIGNhY2hlIGZ1 bGwgYWZ0ZXIgZmx1c2hpbmcsIHdoaWNoIHRoZSBhYm92ZSBkZXNjcmlwdGlvbiByZWZsZWN0cy4N Cj4gDQo+IE5vdywgdGhlIGFsZ29yaXRobSBpczoNCj4gIDEuIElmIHRoZSBvYmplY3RzIGNhbm5v dCBiZSBhZGRlZCB0byB0aGUgY2FjaGUgd2l0aG91dCBjcm9zc2luZyB0aGUNCj4gICAgIGZsdXNo IHRocmVzaG9sZCwgZmx1c2ggdGhlIGNhY2hlIHRvIHRoZSByaW5nLg0KPiAgMi4gQWRkIHRoZSBv YmplY3RzIHRvIHRoZSBjYWNoZS4NCj4gDQo+IFRoaXMgcGF0Y2ggZml4ZXMgdGhlc2UgYnVnczoN Cj4gDQo+IDEuIFRoZSBjYWNoZSB3YXMgc3RpbGwgZnVsbCBhZnRlciBmbHVzaGluZy4NCj4gSW4g dGhlIG9wcG9zaXRlIGRpcmVjdGlvbiwgaS5lLiB3aGVuIGdldHRpbmcgb2JqZWN0cyBmcm9tIHRo ZSBjYWNoZSwNCj4gdGhlDQo+IGNhY2hlIGlzIHJlZmlsbGVkIHRvIGZ1bGwgbGV2ZWwgd2hlbiBp dCBjcm9zc2VzIHRoZSBsb3cgd2F0ZXJtYXJrDQo+ICh3aGljaA0KPiBoYXBwZW5zIHRvIGJlIHpl cm8pLg0KPiBTaW1pbGFybHksIHRoZSBjYWNoZSBzaG91bGQgYmUgZmx1c2hlZCB0byBlbXB0eSBs ZXZlbCB3aGVuIGl0IGNyb3NzZXMNCj4gdGhlIGhpZ2ggd2F0ZXJtYXJrICh3aGljaCBoYXBwZW5z IHRvIGJlIDEuNSB4IHRoZSBzaXplIG9mIHRoZSBjYWNoZSkuDQo+IFRoZSBleGlzdGluZyBmbHVz aGluZyBiZWhhdmlvdXIgd2FzIHN1Ym9wdGltYWwgZm9yIHJlYWwgYXBwbGljYXRpb25zLA0KPiBi ZWNhdXNlIGNyb3NzaW5nIHRoZSBsb3cgb3IgaGlnaCB3YXRlcm1hcmsgdHlwaWNhbGx5IGhhcHBl bnMgd2hlbiB0aGUNCj4gYXBwbGljYXRpb24gaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgbnVtYmVy IG9mIHB1dC9nZXQgZXZlbnRzIGFyZSBvdXQgb2YNCj4gYmFsYW5jZSwgZS5nLiB3aGVuIGFic29y YmluZyBhIGJ1cnN0IG9mIHBhY2tldHMgaW50byBhIFFvUyBxdWV1ZQ0KPiAoZ2V0dGluZyBtb3Jl IG1idWZzIGZyb20gdGhlIG1lbXBvb2wpLCBvciB3aGVuIGEgYnVyc3Qgb2YgcGFja2V0cyBpcw0K PiB0cmlja2xpbmcgb3V0IGZyb20gdGhlIFFvUyBxdWV1ZSAocHV0dGluZyB0aGUgbWJ1ZnMgYmFj ayBpbnRvIHRoZQ0KPiBtZW1wb29sKS4NCj4gTm93LCB0aGUgbWVtcG9vbCBjYWNoZSBpcyBjb21w bGV0ZWx5IGZsdXNoZWQgd2hlbiBjcm9zc2luZyB0aGUgZmx1c2gNCj4gdGhyZXNob2xkLCBzbyBv bmx5IHRoZSBuZXdseSBwdXQgKGhvdCkgb2JqZWN0cyByZW1haW4gaW4gdGhlIG1lbXBvb2wNCj4g Y2FjaGUgYWZ0ZXJ3YXJkcy4NCj4gDQo+IFRoaXMgYnVnIGRlZ3JhZGVkIHBlcmZvcm1hbmNlIGNh dXNlZCBieSB0b28gZnJlcXVlbnQgZmx1c2hpbmcuDQo+IA0KPiBDb25zaWRlciB0aGlzIGFwcGxp Y2F0aW9uIHNjZW5hcmlvOg0KPiANCj4gRWl0aGVyLCBhbiBsY29yZSB0aHJlYWQgaW4gdGhlIGFw cGxpY2F0aW9uIGlzIGluIGEgc3RhdGUgb2YgYmFsYW5jZSwNCj4gd2hlcmUgaXQgdXNlcyB0aGUg bWVtcG9vbCBjYWNoZSB3aXRoaW4gaXRzIGZsdXNoL3JlZmlsbCBib3VuZGFyaWVzOyBpbg0KPiB0 aGlzIHNpdHVhdGlvbiwgdGhlIGZsdXNoIG1ldGhvZCBpcyBsZXNzIGltcG9ydGFudCwgYW5kIHRo aXMgZml4IGlzDQo+IGlycmVsZXZhbnQuDQo+IA0KPiBPciwgYW4gbGNvcmUgdGhyZWFkIGluIHRo ZSBhcHBsaWNhdGlvbiBpcyBvdXQgb2YgYmFsYW5jZSAoZWl0aGVyDQo+IHBlcm1hbmVudGx5IG9y IHRlbXBvcmFyaWx5KSwgYW5kIG1vc3RseSBnZXRzIG9yIHB1dHMgb2JqZWN0cyBmcm9tL3RvDQo+ IHRoZQ0KPiBtZW1wb29sLiBJZiBpdCBtb3N0bHkgcHV0cyBvYmplY3RzLCBub3QgZmx1c2hpbmcg YWxsIG9mIHRoZSBvYmplY3RzDQo+IHdpbGwNCj4gY2F1c2UgbW9yZSBmcmVxdWVudCBmbHVzaGlu Zy4gVGhpcyBpcyB0aGUgc2NlbmFyaW8gYWRkcmVzc2VkIGJ5IHRoaXMNCj4gZml4LiBFLmcuOg0K PiANCj4gQ2FjaGUgc2l6ZT0yNTYsIGZsdXNodGhyZXNoPTM4NCAoMS41eCBzaXplKSwgaW5pdGlh bCBsZW49MjU2Ow0KPiBhcHBsaWNhdGlvbiBidXJzdCBsZW49MzIuDQo+IA0KPiBJZiB0aGVyZSBh cmUgInNpemUiIG9iamVjdHMgaW4gdGhlIGNhY2hlIGFmdGVyIGZsdXNoaW5nLCB0aGUgY2FjaGUg aXMNCj4gZmx1c2hlZCBhdCBldmVyeSA0dGggYnVyc3QuDQo+IA0KPiBJZiB0aGUgY2FjaGUgaXMg Zmx1c2hlZCBjb21wbGV0ZWx5LCB0aGUgY2FjaGUgaXMgb25seSBmbHVzaGVkIGF0IGV2ZXJ5DQo+ IDE2dGggYnVyc3QuDQo+IA0KPiBBcyB5b3UgY2FuIHNlZSwgdGhpcyBidWcgY2F1c2VkIHRoZSBj YWNoZSB0byBiZSBmbHVzaGVkIDR4IHRvbw0KPiBmcmVxdWVudGx5IGluIHRoaXMgZXhhbXBsZS4N Cj4gDQo+IEFuZCB3aGVuL2lmIHRoZSBhcHBsaWNhdGlvbiB0aHJlYWQgYnJlYWtzIGl0cyBwYXR0 ZXJuIG9mIGNvbnRpbnVvdXNseQ0KPiBwdXR0aW5nIG9iamVjdHMsIGFuZCBzdWRkZW5seSBzdGFy dHMgdG8gZ2V0IG9iamVjdHMgaW5zdGVhZCwgaXQgd2lsbA0KPiBlaXRoZXIgZ2V0IG9iamVjdHMg YWxyZWFkeSBpbiB0aGUgY2FjaGUsIG9yIHRoZSBnZXQoKSBmdW5jdGlvbiB3aWxsDQo+IHJlZmls bCB0aGUgY2FjaGUuDQo+IA0KPiBUaGUgY29uY2VwdCBvZiBub3QgZmx1c2hpbmcgdGhlIGNhY2hl IGNvbXBsZXRlbHkgd2FzIHByb2JhYmx5IGJhc2VkIG9uDQo+IGFuIGFzc3VtcHRpb24gdGhhdCBp dCBpcyBtb3JlIGxpa2VseSBmb3IgYW4gYXBwbGljYXRpb24ncyBsY29yZSB0aHJlYWQNCj4gdG8g Z2V0KCkgYWZ0ZXIgZmx1c2hpbmcgdGhhbiB0byBwdXQoKSBhZnRlciBmbHVzaGluZy4NCj4gSSBz dHJvbmdseSBkaXNhZ3JlZSB3aXRoIHRoaXMgYXNzdW1wdGlvbiEgSWYgYW4gYXBwbGljYXRpb24g dGhyZWFkIGlzDQo+IGNvbnRpbnVvdXNseSBwdXR0aW5nIHNvIG11Y2ggdGhhdCBpdCBvdmVyZmxv d3MgdGhlIGNhY2hlLCBpdCBpcyBtdWNoDQo+IG1vcmUgbGlrZWx5IHRvIGtlZXAgcHV0dGluZyB0 aGFuIGl0IGlzIHRvIHN0YXJ0IGdldHRpbmcuIElmIGluIGRvdWJ0LA0KPiBjb25zaWRlciBob3cg Q1BVIGJyYW5jaCBwcmVkaWN0b3JzIHdvcms6IFdoZW4gdGhlIGFwcGxpY2F0aW9uIGhhcyBkb25l DQo+IHNvbWV0aGluZyBtYW55IHRpbWVzIGNvbnNlY3V0aXZlbHksIHRoZSBicmFuY2ggcHJlZGlj dG9yIHdpbGwgZXhwZWN0DQo+IHRoZQ0KPiBhcHBsaWNhdGlvbiB0byBkbyB0aGUgc2FtZSBhZ2Fp biwgcmF0aGVyIHRoYW4gc3VkZGVubHkgZG8gc29tZXRoaW5nDQo+IGVsc2UuDQo+IA0KPiBBbHNv LCBpZiB5b3UgY29uc2lkZXIgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBhbGdvcml0aG0gaW4gdGhl IHNvdXJjZQ0KPiBjb2RlLCBhbmQgYWdyZWUgdGhhdCAiY2FjaGUgbWluIHZhbHVlIiBjYW5ub3Qg bWVhbiAiY2FjaGUgc2l6ZSIsIHRoZQ0KPiBmdW5jdGlvbiBkaWQgbm90IGJlaGF2ZSBhcyBpbnRl bmRlZC4gVGhpcyBpbiBpdHNlbGYgaXMgYSBidWcuDQo+IA0KPiAyLiBUaGUgZmx1c2ggdGhyZXNo b2xkIGNvbXBhcmlzb24gd2FzIG9mZiBieSBvbmUuDQo+IEl0IG11c3QgYmUgImxlbiA+IGZsdXNo dGhyZXNoIiwgbm90ICJsZW4gPj0gZmx1c2h0aHJlc2giLg0KPiBDb25zaWRlciBhIGZsdXNoIG11 bHRpcGxpZXIgb2YgMSBpbnN0ZWFkIG9mIDEuNTsgdGhlIGNhY2hlIHdvdWxkIGJlDQo+IGZsdXNo ZWQgYWxyZWFkeSB3aGVuIHJlYWNoaW5nIHNpemUgb2JqZWNzLCBub3Qgd2hlbiBleGNlZWRpbmcg c2l6ZQ0KPiBvYmplY3RzLiBJbiBvdGhlciB3b3JkcywgdGhlIGNhY2hlIHdvdWxkIG5vdCBiZSBh YmxlIHRvIGhvbGQgInNpemUiDQo+IG9iamVjdHMsIHdoaWNoIGlzIGNsZWFybHkgYSBidWcuDQo+ IE5vdywgZmx1c2hpbmcgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIGZsdXNoIHRocmVzaG9sZCBpcyBl eGNlZWRlZCwgbm90DQo+IHdoZW4gcmVhY2hlZC4NCj4gDQo+IFRoaXMgYnVnIGRlZ3JhZGVkIHBl cmZvcm1hbmNlIGR1ZSB0byBwcmVtYXR1cmUgZmx1c2hpbmcuIEluIG15IGV4YW1wbGUNCj4gYWJv dmUsIHRoaXMgYnVnIGNhdXNlZCBmbHVzaGluZyBldmVyeSAzcmQgYnVyc3QgaW5zdGVhZCBvZiBl dmVyeSA0dGguDQo+IA0KPiAzLiBUaGUgbW9zdCByZWNlbnQgKGhvdCkgb2JqZWN0cyB3ZXJlIGZs dXNoZWQsIGxlYXZpbmcgdGhlIG9sZGVzdA0KPiAoY29sZCkNCj4gb2JqZWN0cyBpbiB0aGUgbWVt cG9vbCBjYWNoZS4NCj4gVGhpcyBidWcgZGVncmFkZWQgcGVyZm9ybWFuY2UsIGJlY2F1c2UgZmx1 c2hpbmcgcHJldmVudGVkIGltbWVkaWF0ZQ0KPiByZXVzZSBvZiB0aGUgKGhvdCkgb2JqZWN0cyBh bHJlYWR5IGluIHRoZSBDUFUgY2FjaGUuDQo+IE5vdywgdGhlIGV4aXN0aW5nIChjb2xkKSBvYmpl Y3RzIGluIHRoZSBtZW1wb29sIGNhY2hlIGFyZSBmbHVzaGVkDQo+IGJlZm9yZQ0KPiB0aGUgbmV3 IChob3QpIG9iamVjdHMgYXJlIGFkZGVkIHRoZSB0byB0aGUgbWVtcG9vbCBjYWNoZS4NCj4gDQo+ IDQuIFdpdGggUlRFX0xJQlJURV9NRU1QT09MX0RFQlVHIGRlZmluZWQsIHRoZSByZXR1cm4gdmFs dWUgb2YNCj4gcnRlX21lbXBvb2xfb3BzX2VucXVldWVfYnVsaygpIHdhcyBub3QgY2hlY2tlZCB3 aGVuIGZsdXNoaW5nIHRoZSBjYWNoZS4NCj4gTm93LCBpdCBpcyBjaGVja2VkIGluIGJvdGggbG9j YXRpb25zIHdoZXJlIHVzZWQ7IGFuZCBvYnZpb3VzbHkgc3RpbGwNCj4gb25seSBpZiBSVEVfTElC UlRFX01FTVBPT0xfREVCVUcgaXMgZGVmaW5lZC4NCj4gDQo+IHYyIGNoYW5nZXM6DQo+IA0KPiAt IE5vdCBhZGRpbmcgdGhlIG5ldyBvYmplY3RzIHRvIHRoZSBtZW1wb29sIGNhY2hlIGJlZm9yZSBm bHVzaGluZyBpdA0KPiBhbHNvIGFsbG93cyB0aGUgbWVtb3J5IGFsbG9jYXRlZCBmb3IgdGhlIG1l bXBvb2wgY2FjaGUgdG8gYmUgcmVkdWNlZA0KPiBmcm9tIDMgeCB0byAyIHggUlRFX01FTVBPT0xf Q0FDSEVfTUFYX1NJWkUuDQo+IEhvd2V2ZXIsIHN1Y2ggdGhpcyBjaGFuZ2Ugd291bGQgYnJlYWsg dGhlIEFCSSwgc28gaXQgd2FzIHJlbW92ZWQgaW4gdjIuDQo+IA0KPiAtIFRoZSBtZW1wb29sIGNh Y2hlIHNob3VsZCBiZSBjYWNoZSBsaW5lIGFsaWduZWQgZm9yIHRoZSBiZW5lZml0IG9mIHRoZQ0K PiBjb3B5aW5nIG1ldGhvZCwgd2hpY2ggb24gc29tZSBDUFUgYXJjaGl0ZWN0dXJlcyBwZXJmb3Jt cyB3b3JzZSBvbiBkYXRhDQo+IGNyb3NzaW5nIGEgY2FjaGUgYm91bmRhcnkuDQo+IEhvd2V2ZXIs IHN1Y2ggdGhpcyBjaGFuZ2Ugd291bGQgYnJlYWsgdGhlIEFCSSwgc28gaXQgd2FzIHJlbW92ZWQg aW4gdjI7DQo+IGFuZCB5ZXQgYW5vdGhlciBhbHRlcm5hdGl2ZSBjb3B5aW5nIG1ldGhvZCByZXBs YWNlZCB0aGUgcnRlX21lbWNweSgpLg0KPiANCj4gdjMgY2hhbmdlczoNCj4gDQo+IC0gQWN0dWFs bHkgcmVtb3ZlIG15IG1vZGlmaWNhdGlvbnMgb2YgdGhlIHJ0ZV9tZW1wb29sX2NhY2hlIHN0cnVj dHVyZS4NCj4gDQo+IHY0IGNoYW5nZXM6DQo+IA0KPiAtIFVwZGF0ZWQgcGF0Y2ggdGl0bGUgdG8g cmVmbGVjdCB0aGF0IHRoZSBzY29wZSBvZiB0aGUgcGF0Y2ggaXMgb25seQ0KPiBtZW1wb29sIGNh Y2hlIGZsdXNoaW5nLg0KPiANCj4gLSBEbyBub3QgcmVwbGFjZSBydGVfbWVtY3B5KCkgd2l0aCBh bHRlcm5hdGl2ZSBjb3B5aW5nIG1ldGhvZC4gVGhpcyB3YXMNCj4gYSBwdXJlIG9wdGltaXphdGlv biwgbm90IGEgZml4Lg0KPiANCj4gLSBFbGFib3JhdGUgZXZlbiBtb3JlIG9uIHRoZSBidWdzIGZp eGVkIGJ5IHRoZSBtb2RpZmljYXRpb25zLg0KPiANCj4gLSBBZGRlZCA0dGggYnVsbGV0IGl0ZW0g dG8gdGhlIHBhdGNoIGRlc2NyaXB0aW9uLCByZWdhcmRpbmcNCj4gcnRlX21lbXBvb2xfb3BzX2Vu cXVldWVfYnVsaygpIHdpdGggUlRFX0xJQlJURV9NRU1QT09MX0RFQlVHLg0KPiANCj4gU2lnbmVk LW9mZi1ieTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gLS0t DQo+ICBsaWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5oIHwgMzQgKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDEyIGRl bGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgg Yi9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+IGluZGV4IDFlN2EzYzE1MjcuLmU3ZTA5ZTQ4 ZmMgMTAwNjQ0DQo+IC0tLSBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4gKysrIGIvbGli L21lbXBvb2wvcnRlX21lbXBvb2wuaA0KPiBAQCAtMTM0NCwzMSArMTM0NCw0MSBAQCBydGVfbWVt cG9vbF9kb19nZW5lcmljX3B1dChzdHJ1Y3QgcnRlX21lbXBvb2wNCj4gKm1wLCB2b2lkICogY29u c3QgKm9ial90YWJsZSwNCj4gIAlpZiAodW5saWtlbHkoY2FjaGUgPT0gTlVMTCB8fCBuID4gUlRF X01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUpKQ0KPiAgCQlnb3RvIHJpbmdfZW5xdWV1ZTsNCj4gDQo+ IC0JY2FjaGVfb2JqcyA9ICZjYWNoZS0+b2Jqc1tjYWNoZS0+bGVuXTsNCj4gKwkvKiBJZiB0aGUg cmVxdWVzdCBpdHNlbGYgaXMgdG9vIGJpZyBmb3IgdGhlIGNhY2hlICovDQo+ICsJaWYgKHVubGlr ZWx5KG4gPiBjYWNoZS0+Zmx1c2h0aHJlc2gpKQ0KPiArCQlnb3RvIHJpbmdfZW5xdWV1ZTsNCj4g DQo+ICAJLyoNCj4gIAkgKiBUaGUgY2FjaGUgZm9sbG93cyB0aGUgZm9sbG93aW5nIGFsZ29yaXRo bQ0KPiAtCSAqICAgMS4gQWRkIHRoZSBvYmplY3RzIHRvIHRoZSBjYWNoZQ0KPiAtCSAqICAgMi4g QW55dGhpbmcgZ3JlYXRlciB0aGFuIHRoZSBjYWNoZSBtaW4gdmFsdWUgKGlmIGl0IGNyb3NzZXMN Cj4gdGhlDQo+IC0JICogICBjYWNoZSBmbHVzaCB0aHJlc2hvbGQpIGlzIGZsdXNoZWQgdG8gdGhl IHJpbmcuDQo+ICsJICogICAxLiBJZiB0aGUgb2JqZWN0cyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhl IGNhY2hlIHdpdGhvdXQNCj4gKwkgKiAgIGNyb3NzaW5nIHRoZSBmbHVzaCB0aHJlc2hvbGQsIGZs dXNoIHRoZSBjYWNoZSB0byB0aGUgcmluZy4NCj4gKwkgKiAgIDIuIEFkZCB0aGUgb2JqZWN0cyB0 byB0aGUgY2FjaGUuDQo+ICAJICovDQo+IA0KPiAtCS8qIEFkZCBlbGVtZW50cyBiYWNrIGludG8g dGhlIGNhY2hlICovDQo+IC0JcnRlX21lbWNweSgmY2FjaGVfb2Jqc1swXSwgb2JqX3RhYmxlLCBz aXplb2Yodm9pZCAqKSAqIG4pOw0KPiArCWlmIChjYWNoZS0+bGVuICsgbiA8PSBjYWNoZS0+Zmx1 c2h0aHJlc2gpIHsNCj4gKwkJY2FjaGVfb2JqcyA9ICZjYWNoZS0+b2Jqc1tjYWNoZS0+bGVuXTsN Cj4gDQo+IC0JY2FjaGUtPmxlbiArPSBuOw0KPiArCQljYWNoZS0+bGVuICs9IG47DQo+ICsJfSBl bHNlIHsNCj4gKwkJY2FjaGVfb2JqcyA9ICZjYWNoZS0+b2Jqc1swXTsNCj4gDQo+IC0JaWYgKGNh Y2hlLT5sZW4gPj0gY2FjaGUtPmZsdXNodGhyZXNoKSB7DQo+IC0JCXJ0ZV9tZW1wb29sX29wc19l bnF1ZXVlX2J1bGsobXAsICZjYWNoZS0+b2Jqc1tjYWNoZS0+c2l6ZV0sDQo+IC0JCQkJY2FjaGUt PmxlbiAtIGNhY2hlLT5zaXplKTsNCj4gLQkJY2FjaGUtPmxlbiA9IGNhY2hlLT5zaXplOw0KPiAr I2lmZGVmIFJURV9MSUJSVEVfTUVNUE9PTF9ERUJVRw0KPiArCQlpZiAocnRlX21lbXBvb2xfb3Bz X2VucXVldWVfYnVsayhtcCwgY2FjaGVfb2JqcywgY2FjaGUtDQo+ID5sZW4pIDwgMCkNCj4gKwkJ CXJ0ZV9wYW5pYygiY2Fubm90IHB1dCBvYmplY3RzIGluIG1lbXBvb2xcbiIpOw0KPiArI2Vsc2UN Cj4gKwkJcnRlX21lbXBvb2xfb3BzX2VucXVldWVfYnVsayhtcCwgY2FjaGVfb2JqcywgY2FjaGUt Pmxlbik7DQo+ICsjZW5kaWYNCj4gKwkJY2FjaGUtPmxlbiA9IG47DQo+ICAJfQ0KPiANCj4gKwkv KiBBZGQgdGhlIG9iamVjdHMgdG8gdGhlIGNhY2hlLiAqLw0KPiArCXJ0ZV9tZW1jcHkoY2FjaGVf b2Jqcywgb2JqX3RhYmxlLCBzaXplb2Yodm9pZCAqKSAqIG4pOw0KPiArDQo+ICAJcmV0dXJuOw0K PiANCj4gIHJpbmdfZW5xdWV1ZToNCj4gDQo+IC0JLyogcHVzaCByZW1haW5pbmcgb2JqZWN0cyBp biByaW5nICovDQo+ICsJLyogUHV0IHRoZSBvYmplY3RzIGludG8gdGhlIHJpbmcgKi8NCj4gICNp ZmRlZiBSVEVfTElCUlRFX01FTVBPT0xfREVCVUcNCj4gIAlpZiAocnRlX21lbXBvb2xfb3BzX2Vu cXVldWVfYnVsayhtcCwgb2JqX3RhYmxlLCBuKSA8IDApDQo+ICAJCXJ0ZV9wYW5pYygiY2Fubm90 IHB1dCBvYmplY3RzIGluIG1lbXBvb2xcbiIpOw0KPiAtLQ0KPiAyLjE3LjENCg0KQW5kcmV3LCB3 b3VsZCB5b3UgcGxlYXNlIGFsc28gdGFrZSBhIGxvb2sgYXQgdGhpcyBwYXRjaCBhbmQgc2hhcmUg eW91ciBvcGluaW9uLg0KDQpJIGd1ZXNzIHRoYXQgdGhlIG1vc3QgY29udHJvdmVyc2lhbCBjaGFu Z2UgaW4gdGhlIHBhdGNoIGlzIHRoYXQgaXQgbGVhdmVzIHRoZSBtZW1wb29sIGNhY2hlIG5lYXJs eSBlbXB0eSBhZnRlciBmbHVzaGluZyBpdC4NCg0KV2l0aG91dCB0aGUgcGF0Y2gsIHRoZSBtZW1w b29sIGNhY2hlIGlzIGxlZnQgZnVsbCAoYXQgMTAwJSBzaXplKSBhZnRlciBmbHVzaGluZy4gKEZs dXNoaW5nIGlzIHRyaWdnZXJlZCBieSBjcm9zc2luZyB0aGUgZmx1c2ggdGhyZXNob2xkLCB3aGlj aCBpcyA1MCUgYWJvdmUgdGhlIGNhY2hlIHNpemUuIFRoaXMgaXMgbm90IGNoYW5nZWQgYnkgdGhl IHBhdGNoLikNCg0KQXMgZGVzY3JpYmVkIHdpdGggdGhlIHBhdGNoLCBJIGNvbnNpZGVyIHRoaXMg YmVoYXZpb3IgaW5jb3JyZWN0OiBJbiBwZXJpb2RzIHdoZXJlIGFuIGFwcGxpY2F0aW9uIGlzIHNl bmRpbmcgbW9yZSBmcm9tIGl0cyBRb1MgcXVldWVzIHRoYXQgZ29lcyBpbnRvIHRoZSBRb1MgcXVl dWVzLCB0aGUgbWVtcG9vbF9wdXQoKSBmdW5jdGlvbiBpcyBjYWxsZWQgbW9yZSBvZnRlbiB0aGFu IHRoZSBtZW1wb29sX2dldCgpIGZ1bmN0aW9uLCBzbyB0aGVyZSB3aWxsIG5hdHVyYWxseSBiZSBj b25zZWN1dGl2ZSBjYWNoZSBmbHVzaGluZy4NCg0KTWFueSBhcHBsaWNhdGlvbnMgdXNlIFFvUyBx dWV1ZXMgb3Igc2ltaWxhciB0cmFmZmljIHNoYXBlcnMsIHNvIG1lbXBvb2wgY2FjaGUgZmx1c2hp bmcgaXMgbm90IGFzIGluZnJlcXVlbnQgYW5kIGV4b3RpYyBhcyBzb21lIG1pZ2h0IHRoaW5rISAo QW5kIGZsdXNoaW5nIGEgYnVyc3Qgb2YgcGFja2V0cyBmcm9tIHRoZSBtZW1wb29sIGNhY2hlIHRv IHRoZSB1bmRlcmx5aW5nIG1lbXBvb2wgaXMgY29uc2lkZXJlZCBjb3N0bHkuKQ0KDQpXaXRob3V0 IHRoZSBwYXRjaCwgY29uc2VjdXRpdmUgY2FjaGUgZmx1c2hpbmcgd2lsbCBiZSBwcm9jZXNzZWQg YXMgbWFueSBzbWFsbCBmbHVzaGVzLCBiZWNhdXNlIG9ubHkgdGhlIDUwJSBvYmplY3RzIGFib3Zl IHRoZSBjYWNoZSBzaXplICh0aGUgb2JqZWN0cyBiZXR3ZWVuIHRoZSBjYWNoZSBzaXplIGFuZCB0 aGUgY2FjaGUgdGhyZXNob2xkKSBhcmUgZmx1c2hlZCBlYWNoIHRpbWUuDQoNCldpdGggdGhlIHBh dGNoLCB0aGUgZmx1c2hlcyB3aWxsIGJlIGZld2VyIGFuZCBsYXJnZXIsIGJlY2F1c2UgdGhlIGZ1 bGwgMTUwJSBjYWNoZSBzaXplIChldmVyeSBvYmplY3QgaW4gdGhlIGNhY2hlIHVwIHRvIHRoZSBj YWNoZSB0aHJlc2hvbGQpIHdpbGwgYmUgZmx1c2hlZCBlYWNoIHRpbWUuDQoNClBTOiBCcnVjZSBh bmQgSSBkaXNjdXNzZWQgdGhpcyBwYXRjaCBiYWNrIGluIEFwcmlsLCBidXQgZGlkbid0IHJlYWNo IGEgY29uY2x1c2lvbi4gWW91IG1pZ2h0IGZpbmQgc29tZSBpbnNpZ2h0cyBpbiB0aGF0IG1haWwg dGhyZWFkLg0KDQo=