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=-5.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,URIBL_SBL,URIBL_SBL_A autolearn=ham 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 88715C7618F for ; Wed, 17 Jul 2019 17:31:37 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id EA1D221743 for ; Wed, 17 Jul 2019 17:31:36 +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="dCSPWCMV"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="uuRix+nX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EA1D221743 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 D8AFB1BDFE; Wed, 17 Jul 2019 19:31:35 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id EA8441BD62 for ; Wed, 17 Jul 2019 19:31:33 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x6HHTpsd000663; Wed, 17 Jul 2019 10:31:30 -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=+ToeKv9NfBxnGtKqdUDojzLhQdWvI5vZ9wrZuERYqQM=; b=dCSPWCMVjmkoNWkUkplHVho7ysdZ53bRCz+7MOsOzrBQ0XZF+yXwviA8lx6mV6lNGe3y wbxb1itWC9/g37SESk6Qc0IC6ROm/TaM2piIlySAVqvtoWa6L1N4Nxespwsskfrmox2X gXPpogqZgM+nzmFGuMAP8W9QRZONRRt1xp8SIJgA08FWlAX04MnC73SRDZTaAQYBOpvt KKNk+LQ4aHJmFHAbpp8YI2VstnB3MgPB55b0q4qZzkD26wTEJrsmtZ6la8ok/KdsLpey kGx55BMJs1RGCDcgzLzuYyzgo/X7zB6uyZUPLHJQXR+TZMAj9nFdFJyFdBmAT9c5mn8v jg== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0a-0016f401.pphosted.com with ESMTP id 2ts07vh9gx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 17 Jul 2019 10:31:30 -0700 Received: from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 17 Jul 2019 10:31:27 -0700 Received: from NAM01-BY2-obe.outbound.protection.outlook.com (104.47.34.56) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 17 Jul 2019 10:31:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O4HiW5cjs42ltLayCVQsqXq4p7Q6InXfMF9ecjxUTk/RWKBTudlU1hWEkOGgVAyNJKQB/nXtCrgJYd299lfPw/Vicm3EUnXMl72o6yCpgGgUCWEH+flNtfxC8AZTGl61iiaDLBqaHqejU126/s3SPuWQv3y3lS65+z1bUaq2TKh9X7iL89fpCRSXkbCKQqvvqg5ULIh1GdVBjdELxVHfyBK1bXlOXA4PVLDdNnsY1UKJefNPzQ8ByBVKXLQoa53uC9MPzEkevdl+HZRyLvLT6MqgFal7YLlK5oxN461X9Fin96EohSm7mbiHdBCrc3RdvnOnn/cBaYo1rP8CQU+NVQ== 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=+ToeKv9NfBxnGtKqdUDojzLhQdWvI5vZ9wrZuERYqQM=; b=FP+XItrONjgkO+Khu5Qs6ZuRNF0KhNbN0B919Q0tS+O+0z69wzq90urHUvHmPCICYOawajAfS0KXZjjYPYoDUISCTg0qvX0v1f1ZQfKBjZKKk9W03V+shJZhGUSy5kycVqL2TAoFNDFbJ7/nOuqwPwhKCoThCjRpAQKMMGt07r69YIk96REpgJTJUS1l6NP4HsUOhlxDhRN1LL5MhKANWy/aptKzyTvFeuazyuUvUNPdmr+3UWWXTlKxTAVyWhjjEiyDocLjg2o5AeDFShfLWK/gVuQ+v3YjOpNosFY9pXrwpq2DslCNMACALZ9pOejrKLshzvtI0nfrP2ZqrKbcKA== 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=+ToeKv9NfBxnGtKqdUDojzLhQdWvI5vZ9wrZuERYqQM=; b=uuRix+nXgUFjALFmiZOM188hhp52r++Tgzfea9rvSOt1qd5INsBwEKb4fET5H3v9dw9aCeW8H+ffF8GegWV+tLeBI2UY4etst/m14yZnvlalxmgGp7z5xGIJuj6skCLNPfH8vEqxghOx6ePIiuiiFmdaA4Wv6XYSKlprYFUV1fY= Received: from CH2PR18MB3381.namprd18.prod.outlook.com (52.132.246.204) by CH2PR18MB3128.namprd18.prod.outlook.com (52.132.244.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.14; Wed, 17 Jul 2019 17:31:25 +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.2073.012; Wed, 17 Jul 2019 17:31:25 +0000 From: Vamsi Krishna Attunuru To: Andrew Rybchenko , "dev@dpdk.org" CC: "thomas@monjalon.net" , Jerin Jacob Kollanukkaran , "olivier.matz@6wind.com" , "ferruh.yigit@intel.com" , "anatoly.burakov@intel.com" , "Kiran Kumar Kokkilagadda" Thread-Topic: [dpdk-dev] [PATCH v7 1/4] mempool: modify mempool populate() to skip objects from page boundaries Thread-Index: AQHVPH624Ha7pKpKPEODiG+yoZDXFqbO0FKAgAAs5nA= Date: Wed, 17 Jul 2019 17:31:24 +0000 Message-ID: References: <20190625035700.2953-1-vattunuru@marvell.com> <20190717090408.13717-1-vattunuru@marvell.com> <20190717090408.13717-2-vattunuru@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [103.227.98.232] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3291dcfe-5884-439a-1941-08d70adc981a x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:CH2PR18MB3128; x-ms-traffictypediagnostic: CH2PR18MB3128: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4502; x-forefront-prvs: 01018CB5B3 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(346002)(396003)(136003)(366004)(39850400004)(189003)(199004)(13464003)(53546011)(76116006)(6506007)(25786009)(26005)(102836004)(99286004)(66946007)(14454004)(11346002)(446003)(53936002)(4326008)(76176011)(476003)(7736002)(6116002)(74316002)(6436002)(33656002)(64756008)(107886003)(54906003)(66476007)(316002)(66446008)(186003)(66556008)(6246003)(2906002)(71190400001)(66066001)(229853002)(486006)(71200400001)(81156014)(8676002)(2501003)(68736007)(81166006)(8936002)(110136005)(9686003)(5660300002)(86362001)(478600001)(256004)(305945005)(52536014)(3846002)(7696005)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:CH2PR18MB3128; 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: utvhAiq+kaMCWTQhP40EunFYjvXZE1jCcVXG1dUDMFIVvKBNrsVR9f5NMRKBhT51dWBdSjqelD5A3haZHeudH9bm6uvhxxsN+ZxkG+Y3BDRTH5b7fNOXAdUpdKkdibBZl0sqUtVacW7xROvXulMvO0IL25QPmD0sD8L3RNl34mdICbZnApH8dQgeaL5DJQRuL5Kl8NQelYhs4HMl35GU29ucASV3T/SKf+oy8d8stv1r0bjv/a5ajv72X1QLfPG2DKlY3kN20r7k+VGmLkaQcK7sry3PDLDW2rmZ0nWseKfULSZg6W7UMn09mb0nlewsNztCeZ8O2/0vUeznXFK3jsOKAyN129GlxwNyok7AfHhIoL3q1vz62blpO+DF2vrL8RDljd+/RnDyoLLJ5ZF1EiPqriiLD+wFhJnSU2Ghmqg= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 3291dcfe-5884-439a-1941-08d70adc981a X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jul 2019 17:31:25.0858 (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: CH2PR18MB3128 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:5.22.84,1.0.8 definitions=2019-07-17_07:2019-07-17,2019-07-17 signatures=0 Subject: Re: [dpdk-dev] [PATCH v7 1/4] mempool: modify mempool populate() to skip objects from page boundaries 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5r byA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBKdWx5IDE3 LCAyMDE5IDc6MDcgUE0NCj4gVG86IFZhbXNpIEtyaXNobmEgQXR0dW51cnUgPHZhdHR1bnVydUBt YXJ2ZWxsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogdGhvbWFzQG1vbmphbG9uLm5ldDsgSmVy aW4gSmFjb2IgS29sbGFudWtrYXJhbiA8amVyaW5qQG1hcnZlbGwuY29tPjsNCj4gb2xpdmllci5t YXR6QDZ3aW5kLmNvbTsgZmVycnVoLnlpZ2l0QGludGVsLmNvbTsNCj4gYW5hdG9seS5idXJha292 QGludGVsLmNvbTsgS2lyYW4gS3VtYXIgS29ra2lsYWdhZGRhDQo+IDxraXJhbmt1bWFya0BtYXJ2 ZWxsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY3IDEvNF0gbWVtcG9v bDogbW9kaWZ5IG1lbXBvb2wNCj4gcG9wdWxhdGUoKSB0byBza2lwIG9iamVjdHMgZnJvbSBwYWdl IGJvdW5kYXJpZXMNCj4gDQo+IE9uIDcvMTcvMTkgMTI6MDQgUE0sIHZhdHR1bnVydUBtYXJ2ZWxs LmNvbSB3cm90ZToNCj4gPiBGcm9tOiBWYW1zaSBBdHR1bnVydSA8dmF0dHVudXJ1QG1hcnZlbGwu Y29tPg0KPiA+DQo+ID4gQ3VycmVudGx5IHRoZSBwaHlzIGFkZHJlc3Mgb2YgYSBtZW1wb29sIG9i amVjdCBwb3B1bGF0ZWQgYnkgdGhlDQo+ID4gbWVtcG9vbCBwb3B1bGF0ZSBkZWZhdWx0KCkgcm91 dGluZSBtYXkgbm90IGJlIGNvbnRpZ3VvdXMgd2l0aCBpbiB0aGF0DQo+IG1idWYgcmFuZ2UuDQo+ ID4NCj4gPiBQYXRjaCBlbnN1cmVzIHRoYXQgZWFjaCBvYmplY3QncyBwaHlzIGFkZHJlc3MgaXMg Y29udGlndW91cyBieQ0KPiA+IG1vZGlmeWluZyBkZWZhdWx0IGJlaGF2aW91ciBvZiBtZW1wb29s IHBvcHVsYXRlKCkgdG8gcHJldmVudCBvYmplY3RzDQo+ID4gZnJvbSBiZWluZyBhY3Jvc3MgMiBw YWdlcywgZXhwZWN0IGlmIHRoZSBzaXplIG9mIG9iamVjdCBpcyBiaWdnZXIgdGhhbiBzaXplIG9m DQo+IHBhZ2UuDQo+ID4NCj4gPiBTaW5jZSB0aGUgb3ZlcmhlYWQgYWZ0ZXIgdGhpcyBtb2RpZmlj YXRpb24gd2lsbCBiZSB2ZXJ5IG1pbmltYWwNCj4gPiBjb25zaWRlcmluZyB0aGUgaHVnZXBhZ2Ug c2l6ZXMgb2YgNTEyTSAmIDFHLCBkZWZhdWx0IGJlaGF2aW91ciBpcw0KPiA+IG1vZGlmaWVkIGV4 Y2VwdCBmb3IgdGhlIG9iamVjdCBzaXplcyBiaWdnZXIgdGhhbiB0aGUgcGFnZSBzaXplLg0KPiA+ DQo+ID4gU2lnbmVkLW9mZi1ieTogVmFtc2kgQXR0dW51cnUgPHZhdHR1bnVydUBtYXJ2ZWxsLmNv bT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBLaXJhbiBLdW1hciBLIDxraXJhbmt1bWFya0BtYXJ2ZWxs LmNvbT4NCj4gDQo+IE5BQ0sNCj4gDQo+IExvb2tpbmcgYXQgTUVNUE9PTF9GX05PX0lPVkFfQ09O VElHIGRlc2NyaXB0aW9uIEkgZG9uJ3QgdW5kZXJzdGFuZA0KPiB3aHkgdGhlIHBhdGNoIGlzIG5l Y2Vzc2FyeSBhdCBhbGwuIFNvLCBJJ2QgbGlrZSB0byBrbm93IG1vcmUuIEV4YWN0IGNvbmRpdGlv bnMsDQo+IElPVkEgbW9kZSwgaHVnZXBhZ2Ugc2l6ZXMsIG1lbXBvb2wgZmxhZ3MgYW5kIGhvdyBp dCBpcyBwb3B1bGF0ZWQuDQo+IA0KDQpJIHByZXN1bWUgdGhlIGNvbW1pdCBsb2cgY2xhcmlmaWVz IHRoZSAgY2hhbmdlcyBpbiB0aGUgcGF0Y2gsIHBscyBjb3JyZWN0IG1lIGlmIGl0J3Mgbm90IGNs ZWFyLiBUaGUgcmVxdWlyZW1lbnQgaXMgdG8gY3JlYXRlIG1lbXBvb2wgb2Ygb2JqZWN0cyB0aGF0 IGVhY2ggb2JqZWN0J3MgcGh5cyBhZGRyZXNzIGluIGNvbnRpZ3VvdXMgd2l0aCBpbiBpdCdzIHJh bmdlLCAgaGF2aW5nIGZsZXhpYmlsaXR5IHRvIGNyZWF0ZSBzdWNoIG1lbXBvb2xzIGhlbHBmdWwg dG8gdGhlIGFwcGxpY2F0aW9ucyBsaWtlIEtOSSB0byBvcGVyYXRlIGluIElPVkE9VkEgbW9kZSB3 aGVyZSBLTkkga2VybmVsIG1vZGUgY2FuIHNhZmVseSB0cmFuc2xhdGUgSU9WQSBhZGRyZXNzZXMg dG8gUEEuIA0KDQpSZWdhcmRpbmcgdGhlIGV4YWN0IGNvbmRpdGlvbnMgZHJpdmVuIHRoaXMgYXBw cm9hY2ggYXJlLCB3aGVuIElPVkEgbW9kZSBpcyBzZXQgdG8gVkEgYW5kIGh1Z2UgcGFnZSBzaXpl IG9mIDJNQi81MTJNQiB1c2VkLCBzaW5jZSBLTkkgYXBwbGljYXRpb24gY3JlYXRlcyBtZW1wb29s IHdpdGhvdXQgYW55IGZsYWdzIHNldCwgbWVtcG9vbCBwb3B1bGF0ZSByb3V0aW5lIHRlbmRzIHRv IHJlc2VydmUgaW92YSBjb250aWd1b3VzIG1lbXpvbmVzIGFuZCBmaW5hbGx5IGl0IGVuZHMgdXAg cG9wdWxhdGluZyBtZW1wb29sIHdpdGggc29tZSBvYmplY3RzIHRoYXQgbWlnaHQgYmVpbmcgYWNy b3NzIHR3byBwYWdlcyhvdmVyIHRoZSBwYWdlIGJvdW5kYXJ5KSwgdGhvc2UgbWJ1ZidzIHBoeXMg YWRkcmVzcyBtaWdodCBub3QgYmUgY29udGlndW91cyBhbmQgdGhlc2UgbWVtcG9vbCBhcmUgbm90 IHN1aXRhYmxlIGZvciBvcGVyYXRpbmcgS05JIGluIElPVkE9VkEgbW9kZS4NCg0KPiA+IC0tLQ0K PiA+ICAgbGliL2xpYnJ0ZV9tZW1wb29sL3J0ZV9tZW1wb29sLmMgICAgICAgICAgICAgfCAgMiAr LQ0KPiA+ICAgbGliL2xpYnJ0ZV9tZW1wb29sL3J0ZV9tZW1wb29sX29wc19kZWZhdWx0LmMgfCAz Mw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQo+ID4gICAyIGZpbGVzIGNoYW5nZWQs IDMyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV9tZW1wb29sL3J0ZV9tZW1wb29sLmMNCj4gPiBiL2xpYi9saWJydGVfbWVtcG9v bC9ydGVfbWVtcG9vbC5jDQo+ID4gaW5kZXggNzI2MGNlMC4uMWM0ODMyNSAxMDA2NDQNCj4gPiAt LS0gYS9saWIvbGlicnRlX21lbXBvb2wvcnRlX21lbXBvb2wuYw0KPiA+ICsrKyBiL2xpYi9saWJy dGVfbWVtcG9vbC9ydGVfbWVtcG9vbC5jDQo+ID4gQEAgLTMzOSw3ICszMzksNyBAQCBydGVfbWVt cG9vbF9wb3B1bGF0ZV9pb3ZhKHN0cnVjdCBydGVfbWVtcG9vbA0KPiAqbXAsIGNoYXIgKnZhZGRy LA0KPiA+ICAgCWkgPSBydGVfbWVtcG9vbF9vcHNfcG9wdWxhdGUobXAsIG1wLT5zaXplIC0gbXAt PnBvcHVsYXRlZF9zaXplLA0KPiA+ICAgCQkoY2hhciAqKXZhZGRyICsgb2ZmLA0KPiA+ICAgCQko aW92YSA9PSBSVEVfQkFEX0lPVkEpID8gUlRFX0JBRF9JT1ZBIDogKGlvdmEgKyBvZmYpLA0KPiA+ IC0JCWxlbiAtIG9mZiwgbWVtcG9vbF9hZGRfZWxlbSwgTlVMTCk7DQo+ID4gKwkJbGVuIC0gb2Zm LCBtZW1wb29sX2FkZF9lbGVtLCBvcGFxdWUpOw0KPiANCj4gVGhlIGxhc3QgYXJndW1lbnQgaXMg dGhlIGNhbGxiYWNrIG9wYXF1ZSB2YWx1ZS4gbWVtcG9vbF9hZGRfZWxlbSgpIGRvZXMNCj4gbm90 IHVzZSB0aGUgb3BhcXVlLiBCdXQgaXQgaXMgaW5jb3JyZWN0IHRvIHVzZSBpdCBmb3Igb3RoZXIg cHVycG9zZXMgYW5kDQo+IHJlcXVpcmUgaXQgdG8gYmUgbWVtem9uZS4NCg0KVG8gYXZvaWQgbXVs dGlwbGUgY2hhbmdlcyBpbiB0aGUgbWVtcG9vbCBBUElzIGZvciBhZGRpbmcgbmV3IHZhcmlhYmxl LCBvcGFxdWUgaGFzIGJlZW4gbGV2ZXJhZ2VkIGhlcmUuIEkgdGhpbmsgdGhlcmUgaXMgbm8gaGFy bSBpbiBoYXZpbmcgdGhpcyBhcHByb2FjaCBzaW5jZSBpdCBjYXJyaWVzIHRoZSByZWxldmFudCBp bmZvIGFuZCBxdWl0ZSBzdWl0YWJsZSBiZXR3ZWVuIHRoZSAoKm1lbXBvb2xfcG9wdWxhdGVfdCkg Y2FsbHMuICANCg0KPiANCj4gPiAgIAkvKiBub3QgZW5vdWdoIHJvb20gdG8gc3RvcmUgb25lIG9i amVjdCAqLw0KPiA+ICAgCWlmIChpID09IDApIHsNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0 ZV9tZW1wb29sL3J0ZV9tZW1wb29sX29wc19kZWZhdWx0LmMNCj4gPiBiL2xpYi9saWJydGVfbWVt cG9vbC9ydGVfbWVtcG9vbF9vcHNfZGVmYXVsdC5jDQo+ID4gaW5kZXggNGUyYmZjOC4uODVkYTI2 NCAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX21lbXBvb2wvcnRlX21lbXBvb2xfb3BzX2Rl ZmF1bHQuYw0KPiA+ICsrKyBiL2xpYi9saWJydGVfbWVtcG9vbC9ydGVfbWVtcG9vbF9vcHNfZGVm YXVsdC5jDQo+ID4gQEAgLTQ1LDE5ICs0NSw0OCBAQCBydGVfbWVtcG9vbF9vcF9jYWxjX21lbV9z aXplX2RlZmF1bHQoY29uc3QNCj4gc3RydWN0IHJ0ZV9tZW1wb29sICptcCwNCj4gPiAgIAlyZXR1 cm4gbWVtX3NpemU7DQo+ID4gICB9DQo+ID4NCj4gPiArLyogUmV0dXJucyAtMSBpZiBvYmplY3Qg ZmFsbHMgb24gYSBwYWdlIGJvdW5kYXJ5LCBlbHNlIHJldHVybnMgMCAqLw0KPiA+ICtzdGF0aWMg aW5saW5lIGludCBtZW1wb29sX2NoZWNrX29ial9ib3VuZHModm9pZCAqb2JqLCB1aW50NjRfdA0K PiA+ICtodWdlcGFnZV9zeiwgc2l6ZV90IGVsdF9zeikgew0KPiA+ICsJdWludHB0cl90IHBhZ2Vf ZW5kLCBlbHRfYWRkciA9ICh1aW50cHRyX3Qpb2JqOw0KPiA+ICsJdWludDMyX3QgcGdfc2hpZnQg PSBydGVfYnNmMzIoaHVnZXBhZ2Vfc3opOw0KPiA+ICsJdWludDY0X3QgcGFnZV9tYXNrOw0KPiA+ ICsNCj4gPiArCXBhZ2VfbWFzayA9ICB+KCgxdWxsIDw8IHBnX3NoaWZ0KSAtIDEpOw0KPiA+ICsJ cGFnZV9lbmQgPSAoZWx0X2FkZHIgJiBwYWdlX21hc2spICsgaHVnZXBhZ2Vfc3o7DQo+ID4gKw0K PiA+ICsJaWYgKGVsdF9hZGRyICsgZWx0X3N6ID4gcGFnZV9lbmQpDQo+ID4gKwkJcmV0dXJuIC0x Ow0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAgaW50DQo+ID4g ICBydGVfbWVtcG9vbF9vcF9wb3B1bGF0ZV9kZWZhdWx0KHN0cnVjdCBydGVfbWVtcG9vbCAqbXAs IHVuc2lnbmVkDQo+IGludCBtYXhfb2JqcywNCj4gPiAgIAkJdm9pZCAqdmFkZHIsIHJ0ZV9pb3Zh X3QgaW92YSwgc2l6ZV90IGxlbiwNCj4gPiAgIAkJcnRlX21lbXBvb2xfcG9wdWxhdGVfb2JqX2Ni X3QgKm9ial9jYiwgdm9pZCAqb2JqX2NiX2FyZykNCj4gPiAgIHsNCj4gPiAtCXNpemVfdCB0b3Rh bF9lbHRfc3o7DQo+ID4gLQlzaXplX3Qgb2ZmOw0KPiA+ICsJc3RydWN0IHJ0ZV9tZW16b25lICpt eiA9IG9ial9jYl9hcmc7DQo+ID4gKwlzaXplX3QgdG90YWxfZWx0X3N6LCBvZmY7DQo+IA0KPiBX aHkgdHdvIHZhcmlhYmxlcyBhcmUgY29tYmluZWQgaW50byBvbmUgaGVyZT8gSXQgaXMgdW5yZWxh dGVkIGNoYW5nZS4NCj4gDQo+ID4gICAJdW5zaWduZWQgaW50IGk7DQo+ID4gICAJdm9pZCAqb2Jq Ow0KPiA+DQo+ID4gICAJdG90YWxfZWx0X3N6ID0gbXAtPmhlYWRlcl9zaXplICsgbXAtPmVsdF9z aXplICsgbXAtPnRyYWlsZXJfc2l6ZTsNCj4gPg0KPiA+ICAgCWZvciAob2ZmID0gMCwgaSA9IDA7 IG9mZiArIHRvdGFsX2VsdF9zeiA8PSBsZW4gJiYgaSA8IG1heF9vYmpzOw0KPiA+IGkrKykgew0K PiA+ICsNCj4gPiArCQkvKiBTa2lwIHBhZ2UgYm91bmRhcnkgY2hlY2sgaWYgZWxlbWVudCBpcyBi aWdnZXIgdGhhbiBwYWdlICovDQo+ID4gKwkJaWYgKG16LT5odWdlcGFnZV9zeiA+PSB0b3RhbF9l bHRfc3opIHsNCj4gPiArCQkJaWYgKG1lbXBvb2xfY2hlY2tfb2JqX2JvdW5kcygoY2hhciAqKXZh ZGRyICsgb2ZmLA0KPiA+ICsJCQkJCQkgICAgbXotPmh1Z2VwYWdlX3N6LA0KPiA+ICsJCQkJCQkg ICAgdG90YWxfZWx0X3N6KSA8IDApIHsNCj4gPiArCQkJCWktLTsgLyogRGVjcmVtZW50IGNvdW50 ICYgc2tpcCB0aGlzIG9iaiAqLw0KPiA+ICsJCQkJb2ZmICs9IHRvdGFsX2VsdF9zejsNCj4gPiAr CQkJCWNvbnRpbnVlOw0KPiA+ICsJCQl9DQo+ID4gKwkJfQ0KPiA+ICsNCj4gDQo+IFdoYXQgSSBk b24ndCBsaWtlIGhlcmUgaXMgdGhhdCBpdCBtYWtlcyBvbmUgbWVtb3J5IGNodW5rIGluc3VmZmlj aWVudCB0bw0KPiBwb3B1bGF0ZSBhbGwgb2JqZWN0cy4gSS5lLiB3ZSBjYWxjdWxhdGVkIG1lbW9y eSBjaHVuayBzaXplIHJlcXVpcmVkLCBidXQNCj4gc2tpcHBlZCBzb21lIG9iamVjdC4gTWF5IGJl IGl0IGlzIG5vdCBhIHByb2JsZW0sIGJ1dCBicmVha3MgdGhlIGxvZ2ljIGV4aXN0aW5nDQo+IGlu IHRoZSBjb2RlLg0KPiANCj4gPiAgIAkJb2ZmICs9IG1wLT5oZWFkZXJfc2l6ZTsNCj4gPiAgIAkJ b2JqID0gKGNoYXIgKil2YWRkciArIG9mZjsNCj4gPiAgIAkJb2JqX2NiKG1wLCBvYmpfY2JfYXJn LCBvYmosDQo+IA0KDQo=