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 71A1B459AF; Mon, 16 Sep 2024 16:02:03 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4B7F84025F; Mon, 16 Sep 2024 16:02:03 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 6D77340150 for ; Mon, 16 Sep 2024 16:02:02 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4X6mhm07LFz6LCy4; Mon, 16 Sep 2024 21:58:16 +0800 (CST) Received: from frapeml100005.china.huawei.com (unknown [7.182.85.132]) by mail.maildlp.com (Postfix) with ESMTPS id CADC2140B18; Mon, 16 Sep 2024 22:02:00 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100005.china.huawei.com (7.182.85.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Mon, 16 Sep 2024 16:02:00 +0200 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039; Mon, 16 Sep 2024 16:02:00 +0200 From: Konstantin Ananyev To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "dev@dpdk.org" CC: "hofors@lysator.liu.se" , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Stephen Hemminger" , Konstantin Ananyev , David Marchand , Jerin Jacob Subject: RE: [PATCH v4 1/7] eal: add static per-lcore memory allocation facility Thread-Topic: [PATCH v4 1/7] eal: add static per-lcore memory allocation facility Thread-Index: AQHbCCfu/ChzCKfo7k645pI+U0QOKbJabPRg Date: Mon, 16 Sep 2024 14:02:00 +0000 Message-ID: <23d1b3c5828546128b9ed21e98ac1ae1@huawei.com> References: <20240912084429.703405-2-mattias.ronnblom@ericsson.com> <20240916105210.721315-1-mattias.ronnblom@ericsson.com> <20240916105210.721315-2-mattias.ronnblom@ericsson.com> In-Reply-To: <20240916105210.721315-2-mattias.ronnblom@ericsson.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.206.138.42] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 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 DQoNCj4gSW50cm9kdWNlIERQREsgcGVyLWxjb3JlIGlkIHZhcmlhYmxlcywgb3IgbGNvcmUgdmFy aWFibGVzIGZvciBzaG9ydC4NCj4gDQo+IEFuIGxjb3JlIHZhcmlhYmxlIGhhcyBvbmUgdmFsdWUg Zm9yIGV2ZXJ5IGN1cnJlbnQgYW5kIGZ1dHVyZSBsY29yZQ0KPiBpZC1lcXVpcHBlZCB0aHJlYWQu DQo+IA0KPiBUaGUgcHJpbWFyeSA8cnRlX2xjb3JlX3Zhci5oPiB1c2UgY2FzZSBpcyBmb3Igc3Rh dGljYWxseSBhbGxvY2F0aW5nDQo+IHNtYWxsLCBmcmVxdWVudGx5LWFjY2Vzc2VkIGRhdGEgc3Ry dWN0dXJlcywgZm9yIHdoaWNoIG9uZSBpbnN0YW5jZQ0KPiBzaG91bGQgZXhpc3QgZm9yIGVhY2gg bGNvcmUuDQo+IA0KPiBMY29yZSB2YXJpYWJsZXMgYXJlIHNpbWlsYXIgdG8gdGhyZWFkLWxvY2Fs IHN0b3JhZ2UgKFRMUywgZS5nLiwgQzExDQo+IF9UaHJlYWRfbG9jYWwpLCBidXQgZGVjb3VwbGlu ZyB0aGUgdmFsdWVzJyBsaWZlIHRpbWUgd2l0aCB0aGF0IG9mIHRoZQ0KPiB0aHJlYWRzLg0KPiAN Cj4gTGNvcmUgdmFyaWFibGVzIGFyZSBhbHNvIHNpbWlsYXIgaW4gdGVybXMgb2YgZnVuY3Rpb25h bGl0eSBwcm92aWRlZCBieQ0KPiBGcmVlQlNEIGtlcm5lbCdzIERQQ1BVXyooKSBmYW1pbHkgb2Yg bWFjcm9zIGFuZCB0aGUgYXNzb2NpYXRlZA0KPiBidWlsZC10aW1lIG1hY2hpbmVyeS4gRFBDUFUg dXNlcyBsaW5rZXIgc2NyaXB0cywgd2hpY2ggZWZmZWN0aXZlbHkNCj4gcHJldmVudHMgdGhlIHJl dXNlIG9mIGl0cywgb3RoZXJ3aXNlIHNlZW1pbmdseSB2aWFibGUsIGFwcHJvYWNoLg0KPiANCj4g VGhlIGN1cnJlbnRseS1wcmV2YWlsaW5nIHdheSB0byBzb2x2ZSB0aGUgc2FtZSBwcm9ibGVtIGFz IGxjb3JlDQo+IHZhcmlhYmxlcyBpcyB0byBrZWVwIGEgbW9kdWxlJ3MgcGVyLWxjb3JlIGRhdGEg YXMgUlRFX01BWF9MQ09SRS1zaXplZA0KPiBhcnJheSBvZiBjYWNoZS1hbGlnbmVkLCBSVEVfQ0FD SEVfR1VBUkRlZCBzdHJ1Y3RzLiBUaGUgYmVuZWZpdCBvZg0KPiBsY29yZSB2YXJpYWJsZXMgb3Zl ciB0aGlzIGFwcHJvYWNoIGlzIHRoYXQgZGF0YSByZWxhdGVkIHRvIHRoZSBzYW1lDQo+IGxjb3Jl IG5vdyBpcyBjbG9zZSAoc3BhdGlhbGx5LCBpbiBtZW1vcnkpLCByYXRoZXIgdGhhbiBkYXRhIHVz ZWQgYnkNCj4gdGhlIHNhbWUgbW9kdWxlLCB3aGljaCBpbiB0dXJuIGF2b2lkIGV4Y2Vzc2l2ZSB1 c2Ugb2YgcGFkZGluZywNCj4gcG9sbHV0aW5nIGNhY2hlcyB3aXRoIHVudXNlZCBkYXRhLg0KPiAN Cj4gU2lnbmVkLW9mZi1ieTogTWF0dGlhcyBSw7ZubmJsb20gPG1hdHRpYXMucm9ubmJsb21AZXJp Y3Nzb24uY29tPg0KPiBBY2tlZC1ieTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0 ZW1zLmNvbT4NCg0KTEdUTSBpbiBnZW5lcmFsLCBmZXcgc21hbGwgcXVlc3Rpb25zIChtb3N0bHkg bml0cyksIHNlZSBiZWxvdy4gDQogDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvbGliL2VhbC9j b21tb24vZWFsX2NvbW1vbl9sY29yZV92YXIuYw0KPiBAQCAtMCwwICsxLDc4IEBADQo+ICsvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsgKiBDb3B5cmlnaHQoYykg MjAyNCBFcmljc3NvbiBBQg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlIDxpbnR0eXBlcy5oPg0K PiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiArDQo+ICsjaWZkZWYgUlRFX0VYRUNfRU5WX1dJTkRP V1MNCj4gKyNpbmNsdWRlIDxtYWxsb2MuaD4NCj4gKyNlbmRpZg0KPiArDQo+ICsjaW5jbHVkZSA8 cnRlX2NvbW1vbi5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9kZWJ1Zy5oPg0KPiArI2luY2x1ZGUgPHJ0 ZV9sb2cuaD4NCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV9sY29yZV92YXIuaD4NCj4gKw0KPiArI2lu Y2x1ZGUgImVhbF9wcml2YXRlLmgiDQo+ICsNCj4gKyNkZWZpbmUgTENPUkVfQlVGRkVSX1NJWkUg KFJURV9NQVhfTENPUkVfVkFSICogUlRFX01BWF9MQ09SRSkNCj4gKw0KPiArc3RhdGljIHZvaWQg Kmxjb3JlX2J1ZmZlcjsNCj4gK3N0YXRpYyBzaXplX3Qgb2Zmc2V0ID0gUlRFX01BWF9MQ09SRV9W QVI7DQo+ICsNCj4gK3N0YXRpYyB2b2lkICoNCj4gK2xjb3JlX3Zhcl9hbGxvYyhzaXplX3Qgc2l6 ZSwgc2l6ZV90IGFsaWduKQ0KPiArew0KPiArCXZvaWQgKmhhbmRsZTsNCj4gKwl2b2lkICp2YWx1 ZTsNCj4gKw0KPiArCW9mZnNldCA9IFJURV9BTElHTl9DRUlMKG9mZnNldCwgYWxpZ24pOw0KPiAr DQo+ICsJaWYgKG9mZnNldCArIHNpemUgPiBSVEVfTUFYX0xDT1JFX1ZBUikgew0KPiArI2lmZGVm IFJURV9FWEVDX0VOVl9XSU5ET1dTDQo+ICsJCWxjb3JlX2J1ZmZlciA9IF9hbGlnbmVkX21hbGxv YyhMQ09SRV9CVUZGRVJfU0laRSwNCj4gKwkJCQkJICAgICAgIFJURV9DQUNIRV9MSU5FX1NJWkUp Ow0KPiArI2Vsc2UNCj4gKwkJbGNvcmVfYnVmZmVyID0gYWxpZ25lZF9hbGxvYyhSVEVfQ0FDSEVf TElORV9TSVpFLA0KPiArCQkJCQkgICAgIExDT1JFX0JVRkZFUl9TSVpFKTsNCj4gKyNlbmRpZg0K DQpEb24ndCByZW1lbWJlciBkaWQgdGhhdCBxdWVzdGlvbiBhbHJlYWR5IGFyaXNlIG9yIG5vdDoN CkZvciBkZWJ1Z2dpbmcgYW5kIGhlYWx0aC1jaGVja2luZyBwdXJwb3NlcyAtIHdvdWxkIGl0IG1h a2Ugc2Vuc2UgdG8gbGluayBhbGwNCmxjb3JlX2J1ZmZlciB2YWx1ZXMgaW50byBhIGxpbmtlZCBs aXN0Pw0KU28gdXNlci9kZXZlbG9wZXIvc29tZSB0b29sIGNhbiB3YWxrIG92ZXIgaXQgdG8gY2hl Y2sgdGhhdCBwcm92aWRlZCBoYW5kbGUgdmFsdWUNCmlzIHJlYWxseSBhIHZhbGlkIGxjb3JlX3Zh ciwgZXRjLg0KDQo+ICsJCVJURV9WRVJJRlkobGNvcmVfYnVmZmVyICE9IE5VTEwpOw0KPiArDQo+ ICsJCW9mZnNldCA9IDA7DQo+ICsJfQ0KPiArDQo+ICsJaGFuZGxlID0gUlRFX1BUUl9BREQobGNv cmVfYnVmZmVyLCBvZmZzZXQpOw0KPiArDQo+ICsJb2Zmc2V0ICs9IHNpemU7DQo+ICsNCj4gKwlS VEVfTENPUkVfVkFSX0ZPUkVBQ0hfVkFMVUUodmFsdWUsIGhhbmRsZSkNCj4gKwkJbWVtc2V0KHZh bHVlLCAwLCBzaXplKTsNCj4gKw0KPiArCUVBTF9MT0coREVCVUcsICJBbGxvY2F0ZWQgJSJQUkl1 UFRSIiBieXRlcyBvZiBwZXItbGNvcmUgZGF0YSB3aXRoIGEgIg0KPiArCQkiJSJQUkl1UFRSIi1i eXRlIGFsaWdubWVudCIsIHNpemUsIGFsaWduKTsNCj4gKw0KPiArCXJldHVybiBoYW5kbGU7DQo+ ICt9DQo+ICsNCj4gK3ZvaWQgKg0KPiArcnRlX2xjb3JlX3Zhcl9hbGxvYyhzaXplX3Qgc2l6ZSwg c2l6ZV90IGFsaWduKQ0KPiArew0KPiArCS8qIEhhdmluZyB0aGUgcGVyLWxjb3JlIGJ1ZmZlciBz aXplIGFsaWduZWQgb24gY2FjaGUgbGluZXMNCj4gKwkgKiBhc3N1cmVzIGFzIHdlbGwgYXMgaGF2 aW5nIHRoZSBiYXNlIHBvaW50ZXIgYWxpZ25lZCBvbiBjYWNoZQ0KPiArCSAqIHNpemUgYXNzdXJl cyB0aGF0IGFsaWduZWQgb2Zmc2V0cyBhbHNvIHRyYW5zbGF0ZSB0byBhbGlwZ25lZA0KPiArCSAq IHBvaW50ZXJzIGFjcm9zcyBhbGwgdmFsdWVzLg0KPiArCSAqLw0KPiArCVJURV9CVUlMRF9CVUdf T04oUlRFX01BWF9MQ09SRV9WQVIgJSBSVEVfQ0FDSEVfTElORV9TSVpFICE9IDApOw0KPiArCVJU RV9BU1NFUlQoYWxpZ24gPD0gUlRFX0NBQ0hFX0xJTkVfU0laRSk7DQo+ICsJUlRFX0FTU0VSVChz aXplIDw9IFJURV9NQVhfTENPUkVfVkFSKTsNCj4gKw0KPiArCS8qICcwJyBtZWFucyBhc2tpbmcg Zm9yIHdvcnN0LWNhc2UgYWxpZ25tZW50IHJlcXVpcmVtZW50cyAqLw0KPiArCWlmIChhbGlnbiA9 PSAwKQ0KPiArCQlhbGlnbiA9IGFsaWdub2YobWF4X2FsaWduX3QpOw0KPiArDQo+ICsJUlRFX0FT U0VSVChydGVfaXNfcG93ZXJfb2ZfMihhbGlnbikpOw0KPiArDQo+ICsJcmV0dXJuIGxjb3JlX3Zh cl9hbGxvYyhzaXplLCBhbGlnbik7DQo+ICt9DQoNCi4uLi4NCg0KPiBkaWZmIC0tZ2l0IGEvbGli L2VhbC9pbmNsdWRlL3J0ZV9sY29yZV92YXIuaCBiL2xpYi9lYWwvaW5jbHVkZS9ydGVfbGNvcmVf dmFyLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZWMzYWI3 MTRhOA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2xpYi9lYWwvaW5jbHVkZS9ydGVfbGNvcmVf dmFyLmgNCg0KLi4uIA0KDQo+ICsvKioNCj4gKyAqIEdpdmVuIHRoZSBsY29yZSB2YXJpYWJsZSB0 eXBlLCBwcm9kdWNlcyB0aGUgdHlwZSBvZiB0aGUgbGNvcmUNCj4gKyAqIHZhcmlhYmxlIGhhbmRs ZS4NCj4gKyAqLw0KPiArI2RlZmluZSBSVEVfTENPUkVfVkFSX0hBTkRMRV9UWVBFKHR5cGUpCQlc DQo+ICsJdHlwZSAqDQo+ICsNCj4gKy8qKg0KPiArICogRGVmaW5lIGFuIGxjb3JlIHZhcmlhYmxl IGhhbmRsZS4NCj4gKyAqDQo+ICsgKiBUaGlzIG1hY3JvIGRlZmluZXMgYSB2YXJpYWJsZSB3aGlj aCBpcyB1c2VkIGFzIGEgaGFuZGxlIHRvIGFjY2Vzcw0KPiArICogdGhlIHZhcmlvdXMgaW5zdGFu Y2VzIG9mIGEgcGVyLWxjb3JlIGlkIHZhcmlhYmxlLg0KPiArICoNCj4gKyAqIFRoZSBhaW0gd2l0 aCB0aGlzIG1hY3JvIGlzIHRvIG1ha2UgY2xlYXIgYXQgdGhlIHBvaW50IG9mDQo+ICsgKiBkZWNs YXJhdGlvbiB0aGF0IHRoaXMgaXMgYW4gbGNvcmUgaGFuZGxlLCByYXRoZXIgdGhhbiBhIHJlZ3Vs YXINCj4gKyAqIHBvaW50ZXIuDQo+ICsgKg0KPiArICogQWRkIEBiIHN0YXRpYyBhcyBhIHByZWZp eCBpbiBjYXNlIHRoZSBsY29yZSB2YXJpYWJsZSBpcyBvbmx5IHRvIGJlDQo+ICsgKiBhY2Nlc3Nl ZCBmcm9tIGEgcGFydGljdWxhciB0cmFuc2xhdGlvbiB1bml0Lg0KPiArICovDQo+ICsjZGVmaW5l IFJURV9MQ09SRV9WQVJfSEFORExFKHR5cGUsIG5hbWUpCVwNCj4gKwlSVEVfTENPUkVfVkFSX0hB TkRMRV9UWVBFKHR5cGUpIG5hbWUNCj4gKw0KPiArLyoqDQo+ICsgKiBBbGxvY2F0ZSBzcGFjZSBm b3IgYW4gbGNvcmUgdmFyaWFibGUsIGFuZCBpbml0aWFsaXplIGl0cyBoYW5kbGUuDQo+ICsgKg0K PiArICogVGhlIHZhbHVlcyBvZiB0aGUgbGNvcmUgdmFyaWFibGUgYXJlIGluaXRpYWxpemVkIHRv IHplcm8uDQo+ICsgKi8NCj4gKyNkZWZpbmUgUlRFX0xDT1JFX1ZBUl9BTExPQ19TSVpFX0FMSUdO KGhhbmRsZSwgc2l6ZSwgYWxpZ24pCVwNCj4gKwloYW5kbGUgPSBydGVfbGNvcmVfdmFyX2FsbG9j KHNpemUsIGFsaWduKQ0KPiArDQo+ICsvKioNCj4gKyAqIEFsbG9jYXRlIHNwYWNlIGZvciBhbiBs Y29yZSB2YXJpYWJsZSwgYW5kIGluaXRpYWxpemUgaXRzIGhhbmRsZSwNCj4gKyAqIHdpdGggdmFs dWVzIGFsaWduZWQgZm9yIGFueSB0eXBlIG9mIG9iamVjdC4NCj4gKyAqDQo+ICsgKiBUaGUgdmFs dWVzIG9mIHRoZSBsY29yZSB2YXJpYWJsZSBhcmUgaW5pdGlhbGl6ZWQgdG8gemVyby4NCj4gKyAq Lw0KPiArI2RlZmluZSBSVEVfTENPUkVfVkFSX0FMTE9DX1NJWkUoaGFuZGxlLCBzaXplKQlcDQo+ ICsJUlRFX0xDT1JFX1ZBUl9BTExPQ19TSVpFX0FMSUdOKGhhbmRsZSwgc2l6ZSwgMCkNCj4gKw0K PiArLyoqDQo+ICsgKiBBbGxvY2F0ZSBzcGFjZSBmb3IgYW4gbGNvcmUgdmFyaWFibGUgb2YgdGhl IHNpemUgYW5kIGFsaWdubWVudCByZXF1aXJlbWVudHMNCj4gKyAqIHN1Z2dlc3RlZCBieSB0aGUg aGFuZGxlIHBvaW50ZXIgdHlwZSwgYW5kIGluaXRpYWxpemUgaXRzIGhhbmRsZS4NCj4gKyAqDQo+ ICsgKiBUaGUgdmFsdWVzIG9mIHRoZSBsY29yZSB2YXJpYWJsZSBhcmUgaW5pdGlhbGl6ZWQgdG8g emVyby4NCj4gKyAqLw0KPiArI2RlZmluZSBSVEVfTENPUkVfVkFSX0FMTE9DKGhhbmRsZSkJCQkJ CVwNCj4gKwlSVEVfTENPUkVfVkFSX0FMTE9DX1NJWkVfQUxJR04oaGFuZGxlLCBzaXplb2YoKiho YW5kbGUpKSwJXA0KPiArCQkJCSAgICAgICBhbGlnbm9mKHR5cGVvZigqKGhhbmRsZSkpKSkNCj4g Kw0KPiArLyoqDQo+ICsgKiBBbGxvY2F0ZSBhbiBleHBsaWNpdGx5LXNpemVkLCBleHBsaWNpdGx5 LWFsaWduZWQgbGNvcmUgdmFyaWFibGUgYnkNCj4gKyAqIG1lYW5zIG9mIGEgQHJlZiBSVEVfSU5J VCBjb25zdHJ1Y3Rvci4NCj4gKyAqDQo+ICsgKiBUaGUgdmFsdWVzIG9mIHRoZSBsY29yZSB2YXJp YWJsZSBhcmUgaW5pdGlhbGl6ZWQgdG8gemVyby4NCj4gKyAqLw0KPiArI2RlZmluZSBSVEVfTENP UkVfVkFSX0lOSVRfU0laRV9BTElHTihuYW1lLCBzaXplLCBhbGlnbikJCVwNCj4gKwlSVEVfSU5J VChydGVfbGNvcmVfdmFyX2luaXRfICMjIG5hbWUpCQkJCVwNCj4gKwl7CQkJCQkJCQlcDQo+ICsJ CVJURV9MQ09SRV9WQVJfQUxMT0NfU0laRV9BTElHTihuYW1lLCBzaXplLCBhbGlnbik7CVwNCj4g Kwl9DQo+ICsNCj4gKy8qKg0KPiArICogQWxsb2NhdGUgYW4gZXhwbGljaXRseS1zaXplZCBsY29y ZSB2YXJpYWJsZSBieSBtZWFucyBvZiBhIEByZWYNCj4gKyAqIFJURV9JTklUIGNvbnN0cnVjdG9y Lg0KPiArICoNCj4gKyAqIFRoZSB2YWx1ZXMgb2YgdGhlIGxjb3JlIHZhcmlhYmxlIGFyZSBpbml0 aWFsaXplZCB0byB6ZXJvLg0KPiArICovDQo+ICsjZGVmaW5lIFJURV9MQ09SRV9WQVJfSU5JVF9T SVpFKG5hbWUsIHNpemUpCQlcDQo+ICsJUlRFX0xDT1JFX1ZBUl9JTklUX1NJWkVfQUxJR04obmFt ZSwgc2l6ZSwgMCkNCj4gKw0KPiArLyoqDQo+ICsgKiBBbGxvY2F0ZSBhbiBsY29yZSB2YXJpYWJs ZSBieSBtZWFucyBvZiBhIEByZWYgUlRFX0lOSVQgY29uc3RydWN0b3IuDQo+ICsgKg0KPiArICog VGhlIHZhbHVlcyBvZiB0aGUgbGNvcmUgdmFyaWFibGUgYXJlIGluaXRpYWxpemVkIHRvIHplcm8u DQo+ICsgKi8NCj4gKyNkZWZpbmUgUlRFX0xDT1JFX1ZBUl9JTklUKG5hbWUpCQkJCQlcDQo+ICsJ UlRFX0lOSVQocnRlX2xjb3JlX3Zhcl9pbml0XyAjIyBuYW1lKQkJCQlcDQo+ICsJewkJCQkJCQkJ XA0KPiArCQlSVEVfTENPUkVfVkFSX0FMTE9DKG5hbWUpOwkJCQlcDQo+ICsJfQ0KPiArDQo+ICsv KioNCj4gKyAqIEdldCB2b2lkIHBvaW50ZXIgdG8gbGNvcmUgdmFyaWFibGUgaW5zdGFuY2Ugd2l0 aCB0aGUgc3BlY2lmaWVkDQo+ICsgKiBsY29yZSBpZC4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gbGNv cmVfaWQNCj4gKyAqICAgVGhlIGxjb3JlIGlkIHNwZWNpZnlpbmcgd2hpY2ggb2YgdGhlIEBjIFJU RV9NQVhfTENPUkUgdmFsdWUNCj4gKyAqICAgaW5zdGFuY2VzIHNob3VsZCBiZSBhY2Nlc3NlZC4g VGhlIGxjb3JlIGlkIG5lZWQgbm90IGJlIHZhbGlkDQo+ICsgKiAgIChlLmcuLCBtYXkgYmUgQHJl ZiBMQ09SRV9JRF9BTlkpLCBidXQgaW4gc3VjaCBhIGNhc2UsIHRoZSBwb2ludGVyDQo+ICsgKiAg IGlzIGFsc28gbm90IHZhbGlkIChhbmQgdGh1cyBzaG91bGQgbm90IGJlIGRlcmVmZXJlbmNlZCku DQo+ICsgKiBAcGFyYW0gaGFuZGxlDQo+ICsgKiAgIFRoZSBsY29yZSB2YXJpYWJsZSBoYW5kbGUu DQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCAqDQo+ICtydGVfbGNvcmVfdmFyX2xjb3Jl X3B0cih1bnNpZ25lZCBpbnQgbGNvcmVfaWQsIHZvaWQgKmhhbmRsZSkNCj4gK3sNCj4gKwlyZXR1 cm4gUlRFX1BUUl9BREQoaGFuZGxlLCBsY29yZV9pZCAqIFJURV9NQVhfTENPUkVfVkFSKTsNCj4g K30NCj4gKw0KPiArLyoqDQo+ICsgKiBHZXQgcG9pbnRlciB0byBsY29yZSB2YXJpYWJsZSBpbnN0 YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgbGNvcmUgaWQuDQo+ICsgKg0KPiArICogQHBhcmFtIGxj b3JlX2lkDQo+ICsgKiAgIFRoZSBsY29yZSBpZCBzcGVjaWZ5aW5nIHdoaWNoIG9mIHRoZSBAYyBS VEVfTUFYX0xDT1JFIHZhbHVlDQo+ICsgKiAgIGluc3RhbmNlcyBzaG91bGQgYmUgYWNjZXNzZWQu IFRoZSBsY29yZSBpZCBuZWVkIG5vdCBiZSB2YWxpZA0KPiArICogICAoZS5nLiwgbWF5IGJlIEBy ZWYgTENPUkVfSURfQU5ZKSwgYnV0IGluIHN1Y2ggYSBjYXNlLCB0aGUgcG9pbnRlcg0KPiArICog ICBpcyBhbHNvIG5vdCB2YWxpZCAoYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBkZXJlZmVyZW5jZWQp Lg0KPiArICogQHBhcmFtIGhhbmRsZQ0KPiArICogICBUaGUgbGNvcmUgdmFyaWFibGUgaGFuZGxl Lg0KPiArICovDQo+ICsjZGVmaW5lIFJURV9MQ09SRV9WQVJfTENPUkVfVkFMVUUobGNvcmVfaWQs IGhhbmRsZSkJCQlcDQo+ICsJKCh0eXBlb2YoaGFuZGxlKSlydGVfbGNvcmVfdmFyX2xjb3JlX3B0 cihsY29yZV9pZCwgaGFuZGxlKSkNCj4gKw0KPiArLyoqDQo+ICsgKiBHZXQgcG9pbnRlciB0byBs Y29yZSB2YXJpYWJsZSBpbnN0YW5jZSBvZiB0aGUgY3VycmVudCB0aHJlYWQuDQo+ICsgKg0KPiAr ICogTWF5IG9ubHkgYmUgdXNlZCBieSBFQUwgdGhyZWFkcyBhbmQgcmVnaXN0ZXJlZCBub24tRUFM IHRocmVhZHMuDQo+ICsgKi8NCj4gKyNkZWZpbmUgUlRFX0xDT1JFX1ZBUl9WQUxVRShoYW5kbGUp IFwNCj4gKwlSVEVfTENPUkVfVkFSX0xDT1JFX1ZBTFVFKHJ0ZV9sY29yZV9pZCgpLCBoYW5kbGUp DQoNCldvdWxkIGl0IG1ha2Ugc2Vuc2UgdG8gY2hlY2sgdGhhdCBydGVfbGNvcmVfaWQoKSAhPSAg TENPUkVfSURfQU5ZPw0KQWZ0ZXIgYWxsIGlmIHBlb3BsZSBkbyBub3Qgd2FudCB0aGlzIGV4dHJh IGNoZWNrLCB0aGV5IGNhbiBwcm9iYWJseSB1c2UNClJURV9MQ09SRV9WQVJfTENPUkVfVkFMVUUo cnRlX2xjb3JlX2lkKCksIGhhbmRsZSkNCmV4cGxpY2l0bHkuDQoNCj4gKw0KPiArLyoqDQo+ICsg KiBJdGVyYXRlIG92ZXIgZWFjaCBsY29yZSBpZCdzIHZhbHVlIGZvciBhbiBsY29yZSB2YXJpYWJs ZS4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdmFsdWUNCj4gKyAqICAgQSBwb2ludGVyIHN1Y2Nlc3Np dmVseSBzZXQgdG8gcG9pbnQgdG8gbGNvcmUgdmFyaWFibGUgdmFsdWUNCj4gKyAqICAgY29ycmVz cG9uZGluZyB0byBldmVyeSBsY29yZSBpZCAodXAgdG8gQGMgUlRFX01BWF9MQ09SRSkuDQo+ICsg KiBAcGFyYW0gaGFuZGxlDQo+ICsgKiAgIFRoZSBsY29yZSB2YXJpYWJsZSBoYW5kbGUuDQo+ICsg Ki8NCj4gKyNkZWZpbmUgUlRFX0xDT1JFX1ZBUl9GT1JFQUNIX1ZBTFVFKHZhbHVlLCBoYW5kbGUp CQkJXA0KPiArCWZvciAodW5zaWduZWQgaW50IGxjb3JlX2lkID0JCQkJCVwNCj4gKwkJICAgICAo KCh2YWx1ZSkgPSBSVEVfTENPUkVfVkFSX0xDT1JFX1ZBTFVFKDAsIGhhbmRsZSkpLCAwKTsgXA0K PiArCSAgICAgbGNvcmVfaWQgPCBSVEVfTUFYX0xDT1JFOwkJCQkJXA0KPiArCSAgICAgbGNvcmVf aWQrKywgKHZhbHVlKSA9IFJURV9MQ09SRV9WQVJfTENPUkVfVkFMVUUobGNvcmVfaWQsIGhhbmRs ZSkpDQoNCk1pZ2h0IGJlIGEgYml0IGJldHRlciAoYW5kIHNhZmVyKSB0byBtYWtlIGxjb3JlX2lk IGEgbWFjcm8gcGFyYW1ldGVyPw0KSS5FLjoNCmRlZmluZSBSVEVfTENPUkVfVkFSX0ZPUkVBQ0hf VkFMVUUodmFsdWUsIGhhbmRsZSwgbGNvcmVfaWQpIFwNCmZvciAoKGxjb3JlX2lkKSA9IC4uLiAN Cg0K