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 1437BC76191 for ; Thu, 18 Jul 2019 14:17:01 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 6C6B421783 for ; Thu, 18 Jul 2019 14:17:00 +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="DO5Znw4t"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="XZ1fSjvl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6C6B421783 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 A89E21DBE; Thu, 18 Jul 2019 16:16:59 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 95F111B53 for ; Thu, 18 Jul 2019 16:16:57 +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 x6IEFwkq026136; Thu, 18 Jul 2019 07:16:55 -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=ohkBgLPc5+JBXDTDAHW70pwReQ26qBInEuQmmMKr/vM=; b=DO5Znw4t2gE61opIwv4dH0hENUTsgdaHK470Mi87nJAu0G03HaDZblYXB7PQo29GmBK6 /5lL1hShUuzDpG+FwMIGx9F5u/xRSOPDy5qXk2ilThoi3Ja1uR9NcGLSVkFeSqW36ro+ K53Mw7ahZ4raLYIfB4uUgx9BmoRf2aDgFt6bKYabqo5ARogPJEo4wo7pPRX6eyNXKwu5 UurnFz42HLa3SqPV6M17CUi2uWjodt9WQ98P6Qyq3Y+RUv3kX1rjKu6VQ11GcaX1hCEJ rNlJc0U17/03McOm0Z33IspHPInIESoJngQMGtsQoFS/FseLs3QFRyAuiQMwppHsJNHp 9Q== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0a-0016f401.pphosted.com with ESMTP id 2ts07vn1gm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 18 Jul 2019 07:16:55 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 18 Jul 2019 07:16:54 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (104.47.32.52) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Thu, 18 Jul 2019 07:16:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DqOXzlhOLloEvXJtYMpLh7rZ97IFj2GDPBuhgYRhEhwBDQu+VOmpsilSuDl17WaMZu9KW3ElRTJpoShfdOfbbADRWUlxlEgK100E4LYGc6pCjg6LM7tg9ubXryMxBmkbaaASogbgf7+sD8o9ZhxedDG4KMElPbAiUwVkXu35e2HntYPWoO0eM2dF/MCtjxJwuZZcqjLhqadQFcdeTqsiDlhtjCmYYupwU7y6+ECKwOYvb6byXk3L/NoP1yGRrZHX7yI/xjdUMc0R0viRlqVeVxGXoRu1a2TqtZUDtQQ+K6g8quaByKasAmZCcdPXa4bQ/hfz534Rn4cLxZE5BHWpIA== 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=ohkBgLPc5+JBXDTDAHW70pwReQ26qBInEuQmmMKr/vM=; b=JmG86Hm4CKPuDlDiVotKlXukpHBRXqVz0dMprSi1RfgZRj2JRtPwuLdvENW46iQaLgVHp2koowPNTtt5gLb9+XLBn1w2hbreQS7C05eEzCsM0frJUYTHvGGgwiICWsGBAINo2wZyCOsFFfqKHGfGmnzu9dyMxFSZ5hT2dOmhIrXoNpZdNsDPhq4Gepa4ecRqYIQg2rlqoekeY2V4AoWPmWpzLiI1Q7W+TNevAqPuRgI7jej7SszTxzy18dtzq9MUNGYxDiRO9nWYeO2yoTPONdSw0Wvu5y2pc3MBJDs7lF2ZeuEM6cvuHsCldEaw95Ym/pOGwx8F20dHtKsXa3+Y1Q== 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=ohkBgLPc5+JBXDTDAHW70pwReQ26qBInEuQmmMKr/vM=; b=XZ1fSjvlFKAwq7luGrYv6p6CHseqmmXBF71ppzCCX6NVZGobl620B+H3ba9bMW6PG8OFhE2MnsNz+KJ5kpNMPEx6TaxcKSw4znfySifETz8srWOQ48vkgkl4nrZ6XzlI/+JwPYVT1/jrjfLvEtqfEYT158ldl3KVphXTwmTWpSU= Received: from CH2PR18MB3381.namprd18.prod.outlook.com (52.132.246.204) by CH2PR18MB3142.namprd18.prod.outlook.com (52.132.244.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.14; Thu, 18 Jul 2019 14:16:52 +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; Thu, 18 Jul 2019 14:16:52 +0000 From: Vamsi Krishna Attunuru To: "olivier.matz@6wind.com" , Andrew Rybchenko , "dev@dpdk.org" , "olivier.matz@6wind.com" CC: "thomas@monjalon.net" , Jerin Jacob Kollanukkaran , "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+yoZDXFqbO0FKAgAAs5nCAASAZgIAASksg Date: Thu, 18 Jul 2019 14:16:52 +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: 4569505b-cb7f-460d-ca82-08d70b8a94a7 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:CH2PR18MB3142; x-ms-traffictypediagnostic: CH2PR18MB3142: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 01026E1310 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(396003)(39850400004)(366004)(376002)(346002)(13464003)(199004)(189003)(3846002)(8676002)(11346002)(2906002)(6116002)(476003)(71200400001)(26005)(107886003)(71190400001)(55016002)(9686003)(74316002)(8936002)(305945005)(66946007)(66556008)(256004)(76116006)(102836004)(66446008)(6246003)(446003)(7736002)(25786009)(66476007)(86362001)(14454004)(64756008)(53546011)(66066001)(52536014)(99286004)(81166006)(316002)(478600001)(486006)(110136005)(54906003)(4326008)(33656002)(81156014)(6436002)(229853002)(5660300002)(186003)(2501003)(53936002)(2201001)(76176011)(7696005)(6506007)(68736007); DIR:OUT; SFP:1101; SCL:1; SRVR:CH2PR18MB3142; H:CH2PR18MB3381.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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: Vzf8e9j7NQpLdA1HlIgEreaux6/AkYB4Zc1ZVtzbC55ELLUILgtrDsxWKYqx4TqMr1F1ectc7c7k6zBquKEpSg0gO0+Bcj85YB0qxLkZ+5qs9MyJzCISYYogp0LKqEJ/6SzxM9UTG9XtBhAIzKeVCs1plFlsiNwToOT3vroOWy4RzCe0thzMn2gql24u+ypr5i2dPUWdUyus9RW1a6wWUOvCDJLTyHE7VIK1Fzo2G7paLWng9wl6vncmRuBevhVViQLzgSqWhHOTFgCqSRrq098dNsYce8VdRtGd66KVz99TOfOVudt91hk8k61xVWVmttgfeTswFv6jj0BVCRvSqm7CXamjVShT/yAgVBJsJjeKIzGs36aGZol8phqLyrQjC+zXdVgJi6uK3bgLUtO+H8RlZZ5H5qRu2LaCscZN7NU= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 4569505b-cb7f-460d-ca82-08d70b8a94a7 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2019 14:16:52.2611 (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: CH2PR18MB3142 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:5.22.84,1.0.8 definitions=2019-07-18_06:2019-07-18,2019-07-18 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 byA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEp1bHkgMTgs IDIwMTkgMjo1OCBQTQ0KPiBUbzogVmFtc2kgS3Jpc2huYSBBdHR1bnVydSA8dmF0dHVudXJ1QG1h cnZlbGwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBKZXJp biBKYWNvYiBLb2xsYW51a2thcmFuIDxqZXJpbmpAbWFydmVsbC5jb20+Ow0KPiBvbGl2aWVyLm1h dHpANndpbmQuY29tOyBmZXJydWgueWlnaXRAaW50ZWwuY29tOw0KPiBhbmF0b2x5LmJ1cmFrb3ZA aW50ZWwuY29tOyBLaXJhbiBLdW1hciBLb2traWxhZ2FkZGENCj4gPGtpcmFua3VtYXJrQG1hcnZl bGwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjcgMS80XSBtZW1wb29s OiBtb2RpZnkgbWVtcG9vbA0KPiBwb3B1bGF0ZSgpIHRvIHNraXAgb2JqZWN0cyBmcm9tIHBhZ2Ug Ym91bmRhcmllcw0KPiANCj4gT24gNy8xNy8xOSA4OjMxIFBNLCBWYW1zaSBLcmlzaG5hIEF0dHVu dXJ1IHdyb3RlOg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBB bmRyZXcgUnliY2hlbmtvIDxhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tPg0KPiA+PiBTZW50OiBX ZWRuZXNkYXksIEp1bHkgMTcsIDIwMTkgNzowNyBQTQ0KPiA+PiBUbzogVmFtc2kgS3Jpc2huYSBB dHR1bnVydSA8dmF0dHVudXJ1QG1hcnZlbGwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IENjOiB0 aG9tYXNAbW9uamFsb24ubmV0OyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuDQo+ID4+IDxqZXJp bmpAbWFydmVsbC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBmZXJydWgueWlnaXRAaW50 ZWwuY29tOw0KPiA+PiBhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tOyBLaXJhbiBLdW1hciBLb2tr aWxhZ2FkZGENCj4gPj4gPGtpcmFua3VtYXJrQG1hcnZlbGwuY29tPg0KPiA+PiBTdWJqZWN0OiBS ZTogW2RwZGstZGV2XSBbUEFUQ0ggdjcgMS80XSBtZW1wb29sOiBtb2RpZnkgbWVtcG9vbA0KPiA+ PiBwb3B1bGF0ZSgpIHRvIHNraXAgb2JqZWN0cyBmcm9tIHBhZ2UgYm91bmRhcmllcw0KPiA+Pg0K PiA+PiBPbiA3LzE3LzE5IDEyOjA0IFBNLCB2YXR0dW51cnVAbWFydmVsbC5jb20gd3JvdGU6DQo+ ID4+PiBGcm9tOiBWYW1zaSBBdHR1bnVydSA8dmF0dHVudXJ1QG1hcnZlbGwuY29tPg0KPiA+Pj4N Cj4gPj4+IEN1cnJlbnRseSB0aGUgcGh5cyBhZGRyZXNzIG9mIGEgbWVtcG9vbCBvYmplY3QgcG9w dWxhdGVkIGJ5IHRoZQ0KPiA+Pj4gbWVtcG9vbCBwb3B1bGF0ZSBkZWZhdWx0KCkgcm91dGluZSBt YXkgbm90IGJlIGNvbnRpZ3VvdXMgd2l0aCBpbg0KPiA+Pj4gdGhhdA0KPiA+PiBtYnVmIHJhbmdl Lg0KPiA+Pj4gUGF0Y2ggZW5zdXJlcyB0aGF0IGVhY2ggb2JqZWN0J3MgcGh5cyBhZGRyZXNzIGlz IGNvbnRpZ3VvdXMgYnkNCj4gPj4+IG1vZGlmeWluZyBkZWZhdWx0IGJlaGF2aW91ciBvZiBtZW1w b29sIHBvcHVsYXRlKCkgdG8gcHJldmVudCBvYmplY3RzDQo+ID4+PiBmcm9tIGJlaW5nIGFjcm9z cyAyIHBhZ2VzLCBleHBlY3QgaWYgdGhlIHNpemUgb2Ygb2JqZWN0IGlzIGJpZ2dlcg0KPiA+Pj4g dGhhbiBzaXplIG9mDQo+ID4+IHBhZ2UuDQo+ID4+PiBTaW5jZSB0aGUgb3ZlcmhlYWQgYWZ0ZXIg dGhpcyBtb2RpZmljYXRpb24gd2lsbCBiZSB2ZXJ5IG1pbmltYWwNCj4gPj4+IGNvbnNpZGVyaW5n IHRoZSBodWdlcGFnZSBzaXplcyBvZiA1MTJNICYgMUcsIGRlZmF1bHQgYmVoYXZpb3VyIGlzDQo+ ID4+PiBtb2RpZmllZCBleGNlcHQgZm9yIHRoZSBvYmplY3Qgc2l6ZXMgYmlnZ2VyIHRoYW4gdGhl IHBhZ2Ugc2l6ZS4NCj4gPj4+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBWYW1zaSBBdHR1bnVydSA8 dmF0dHVudXJ1QG1hcnZlbGwuY29tPg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTogS2lyYW4gS3VtYXIg SyA8a2lyYW5rdW1hcmtAbWFydmVsbC5jb20+DQo+ID4+IE5BQ0sNCj4gPj4NCj4gPj4gTG9va2lu ZyBhdCBNRU1QT09MX0ZfTk9fSU9WQV9DT05USUcgZGVzY3JpcHRpb24gSSBkb24ndA0KPiB1bmRl cnN0YW5kDQo+ID4+IHdoeSB0aGUgcGF0Y2ggaXMgbmVjZXNzYXJ5IGF0IGFsbC4gU28sIEknZCBs aWtlIHRvIGtub3cgbW9yZS4gRXhhY3QNCj4gPj4gY29uZGl0aW9ucywgSU9WQSBtb2RlLCBodWdl cGFnZSBzaXplcywgbWVtcG9vbCBmbGFncyBhbmQgaG93IGl0IGlzDQo+IHBvcHVsYXRlZC4NCj4g Pj4NCj4gPiBJIHByZXN1bWUgdGhlIGNvbW1pdCBsb2cgY2xhcmlmaWVzIHRoZSAgY2hhbmdlcyBp biB0aGUgcGF0Y2gsIHBscyBjb3JyZWN0IG1lDQo+IGlmIGl0J3Mgbm90IGNsZWFyLiBUaGUgcmVx dWlyZW1lbnQgaXMgdG8gY3JlYXRlIG1lbXBvb2wgb2Ygb2JqZWN0cyB0aGF0IGVhY2gNCj4gb2Jq ZWN0J3MgcGh5cyBhZGRyZXNzIGluIGNvbnRpZ3VvdXMgd2l0aCBpbiBpdCdzIHJhbmdlLCAgaGF2 aW5nIGZsZXhpYmlsaXR5IHRvDQo+IGNyZWF0ZSBzdWNoIG1lbXBvb2xzIGhlbHBmdWwgdG8gdGhl IGFwcGxpY2F0aW9ucyBsaWtlIEtOSSB0byBvcGVyYXRlIGluDQo+IElPVkE9VkEgbW9kZSB3aGVy ZSBLTkkga2VybmVsIG1vZGUgY2FuIHNhZmVseSB0cmFuc2xhdGUgSU9WQSBhZGRyZXNzZXMNCj4g dG8gUEEuDQo+IA0KPiBBcyBJIHVuZGVyc3RhbmQgaXQgYnJlYWtzIHJ0ZV9tZW1wb29sX3BvcHVs YXRlX2RlZmF1bHQoKSBsb2dpYyB3aGljaA0KPiBhc3N1bWVzIHRoYXQgcGFnZSBib3VuZGFyaWVz IG1heSBiZSBpZ25vcmVkIGluIElPVkE9VkEgbW9kZSAoc2VlDQo+IG5vX3BhZ2VzaGlmdCA9wqAg Li4uIGFuZCBhYm92ZSBkZXNjcmlwdGlvbiBpbiB0aGUgZnVuY3Rpb24pLg0KPiANCj4gU29ycnks IHJpZ2h0IG5vdyBJIGNhbid0IGNvbWUgdXAgd2l0aCB0aGUgcmlnaHQgZml4LCBidXQgYXMgZXhw bGFpbmVkIGJlbG93DQo+IHN1Z2dlc3RlZCBpcyB3cm9uZy4NCg0KSXQgd291bGQgYmUgbmljZSBp ZiBob3cgdGhpcyBhcHByb2FjaCBnb2VzIHdyb25nIHdhcyBhbHNvIGV4cGxhaW5lZCwgZWFybGll ciB3ZSBoYWQgZmxhZyBiYXNlZCBhcHByb2FjaCBhbmQgbGF0ZXIgbWFkZSBpdCBkZWZhdWx0IGFz IE9saXZpZXIgc3VnZ2VzdGVkLiBJZiB0aGVyZSBhcmUgbm8gb3RoZXIgd2F5cyB0byBmaXgsIGNh biB3ZSBzdGljayB3aXRoIHRoaXMgYXBwcm9hY2ggb3Igcm9sbCBiYWNrIHRvIHRoZSBlYXJsaWVy IGZsYWcgYmFzZWQgb25lLi4/IA0KDQpAT2xpdmllciwNCkFueSBzdWdnZXN0aW9ucy4uPw0KIA0K PiANCj4gPiBSZWdhcmRpbmcgdGhlIGV4YWN0IGNvbmRpdGlvbnMgZHJpdmVuIHRoaXMgYXBwcm9h Y2ggYXJlLCB3aGVuIElPVkEgbW9kZQ0KPiBpcyBzZXQgdG8gVkEgYW5kIGh1Z2UgcGFnZSBzaXpl IG9mIDJNQi81MTJNQiB1c2VkLCBzaW5jZSBLTkkgYXBwbGljYXRpb24NCj4gY3JlYXRlcyBtZW1w b29sIHdpdGhvdXQgYW55IGZsYWdzIHNldCwgbWVtcG9vbCBwb3B1bGF0ZSByb3V0aW5lIHRlbmRz IHRvDQo+IHJlc2VydmUgaW92YSBjb250aWd1b3VzIG1lbXpvbmVzIGFuZCBmaW5hbGx5IGl0IGVu ZHMgdXAgcG9wdWxhdGluZw0KPiBtZW1wb29sIHdpdGggc29tZSBvYmplY3RzIHRoYXQgbWlnaHQg YmVpbmcgYWNyb3NzIHR3byBwYWdlcyhvdmVyIHRoZSBwYWdlDQo+IGJvdW5kYXJ5KSwgdGhvc2Ug bWJ1ZidzIHBoeXMgYWRkcmVzcyBtaWdodCBub3QgYmUgY29udGlndW91cyBhbmQgdGhlc2UNCj4g bWVtcG9vbCBhcmUgbm90IHN1aXRhYmxlIGZvciBvcGVyYXRpbmcgS05JIGluIElPVkE9VkEgbW9k ZS4NCj4gPg0KPiA+Pj4gLS0tDQo+ID4+PiAgICBsaWIvbGlicnRlX21lbXBvb2wvcnRlX21lbXBv b2wuYyAgICAgICAgICAgICB8ICAyICstDQo+ID4+PiAgICBsaWIvbGlicnRlX21lbXBvb2wvcnRl X21lbXBvb2xfb3BzX2RlZmF1bHQuYyB8IDMzDQo+ID4+ICsrKysrKysrKysrKysrKysrKysrKysr KysrLS0NCj4gPj4+ICAgIDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkNCj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9tZW1wb29sL3J0 ZV9tZW1wb29sLmMNCj4gPj4+IGIvbGliL2xpYnJ0ZV9tZW1wb29sL3J0ZV9tZW1wb29sLmMNCj4g Pj4+IGluZGV4IDcyNjBjZTAuLjFjNDgzMjUgMTAwNjQ0DQo+ID4+PiAtLS0gYS9saWIvbGlicnRl X21lbXBvb2wvcnRlX21lbXBvb2wuYw0KPiA+Pj4gKysrIGIvbGliL2xpYnJ0ZV9tZW1wb29sL3J0 ZV9tZW1wb29sLmMNCj4gPj4+IEBAIC0zMzksNyArMzM5LDcgQEAgcnRlX21lbXBvb2xfcG9wdWxh dGVfaW92YShzdHJ1Y3QNCj4gcnRlX21lbXBvb2wNCj4gPj4gKm1wLCBjaGFyICp2YWRkciwNCj4g Pj4+ICAgIAlpID0gcnRlX21lbXBvb2xfb3BzX3BvcHVsYXRlKG1wLCBtcC0+c2l6ZSAtIG1wLT5w b3B1bGF0ZWRfc2l6ZSwNCj4gPj4+ICAgIAkJKGNoYXIgKil2YWRkciArIG9mZiwNCj4gPj4+ICAg IAkJKGlvdmEgPT0gUlRFX0JBRF9JT1ZBKSA/IFJURV9CQURfSU9WQSA6IChpb3ZhICsgb2ZmKSwN Cj4gPj4+IC0JCWxlbiAtIG9mZiwgbWVtcG9vbF9hZGRfZWxlbSwgTlVMTCk7DQo+ID4+PiArCQls ZW4gLSBvZmYsIG1lbXBvb2xfYWRkX2VsZW0sIG9wYXF1ZSk7DQo+ID4+IFRoZSBsYXN0IGFyZ3Vt ZW50IGlzIHRoZSBjYWxsYmFjayBvcGFxdWUgdmFsdWUuIG1lbXBvb2xfYWRkX2VsZW0oKQ0KPiA+ PiBkb2VzIG5vdCB1c2UgdGhlIG9wYXF1ZS4gQnV0IGl0IGlzIGluY29ycmVjdCB0byB1c2UgaXQg Zm9yIG90aGVyDQo+ID4+IHB1cnBvc2VzIGFuZCByZXF1aXJlIGl0IHRvIGJlIG1lbXpvbmUuDQo+ ID4gVG8gYXZvaWQgbXVsdGlwbGUgY2hhbmdlcyBpbiB0aGUgbWVtcG9vbCBBUElzIGZvciBhZGRp bmcgbmV3IHZhcmlhYmxlLA0KPiBvcGFxdWUgaGFzIGJlZW4gbGV2ZXJhZ2VkIGhlcmUuIEkgdGhp bmsgdGhlcmUgaXMgbm8gaGFybSBpbiBoYXZpbmcgdGhpcw0KPiBhcHByb2FjaCBzaW5jZSBpdCBj YXJyaWVzIHRoZSByZWxldmFudCBpbmZvIGFuZCBxdWl0ZSBzdWl0YWJsZSBiZXR3ZWVuIHRoZQ0K PiAoKm1lbXBvb2xfcG9wdWxhdGVfdCkgY2FsbHMuDQo+IA0KPiBTb3JyeSwgYnV0IGl0IGVuZm9y Y2VzIGFueSBjYWxsZXIgb2YgcnRlX21lbXBvb2xfcG9wdWxhdGVfaW92YSgpIChhbmQNCj4gcnRl X21lbXBvb2xfcG9wdWxhdGVfdmlydCgpKSBwYXNzIG1lbXpvbmUgYXMgb3BhcXVlLCBidXQgYnkg QVBJDQo+IGRlZmluaXRpb24gaXQgaXMgZnJlZV9jYiBhcmd1bWVudC4gU28sIGlmIGRpZmZlcmVu dCBmcmVlX2NiIGlzIHVzZWQsIGRpZmZlcmVudA0KPiBvcGFxdWUgbWF5IGJlIHJlcXVpcmVkLg0K DQpUaGlzIGFwcHJvYWNoIHNpbXBsaWZpZXMgdGhlIGNoYW5nZXMgYW5kIGF2b2lkIG11bHRpcGxl IGNoYW5nZXMsIGNhbiB0aGVzZSBwYXJhbWV0ZXIgdXNhZ2UgYmUgZG9jdW1lbnRlZCB0byBhdm9p ZCB0aGUgY29uZnVzaW9ucy4/DQpFbHNlIHRoZXJlIHdpbGwgYmUgbG90cyBvZiBjaGFuZ2VzIGlu IG11bHRpcGxlIEFQSXMgZm9yIHBhc3NpbmcgbXogaW5mbywgaWYgZXZlcnlvbmUgaXMgZmluZSB3 aXRoIHRob3NlIGNoYW5nZXMsIHdpbGwgbWFrZSB0aGUgcmVxdWlyZWQgY2hhbmdlcyBhbmQgc2Vu ZCB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+IA0KPiA+Pj4gICAgCS8qIG5vdCBlbm91Z2ggcm9vbSB0 byBzdG9yZSBvbmUgb2JqZWN0ICovDQo+ID4+PiAgICAJaWYgKGkgPT0gMCkgew0KPiA+Pj4gZGlm ZiAtLWdpdCBhL2xpYi9saWJydGVfbWVtcG9vbC9ydGVfbWVtcG9vbF9vcHNfZGVmYXVsdC5jDQo+ ID4+PiBiL2xpYi9saWJydGVfbWVtcG9vbC9ydGVfbWVtcG9vbF9vcHNfZGVmYXVsdC5jDQo+ID4+ PiBpbmRleCA0ZTJiZmM4Li44NWRhMjY0IDEwMDY0NA0KPiA+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9t ZW1wb29sL3J0ZV9tZW1wb29sX29wc19kZWZhdWx0LmMNCj4gPj4+ICsrKyBiL2xpYi9saWJydGVf bWVtcG9vbC9ydGVfbWVtcG9vbF9vcHNfZGVmYXVsdC5jDQo+ID4+PiBAQCAtNDUsMTkgKzQ1LDQ4 IEBAIHJ0ZV9tZW1wb29sX29wX2NhbGNfbWVtX3NpemVfZGVmYXVsdChjb25zdA0KPiA+PiBzdHJ1 Y3QgcnRlX21lbXBvb2wgKm1wLA0KPiA+Pj4gICAgCXJldHVybiBtZW1fc2l6ZTsNCj4gPj4+ICAg IH0NCj4gPj4+DQo+ID4+PiArLyogUmV0dXJucyAtMSBpZiBvYmplY3QgZmFsbHMgb24gYSBwYWdl IGJvdW5kYXJ5LCBlbHNlIHJldHVybnMgMCAqLw0KPiA+Pj4gK3N0YXRpYyBpbmxpbmUgaW50IG1l bXBvb2xfY2hlY2tfb2JqX2JvdW5kcyh2b2lkICpvYmosIHVpbnQ2NF90DQo+ID4+PiAraHVnZXBh Z2Vfc3osIHNpemVfdCBlbHRfc3opIHsNCj4gPj4+ICsJdWludHB0cl90IHBhZ2VfZW5kLCBlbHRf YWRkciA9ICh1aW50cHRyX3Qpb2JqOw0KPiA+Pj4gKwl1aW50MzJfdCBwZ19zaGlmdCA9IHJ0ZV9i c2YzMihodWdlcGFnZV9zeik7DQo+ID4+PiArCXVpbnQ2NF90IHBhZ2VfbWFzazsNCj4gPj4+ICsN Cj4gPj4+ICsJcGFnZV9tYXNrID0gIH4oKDF1bGwgPDwgcGdfc2hpZnQpIC0gMSk7DQo+ID4+PiAr CXBhZ2VfZW5kID0gKGVsdF9hZGRyICYgcGFnZV9tYXNrKSArIGh1Z2VwYWdlX3N6Ow0KPiA+Pj4g Kw0KPiA+Pj4gKwlpZiAoZWx0X2FkZHIgKyBlbHRfc3ogPiBwYWdlX2VuZCkNCj4gPj4+ICsJCXJl dHVybiAtMTsNCj4gPj4+ICsNCj4gPj4+ICsJcmV0dXJuIDA7DQo+ID4+PiArfQ0KPiA+Pj4gKw0K PiA+Pj4gICAgaW50DQo+ID4+PiAgICBydGVfbWVtcG9vbF9vcF9wb3B1bGF0ZV9kZWZhdWx0KHN0 cnVjdCBydGVfbWVtcG9vbCAqbXAsDQo+IHVuc2lnbmVkDQo+ID4+IGludCBtYXhfb2JqcywNCj4g Pj4+ICAgIAkJdm9pZCAqdmFkZHIsIHJ0ZV9pb3ZhX3QgaW92YSwgc2l6ZV90IGxlbiwNCj4gPj4+ ICAgIAkJcnRlX21lbXBvb2xfcG9wdWxhdGVfb2JqX2NiX3QgKm9ial9jYiwgdm9pZCAqb2JqX2Ni X2FyZykNCj4gPj4+ICAgIHsNCj4gPj4+IC0Jc2l6ZV90IHRvdGFsX2VsdF9zejsNCj4gPj4+IC0J c2l6ZV90IG9mZjsNCj4gPj4+ICsJc3RydWN0IHJ0ZV9tZW16b25lICpteiA9IG9ial9jYl9hcmc7 DQo+IA0KPiBNb3Jlb3ZlciwgdGhlIGNoYW5nZSBlbmZvcmNlcyBvYmpfY2JfYXJnIHRvIGJlIG1l bXpvbmUsIGJ1dCBpdCBpcyBvYmpfY2INCj4gYXJndW1lbnQgYW5kIG9ial9jYiBkZWZpbmVzIHdo YXQgc2hvdWxkIGJlIGluIHRoZSBvYmpfY2JfYXJnLg0KDQpXaWxsIHJldmVydCB0aGlzIHdoaWxl IHNlbmRpbmcgbmV4dCB2ZXJzaW9uLg0KDQo+IA0KPiA+Pj4gKwlzaXplX3QgdG90YWxfZWx0X3N6 LCBvZmY7DQo+ID4+IFdoeSB0d28gdmFyaWFibGVzIGFyZSBjb21iaW5lZCBpbnRvIG9uZSBoZXJl PyBJdCBpcyB1bnJlbGF0ZWQgY2hhbmdlLg0KPiA+Pg0KPiA+Pj4gICAgCXVuc2lnbmVkIGludCBp Ow0KPiA+Pj4gICAgCXZvaWQgKm9iajsNCj4gPj4+DQo+ID4+PiAgICAJdG90YWxfZWx0X3N6ID0g bXAtPmhlYWRlcl9zaXplICsgbXAtPmVsdF9zaXplICsNCj4gPj4+IG1wLT50cmFpbGVyX3NpemU7 DQo+ID4+Pg0KPiA+Pj4gICAgCWZvciAob2ZmID0gMCwgaSA9IDA7IG9mZiArIHRvdGFsX2VsdF9z eiA8PSBsZW4gJiYgaSA8IG1heF9vYmpzOw0KPiA+Pj4gaSsrKSB7DQo+ID4+PiArDQo+ID4+PiAr CQkvKiBTa2lwIHBhZ2UgYm91bmRhcnkgY2hlY2sgaWYgZWxlbWVudCBpcyBiaWdnZXIgdGhhbiBw YWdlICovDQo+ID4+PiArCQlpZiAobXotPmh1Z2VwYWdlX3N6ID49IHRvdGFsX2VsdF9zeikgew0K PiA+Pj4gKwkJCWlmIChtZW1wb29sX2NoZWNrX29ial9ib3VuZHMoKGNoYXIgKil2YWRkciArIG9m ZiwNCj4gPj4+ICsJCQkJCQkgICAgbXotPmh1Z2VwYWdlX3N6LA0KPiA+Pj4gKwkJCQkJCSAgICB0 b3RhbF9lbHRfc3opIDwgMCkgew0KPiA+Pj4gKwkJCQlpLS07IC8qIERlY3JlbWVudCBjb3VudCAm IHNraXAgdGhpcyBvYmogKi8NCj4gPj4+ICsJCQkJb2ZmICs9IHRvdGFsX2VsdF9zejsNCj4gPj4+ ICsJCQkJY29udGludWU7DQo+ID4+PiArCQkJfQ0KPiA+Pj4gKwkJfQ0KPiA+Pj4gKw0KPiA+PiBX aGF0IEkgZG9uJ3QgbGlrZSBoZXJlIGlzIHRoYXQgaXQgbWFrZXMgb25lIG1lbW9yeSBjaHVuayBp bnN1ZmZpY2llbnQNCj4gPj4gdG8gcG9wdWxhdGUgYWxsIG9iamVjdHMuIEkuZS4gd2UgY2FsY3Vs YXRlZCBtZW1vcnkgY2h1bmsgc2l6ZQ0KPiA+PiByZXF1aXJlZCwgYnV0IHNraXBwZWQgc29tZSBv YmplY3QuIE1heSBiZSBpdCBpcyBub3QgYSBwcm9ibGVtLCBidXQNCj4gPj4gYnJlYWtzIHRoZSBs b2dpYyBleGlzdGluZyBpbiB0aGUgY29kZS4NCj4gPj4NCj4gPj4+ICAgIAkJb2ZmICs9IG1wLT5o ZWFkZXJfc2l6ZTsNCj4gPj4+ICAgIAkJb2JqID0gKGNoYXIgKil2YWRkciArIG9mZjsNCj4gPj4+ ICAgIAkJb2JqX2NiKG1wLCBvYmpfY2JfYXJnLCBvYmosDQo=