From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,URIBL_SBL,URIBL_SBL_A autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A196CC433FF for ; Mon, 29 Jul 2019 06:25:28 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id F2F402070B for ; Mon, 29 Jul 2019 06:25:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="XwMDggYl"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="UIZf1QYF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F2F402070B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=marvell.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E1BAF1BEC9; Mon, 29 Jul 2019 08:25:26 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 1AC611BE87 for ; Mon, 29 Jul 2019 08:25:25 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x6T6PPWK014241; Sun, 28 Jul 2019 23:25:25 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=N7abjKtVfvDLa4LAvQVpR05Ufzr047XvCDbRRnKrCZ4=; b=XwMDggYlTLNBu8ipON9oCqyHdEGDqFOH0ki+d+WfbJo/lDwcYN3daIoCEVKMByfgOHhI w2o5pUn0VsQVMt7enuNDlHbIMogEvuEt9KSu66t6auVhGzKG3NXv+zgu+RzzVXz9nWkQ t8YCv8aVZKpBTn2sVQd4kwt2o4iy/5qVCnZIuyhiuOjFUesMzFqaQE1/GjBPsFHdAgVV PcBCUAHGDR1eOasPTMUfAawfgoiN/DsKKxU79CTiJCvfPkRmHEVjtPpyRPXzFudhf1r7 x+69XFVvInCNUF45e3G3BrKhSVevJgnlfjrrjFa2CoVlud2VnCbqB/gGmpEhbN98KF06 7g== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0b-0016f401.pphosted.com with ESMTP id 2u0p4kx2ga-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 28 Jul 2019 23:25:24 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sun, 28 Jul 2019 23:25:18 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.54) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sun, 28 Jul 2019 23:25:18 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D6i5kHcqEUvmk3tj5AtHsJsq1fnPz+qWIc8HGU0O6fBbB87DHp6hI9xqmacuWfmlvpe5FRhykw1oJzUhaoEes0tJG8AqcpbQW9B/+7iTW5LBLjVfgJw4LkZaxbPuRjPxGLj5XKgFK1/epALX0rMW7so3HScfUXj+I0bEf+mnVk3qWYczOTZxhhu9r3MFN6T3+s6J3W5qiKSL3ua58Xq1VO+zV7z0BOrFBtwzzpbhazMAF8Pn4kmrkp/ZMD+VKqgqJWzYELAx1CqRAWjAWqi+AcPoxWQxihuzSWj4UVTLkl3P//xv4bdpoXqiSrNgNnCu2pzKjgya6nNNnVnWHW+65Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N7abjKtVfvDLa4LAvQVpR05Ufzr047XvCDbRRnKrCZ4=; b=Pn4i3QKW/T/kS6JM/6xPFJD+GFUIG3XBUYWYQIqLy2yYEMTmaGtRwfsb2AJm4uZeThJKRGmZlpmYegjevLZ/dcgaAlCwREUH4vD019hqIrAM1Zwh4EVTwp8PzHrAgwEz6F0B58RRJTJLg+vlIMRyseaMy9h0f6Wi0Cmnwk1nJ9LQ56VQES+4kbztJfoisA+24XSn6HEmpdXr/XvTMXM4SkS3vQC3uQgT4s6j55K9ktiDJ0lkdZghytkvYr7B4EjtOzghG5aoQ3nAPru8xTzYUw+j3nR0wNKMfPv3h6PNUr1eor//ceUP0vjrR7CZkWdqiTcmx7+FGTVmrEL2j0/3Zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=marvell.com;dmarc=pass action=none header.from=marvell.com;dkim=pass header.d=marvell.com;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N7abjKtVfvDLa4LAvQVpR05Ufzr047XvCDbRRnKrCZ4=; b=UIZf1QYFpZZIkItig//cGVvffdHnF1cMSQ51+/9gfKeZxEPuVVFCsBpdkVaHIIwM0Xf+3ceTLr0BfHPuZynTy5D3ZJXwtHJW9YQJmmB3QYWFSa/Rnt2gMPKiuRPcLo9ujqmiuTpEGe19bYSSbEs6vXCrmw1zTJl8EwCrubJ0P0c= Received: from CH2PR18MB3381.namprd18.prod.outlook.com (52.132.246.204) by CH2PR18MB3253.namprd18.prod.outlook.com (52.132.245.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2115.14; Mon, 29 Jul 2019 06:25:14 +0000 Received: from CH2PR18MB3381.namprd18.prod.outlook.com ([fe80::189c:3889:b207:8922]) by CH2PR18MB3381.namprd18.prod.outlook.com ([fe80::189c:3889:b207:8922%5]) with mapi id 15.20.2115.005; Mon, 29 Jul 2019 06:25:14 +0000 From: Vamsi Krishna Attunuru To: Andrew Rybchenko CC: "thomas@monjalon.net" , Jerin Jacob Kollanukkaran , "olivier.matz@6wind.com" , "ferruh.yigit@intel.com" , "anatoly.burakov@intel.com" , "Kiran Kumar Kokkilagadda" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v8 1/5] mempool: populate mempool with page sized chunks of memory Thread-Index: AQHVQRjlH/HjuNGYjEOIEzqTLatfH6bYC6KAgAATbeCAAHnHAIAAv2oQgAAIMACAB8ZywA== Date: Mon, 29 Jul 2019 06:25:14 +0000 Message-ID: References: <20190717090408.13717-1-vattunuru@marvell.com> <20190723053821.30227-1-vattunuru@marvell.com> <20190723053821.30227-2-vattunuru@marvell.com> <4b9cec50-348a-3359-04ee-3b567b49aa9f@solarflare.com> <0b77d853-48f7-6c6d-8687-3bd46b91e19d@solarflare.com> In-Reply-To: <0b77d853-48f7-6c6d-8687-3bd46b91e19d@solarflare.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [14.140.231.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8bf3983c-2214-4549-8e49-08d713ed8456 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:CH2PR18MB3253; x-ms-traffictypediagnostic: CH2PR18MB3253: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 01136D2D90 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(136003)(396003)(39850400004)(376002)(346002)(189003)(199004)(13464003)(99286004)(102836004)(186003)(66066001)(5660300002)(26005)(2906002)(54906003)(6506007)(11346002)(53546011)(4326008)(25786009)(55016002)(316002)(9686003)(76176011)(81166006)(256004)(478600001)(52536014)(81156014)(486006)(7696005)(3846002)(14444005)(6116002)(8676002)(74316002)(7736002)(305945005)(76116006)(6916009)(64756008)(66446008)(68736007)(33656002)(8936002)(66556008)(66476007)(66946007)(86362001)(55236004)(14454004)(6246003)(476003)(446003)(53936002)(229853002)(71190400001)(71200400001)(6436002); DIR:OUT; SFP:1101; SCL:1; SRVR:CH2PR18MB3253; H:CH2PR18MB3381.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Qlq12hgoVftxv8H5Jtj2KRBjV+7+brEN8JcbNISLnYYCC4GEn9vpvdAqLWw/Ga//ZqYr8k0p22pzDzcygOfSf8flSgUN0O90UsYRIxwwMl7QRNwSq9v0WbbYiJNj5gDkuNJ95X9LJvKTKLbYUQ1QmgN2Jfh7c3MCXHLx4O/vwP2zbA0FlKfd0ZBck7npcWlwVy2cvd1NAxEobG1ruE8/0am4jf5dQ4aX9cGtH5j7JNmvnNgyebVeUiHTzdE1KHqGhsWo+C8+Zgn2Dr4sJ447B78QGRoNbqwRVhbKQvjzzo1HSWrLyp5S2+/j3bEm8m7hcUwpgDbXH9iRpfpnz1PwZq333Vbaj8RE4zCL1J4lnSSWatCo3mlpIRJoPRdFxWD53lgbbo8SrO2n8sB7PXOe81QoMA0gUTofsFqzlgAS43k= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 8bf3983c-2214-4549-8e49-08d713ed8456 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2019 06:25:14.3657 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: vattunuru@marvell.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR18MB3253 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:5.22.84,1.0.8 definitions=2019-07-29_03:2019-07-26,2019-07-29 signatures=0 Subject: Re: [dpdk-dev] [PATCH v8 1/5] mempool: populate mempool with page sized chunks of memory X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5kcmV3IFJ5YmNo ZW5rbyA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBKdWx5 IDI0LCAyMDE5IDEyOjU4IFBNDQo+IFRvOiBWYW1zaSBLcmlzaG5hIEF0dHVudXJ1IDx2YXR0dW51 cnVAbWFydmVsbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IHRob21hc0Btb25qYWxvbi5uZXQ7 IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT47DQo+IG9saXZp ZXIubWF0ekA2d2luZC5jb207IGZlcnJ1aC55aWdpdEBpbnRlbC5jb207IGFuYXRvbHkuYnVyYWtv dkBpbnRlbC5jb207DQo+IEtpcmFuIEt1bWFyIEtva2tpbGFnYWRkYSA8a2lyYW5rdW1hcmtAbWFy dmVsbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2OCAxLzVdIG1lbXBv b2w6IHBvcHVsYXRlIG1lbXBvb2wgd2l0aCBwYWdlDQo+IHNpemVkIGNodW5rcyBvZiBtZW1vcnkN Cj4gDQo+IE9uIDcvMjQvMTkgMTA6MDkgQU0sIFZhbXNpIEtyaXNobmEgQXR0dW51cnUgd3JvdGU6 DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogQW5kcmV3 IFJ5YmNoZW5rbyA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4NCj4gPj4gU2VudDogV2VkbmVz ZGF5LCBKdWx5IDI0LCAyMDE5IDE6MDQgQU0NCj4gPj4gVG86IFZhbXNpIEtyaXNobmEgQXR0dW51 cnUgPHZhdHR1bnVydUBtYXJ2ZWxsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+PiBDYzogdGhvbWFz QG1vbmphbG9uLm5ldDsgSmVyaW4gSmFjb2IgS29sbGFudWtrYXJhbg0KPiA+PiA8amVyaW5qQG1h cnZlbGwuY29tPjsgb2xpdmllci5tYXR6QDZ3aW5kLmNvbTsgZmVycnVoLnlpZ2l0QGludGVsLmNv bTsNCj4gPj4gYW5hdG9seS5idXJha292QGludGVsLmNvbTsgS2lyYW4gS3VtYXIgS29ra2lsYWdh ZGRhDQo+ID4+IDxraXJhbmt1bWFya0BtYXJ2ZWxsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtk cGRrLWRldl0gW1BBVENIIHY4IDEvNV0gbWVtcG9vbDogcG9wdWxhdGUgbWVtcG9vbCB3aXRoDQo+ ID4+IHBhZ2Ugc2l6ZWQgY2h1bmtzIG9mIG1lbW9yeQ0KPiA+Pg0KPiA+PiBPbiA3LzIzLzE5IDM6 MjggUE0sIFZhbXNpIEtyaXNobmEgQXR0dW51cnUgd3JvdGU6DQo+ID4+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBBbmRyZXcgUnliY2hlbmtvIDxhcnliY2hlbmtv QHNvbGFyZmxhcmUuY29tPg0KPiA+Pj4+IFNlbnQ6IFR1ZXNkYXksIEp1bHkgMjMsIDIwMTkgNDoz OCBQTQ0KPiA+Pj4+IFRvOiBWYW1zaSBLcmlzaG5hIEF0dHVudXJ1IDx2YXR0dW51cnVAbWFydmVs bC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4+PiBDYzogdGhvbWFzQG1vbmphbG9uLm5ldDsgSmVy aW4gSmFjb2IgS29sbGFudWtrYXJhbg0KPiA+Pj4+IDxqZXJpbmpAbWFydmVsbC5jb20+OyBvbGl2 aWVyLm1hdHpANndpbmQuY29tOw0KPiA+Pj4+IGZlcnJ1aC55aWdpdEBpbnRlbC5jb207IGFuYXRv bHkuYnVyYWtvdkBpbnRlbC5jb207IEtpcmFuIEt1bWFyDQo+ID4+Pj4gS29ra2lsYWdhZGRhIDxr aXJhbmt1bWFya0BtYXJ2ZWxsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBb UEFUQ0ggdjggMS81XSBtZW1wb29sOiBwb3B1bGF0ZSBtZW1wb29sDQo+ID4+Pj4gd2l0aCBwYWdl IHNpemVkIGNodW5rcyBvZiBtZW1vcnkNCj4gPj4+Pg0KPiA+Pj4+IE9uIDcvMjMvMTkgODozOCBB TSwgdmF0dHVudXJ1QG1hcnZlbGwuY29tIHdyb3RlOg0KPiA+Pj4+PiBGcm9tOiBWYW1zaSBBdHR1 bnVydSA8dmF0dHVudXJ1QG1hcnZlbGwuY29tPg0KPiA+Pj4+Pg0KPiA+Pj4+PiBQYXRjaCBhZGRz IGEgcm91dGluZSB0byBwb3B1bGF0ZSBtZW1wb29sIGZyb20gcGFnZSBhbGlnbmVkIGFuZA0KPiA+ Pj4+PiBwYWdlIHNpemVkIGNodW5rcyBvZiBtZW1vcnkgdG8gZW5zdXJlcyBtZW1vcnkgb2JqcyBk byBub3QgZmFsbA0KPiA+Pj4+PiBhY3Jvc3MgdGhlIHBhZ2UgYm91bmRhcmllcy4gSXQncyB1c2Vm dWwgZm9yIGFwcGxpY2F0aW9ucyB0aGF0DQo+ID4+Pj4+IHJlcXVpcmUgcGh5c2ljYWxseSBjb250 aWd1b3VzIG1idWYgbWVtb3J5IHdoaWxlIHJ1bm5pbmcgaW4gSU9WQT1WQQ0KPiBtb2RlLg0KPiA+ Pj4+Pg0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBWYW1zaSBBdHR1bnVydSA8dmF0dHVudXJ1QG1h cnZlbGwuY29tPg0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBLaXJhbiBLdW1hciBLIDxraXJhbmt1 bWFya0BtYXJ2ZWxsLmNvbT4NCj4gPj4+Pj4gLS0tDQo+ID4+IDwuLi4+DQo+ID4+DQo+ID4+Pj4+ ICsJaW50IHJldDsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCXJldCA9IG1lbXBvb2xfb3BzX2FsbG9j X29uY2UobXApOw0KPiA+Pj4+PiArCWlmIChyZXQgIT0gMCkNCj4gPj4+Pj4gKwkJcmV0dXJuIHJl dDsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCWlmIChtcC0+bmJfbWVtX2NodW5rcyAhPSAwKQ0KPiA+ Pj4+PiArCQlyZXR1cm4gLUVFWElTVDsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCXBnX3N6ID0gZ2V0 X21pbl9wYWdlX3NpemUobXAtPnNvY2tldF9pZCk7DQo+ID4+Pj4+ICsJcGdfc2hpZnQgPSBydGVf YnNmMzIocGdfc3opOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJZm9yIChtel9pZCA9IDAsIG4gPSBt cC0+c2l6ZTsgbiA+IDA7IG16X2lkKyssIG4gLT0gcmV0KSB7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g KwkJcnRlX21lbXBvb2xfb3BfY2FsY19tZW1fc2l6ZV9kZWZhdWx0KG1wLCBuLCBwZ19zaGlmdCwN Cj4gPj4+Pj4gKwkJCSAgICAgJmNodW5rX3NpemUsICZhbGlnbik7DQo+ID4+Pj4gSXQgaXMgaW5j b3JyZWN0IHRvIGlnbm9yZSBtZW1wb29sIHBvb2wgb3BzIGFuZCBlbmZvcmNlIGRlZmF1bHQNCj4g Pj4+PiBoYW5kbGVyLiBVc2UgcnRlX21lbXBvb2xfb3BzX2NhbGNfbWVtX3NpemUoKS4NCj4gPj4+ PiBBbHNvIGl0IGlzIGJldHRlciB0byB0cmVhdCBuZWdhdGl2ZSByZXR1cm4gdmFsdWUgYXMgYW4g ZXJyb3IgYXMNCj4gPj4+PiBkZWZhdWx0IGZ1bmN0aW9uIGRvZXMuDQo+ID4+Pj4gKE1heSBiZSBp dCBteSBtaXN0YWtlIGluIHJldHVybiB2YWx1ZSBkZXNjcmlwdGlvbiB0aGF0IGl0IGlzIG5vdCBt ZW50aW9uZWQpLg0KPiA+Pj4+DQo+ID4+PiBZZXMsIEkgdGhvdWdodCBzbywgYnV0IG9wc19jYWxj X21lbV9zaXplKCkgd291bGQgaW4gdHVybiBjYWxsDQo+ID4+PiBtZW1wb29sIHBtZCdzIGNhbGNf bWVtX3NpemUoKSBvcCB3aGljaCBtYXkvbWF5IG5vdCByZXR1cm4gcmVxdWlyZWQNCj4gPj4+IGNo dW5rX3NpemUgYW5kIGFsaWduIHZhbHVlcyBpbiB0aGlzIGNhc2UuIE9yIGVsc2UgaXQgd291bGQg YmUNCj4gPj4+IHNraXBwZWQgY29tcGxldGVseSBhbmQgdXNlDQo+ID4+IHBnX3N6IGZvciBib3Ro IG1lbXpvbmUgbGVuIGFuZCBhbGlnbiwgYW55d2F5cyB0aGlzICBwYWdlIHNpemVkDQo+ID4+IGFs aWdubWVudCB3aWxsIHN1aXRzIHRoZSBwbWQncyBzcGVjaWZpYyBhbGlnbiByZXF1aXJlbWVudHMu DQo+ID4+DQo+ID4+IEFueXdheSBpdCBpcyBpbmNvcnJlY3QgdG8gdmlvbGF0ZSBkcml2ZXIgb3Bz LiBkZWZhdWx0IGlzIGRlZmluaXRlbHkNCj4gPj4gd3JvbmcgZm9yIGJ1Y2tldC4NCj4gPj4gbWlu X2NodW5rX3NpemUgYW5kIGFsaWduIGlzIG1lbXBvb2wgZHJpdmVyIHJlcXVpcmVtZW50cy4gWW91 IGNhbg0KPiA+PiBoYXJkZW4gaXQsIGJ1dCBzaG91bGQgbm90IHZpb2xhdGUgaXQuDQo+ID4gZmlu ZSwgSSB3aWxsIG1vZGlmeSB0aGUgcm91dGluZSBhcyBiZWxvdywgIGNhbGwgcG1kJ3MgY2FsY19t ZW1fc2l6ZSgpIG9wIGFuZA0KPiBvdmVyIHdyaXRlIG1pbl9jaHVua19zaXplIGlmIGl0IGRvZXMg bm90IHN1aXQgZm9yIHRoaXMgZnVuY3Rpb24ncyBwdXJwb3NlLg0KPiA+DQo+ID4gKyAgICAgICB0 b3RhbF9lbHRfc3ogPSBtcC0+aGVhZGVyX3NpemUgKyBtcC0+ZWx0X3NpemUgKyBtcC0+dHJhaWxl cl9zaXplOw0KPiA+ICsgICAgICAgaWYgKHRvdGFsX2VsdF9zeiA+IHBnX3N6KQ0KPiA+ICsgICAg ICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+DQo+ID4gKyAgICAgICBmb3IgKG16X2lkID0gMCwg biA9IG1wLT5zaXplOyBuID4gMDsgbXpfaWQrKywgbiAtPSByZXQpIHsNCj4gPg0KPiA+IC0gICAg ICAgICAgICAgICBydGVfbWVtcG9vbF9vcF9jYWxjX21lbV9zaXplX2RlZmF1bHQobXAsIG4sIHBn X3NoaWZ0LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNodW5rX3NpemUsICZh bGlnbik7DQo+ID4gKyAgICAgICAgICAgICAgIHJldCA9IHJ0ZV9tZW1wb29sX29wc19jYWxjX21l bV9zaXplKG1wLCBuLCBwZ19zaGlmdCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZtaW5fY2h1bmtfc2l6ZSwgJmFsaWduKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg IGlmIChyZXQgPCAwKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgaWYgKG1pbl9jaHVua19zaXplID4gcGdfc3opDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgbWluX2NodW5rX3NpemUgPSBwZ19zejsNCj4gPg0KPiA+ IENoYW5nZXMgbG9vayBmaW5lLj8NCj4gDQo+IE5vLCB5b3UgY2FuJ3QgdmlvbGF0ZSBtaW5fY2h1 bmtfc2l6ZSByZXF1aXJlbWVudC4gSWYgaXQgaXMgdW5hY2NlcHRhYmxlLCBlcnJvcg0KPiBzaG91 bGQgYmUgcmV0dXJuZWQuIFNvLCB5b3Ugc2hvdWxkIG5vdCBjaGVjayB0b3RhbF9lbHRfc3ogYWJv dmUgc2VwYXJhdGVseS4NCg0KRmluZSwgd2lsbCBwdXQgbWluX2NodW5rX3NpemUgcmVxIGNoZWNr IGFuZCByZXR1cm4gZXJyb3IgaWYgaXQncyBpbmFwcHJvcHJpYXRlLg0KSSB3aWxsIHNlbmQgVjkg d2l0aCBhZGRyZXNzaW5nIGFsbCBvdGhlciBjb21tZW50cy4NCkJ0dywgc29ycnkgZm9yIGRlbGF5 ZWQgcmVzcG9uc2UuDQoNCg0K