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 67C1343BC0; Fri, 1 Mar 2024 09:06:15 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3F6444025C; Fri, 1 Mar 2024 09:06:15 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id E28AF400D5 for ; Fri, 1 Mar 2024 09:06:13 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 4211IKZp005195; Fri, 1 Mar 2024 00:06:13 -0800 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2100.outbound.protection.outlook.com [104.47.55.100]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3wjfay6ux1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 Mar 2024 00:06:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ANVKD8YOyohjztxUCNgirX0NuYZAP/jzaWI35bV4kdPdL7zGd3RKp9oIOKQQEQ6kMFBizqeZh6f/QaxrV+U73R0mH2JI8sIuxIeBpn1i30jf/gwXf6qmsiLTKD0nsJRRnSLV1csxdvBo3OeF4mT7Qg0sGWvIQ1QQs8uGWFpmnVKMYfS4JFWrDNGsCjkAud5DUTs7Os6VBbF3fNULSPl/Ii5vLCjTAhdmBV5TEiolVyeLiL4xSG25UbOnUxN7YhrYPbbr/ySERqg6JevEscyvPOSUuaD6DDmhtTl1jzK8Dz/fS7ITxvbhmvppiQKGrcMy+kUeS1XTolfbIAWoqHNYxg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sZokufhurrQZW+I5RlozMJlGfMGHyf7E5Yo3E4MpOzY=; b=I+WSLiAYHfhsyx9x+k+FWCCUpYIof1StjA90Zb3mrcyhyzCvR3o29cmNTm6+B8p7iFW8IRM4jTCE2PC897PqCWNgC24Wnb0jTmNI2zSeqEhPY5BdeRJWBWlSQWKQw1cOls/DqNiK0rA2ABaQc8o2eev98JaFOOKXsG2fDA3+bGio5a8c/4sGQbzZGSKvudbIciMvJkOs5DO1oF5yvygJBfHHqslD4P39eS2OY9qkDXtQWYfZnbk7NqXN4jQEC9NGyAcJXWBFV7GKX2mD6y9diOdvdt3yexIeWjnvLkxRh/UY0D+X4LhdDF67fVmkbJgIMuSDWwkdpEIrM8LYzJ5YrA== 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.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sZokufhurrQZW+I5RlozMJlGfMGHyf7E5Yo3E4MpOzY=; b=m7qP6gMA292zZzoLZWH0iK5ycc42/cd3P4cIOYWt4Eb8MrMA/M0D2iJBw7OK3Hw4EHS3suuXnX/3YWLChDTLv08Gj1k6jlAzfAYd94DLzb3Eeifqv9b7l/QDiPn+PENotMoyMHaJowdCVCYScBbkn3jeMmXyC0YvDU7RXvJpDyU= Received: from CO1PR18MB4714.namprd18.prod.outlook.com (2603:10b6:303:e9::18) by MW5PR18MB5811.namprd18.prod.outlook.com (2603:10b6:303:1aa::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.41; Fri, 1 Mar 2024 08:06:09 +0000 Received: from CO1PR18MB4714.namprd18.prod.outlook.com ([fe80::b71d:bd2a:b1a8:7e3c]) by CO1PR18MB4714.namprd18.prod.outlook.com ([fe80::b71d:bd2a:b1a8:7e3c%5]) with mapi id 15.20.7339.031; Fri, 1 Mar 2024 08:06:08 +0000 From: Gowrishankar Muthukrishnan To: fengchengwen , Amit Prakash Shukla , Cheng Jiang CC: "dev@dpdk.org" , Jerin Jacob , Anoob Joseph , Kevin Laatz , Bruce Richardson , Pavan Nikhilesh Bhagavatula Subject: RE: [EXTERNAL] Re: [EXT] Re: [PATCH v10 4/4] app/dma-perf: add SG copy support Thread-Topic: [EXTERNAL] Re: [EXT] Re: [PATCH v10 4/4] app/dma-perf: add SG copy support Thread-Index: AQHaaa69S1iEuIjc7UqT5RxFuNgc27EffoAAgAFzyECAATSpAIAAVFyA Date: Fri, 1 Mar 2024 08:06:08 +0000 Message-ID: References: <20240227160031.3931694-1-amitprakashs@marvell.com> <20240227185631.3932799-1-amitprakashs@marvell.com> <8148d7bc-f7a3-ad8c-71bf-c3f9c3c31a01@huawei.com> <3fa6868b-2d6d-9c09-c993-aa7ace1c7d80@huawei.com> In-Reply-To: <3fa6868b-2d6d-9c09-c993-aa7ace1c7d80@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR18MB4714:EE_|MW5PR18MB5811:EE_ x-ms-office365-filtering-correlation-id: 3b64501f-2e57-4f47-7c27-08dc39c673cc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: M24EKBeTtyPwv/mzpLcFc4AnM4ij+pIXvbmkI+edJdpZCUaHodIhVjv1zcYyX+tcDtPJzaqA7IkApVE/pz9pTZSnYFJ6670VO9vVsmCQ8mbGv4u5sGjdQkrMht5mrLpjhQhPwMSo8Tx7kQrNh7fMluqRk4f4L9przhLZIaHrffdwaEY/PbMyaqspw0VYriLfC57YgRy4wNvtvPgLtLNElHigN1nbrIB3GxNQBGn/HS6ouVWYW1Cf7m6tpV0FpXAyBRIKqJ2RhInwe2+VfFv5aubiJNL1dXiAn5znVHUDp4hpX26Mv2p1VHRuqRe2ogsPUOBJ02UjmSQ7tZaFcpthW41dqIbqKXP+3oUsOQpGTf270QfTXEZApLSHS7lnIR5cWbGExgN6aOkZWRUbdrsqvN2tJTgCM8T3G8TjAyskSWtfTBeiblR1oMlGLzqZ3LsyZdFLxTi5bJlBg83ImoczFcwq2Anmj7Q41Xr7Xn+ccgFMoXDutl0AY/tMIQX5dQjKPt6DdGnOwdoJzjTv17O2xzmt5yZKLak/86AU0+hbm2QlyP+/RNrIDA7nMbLwt4dx93mUiNHmkoa/VXvg1J2j0DZXVuimKrDhzm8MhjSICED4gca1Oz+J+cLWp7FEeTZu3DxZPxzv3gTHRf3xHXP1siUTyCeHxcxuNO1wmRTwyf0g4dfZnHBRLIaGj8J+A/dGAf96SRBGP+MjhQATAMqsoLJdM0seGQTShsBqGJhOzL0= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR18MB4714.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(38070700009); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YkdiUGw4emd3alNKNURDUjRwYjU5N3BUYnVES0VwSW1iUEptcFFOZlNoT3d1?= =?utf-8?B?cTlydDQ1eGM0N2tyeXUyU0R0NTZqYjVvdzZ0NVRWeS9KbksxbmVoRXBhRExj?= =?utf-8?B?OXBjc3dlSWVucnd1bXNkWVdzbkpFNWdxVmh4NEE0T0d2c3RNOTNMVE9xN2pR?= =?utf-8?B?Tkd5YmM5c3MxeXRNYjk4RG9CZ1k4Vjdsd2dBQTBxNTgxeEJqMFMzL2NsR0h3?= =?utf-8?B?a2s1OUFSb2hQdUpOcGlZMDNPeGMwNy85Z3hqZzRXR0p3a2tjSkNFVGJwbVFQ?= =?utf-8?B?Z1NoaTJOb0tZUDVKdGtPSHRUVjk3NzBlRFNYdkp5L3hvd0hHRTd2YUhzQWx0?= =?utf-8?B?dVBzb0ovV0tYL0dnRTJtZ2JLOFRIY3N1NlN1V0JrQ3RuRGNSN0lZcnRkcTZZ?= =?utf-8?B?V0hHSEVvdGJBMGljdHJudks4MjFQTTFjVGlHa21NOVBrMVU5NSsyQWtrdU5z?= =?utf-8?B?ZmRyU0RBbXFrQk9sQUtzOFhDRm5Ncy94MldRdVBBVVpQLzM2YWcyMEpCU2pz?= =?utf-8?B?OFNwUnNHcE9BcWxNdWlUSndsWkhUVnRKM1ptZ2RORjFMWTI2azZzMmY0Nlh1?= =?utf-8?B?RzJnNmR2UUNNS2s1T0ppYjl4Z2RaQmdRbU41VS9lV0F2T3IrWWVuajdJWmkv?= =?utf-8?B?VktqSXI0cHBWV1k2NlJRYnZzdmoxOFJoVS9aYmN6TFBBWlF4enRKUWVnYzZC?= =?utf-8?B?aEdMSHplaFMrQVYvQitJSEZiV0xxaENpRTNNak5ycDU3UVp5MDFuMTcyREVZ?= =?utf-8?B?elNubEFvM0xvNjE2SkxuVHhhMTM2UDhUcGpNWWxJb003dTBZS0NXVFh5Q0dH?= =?utf-8?B?ZFRnOHptZ2dFcmtNK2JISi9lcDhwTWEva3pQUERXcXdwbjFoNnNqdTdFYzZi?= =?utf-8?B?NDdQNklBNS8zSU52L0FOOGxOcUl5WGsxMjB1MVhaL2J3Q0p4NWlaamhEbCtJ?= =?utf-8?B?TExONU5RQ2toSElteEZSWnNteTd1bVhWMXlYTFlMWmRSWm45cXltRHM3TXYy?= =?utf-8?B?UUh2WjhNamU4WGNmd3NlMjNZKy9NVWFSMVV2d0dod2lCY1RBd01mdHI1aDNj?= =?utf-8?B?ZHFrLytWeWtMWS9aVFdGNVljOGZJVUdQUHNhMmpyVG5oR09OaVdxYk0xM2Jt?= =?utf-8?B?V2wzRkkyRXZUcVB0MVFuckVMM1FvUXhYbWZmOWY0czU5SitaMk1oOWVMRUxl?= =?utf-8?B?OGxBdVhXZVAvUGRraUNLd2dka2Y3dXp5VVIwRDNITUVnVzdkZFA1SEwxS1Nw?= =?utf-8?B?cWlxVDM0MWZTbFFGczRPeDhRYzFJU1dWOHh3RkhKWmpXZ2gzNksySGMrV25w?= =?utf-8?B?Vllsci9LNVdKV0JSTDN6TVg3RytxTy9Tek12Z1pBMTh6OEc1S2lTcG5tdy92?= =?utf-8?B?bmk4V2w1QmJ4MGlRZ1RHd21HUVh1U0IzRWoyemxHU1ArSlR3NjFtajhqeWVu?= =?utf-8?B?WStDVGJ4WXdoZGNFTE9wclFPNDlRclFiWU9pcEgzM002cFJoTmlDeXZpM2I3?= =?utf-8?B?SVZjbEdsb1Y2YkJ6ZkJyWjhlYUdITHkzMDdQd2F3MTBIOWh3NGNxdDNTWkZm?= =?utf-8?B?OFp6THJqSWt1NSttMWROcC9PRUNWTFQwRWdMZ285TzJVbCtwMkpQYnFFRVF6?= =?utf-8?B?QXlzTjE3RFNxNnZKeEthQXA1YTBlcS8xd0F6L2RYZXhJS3ZaM256QUdPVGlE?= =?utf-8?B?QTRPWHYwVTVCRE9uU0J4T2wzMzhvQ1NNRDZSaWhjV1F5V2tGQWlWZXorcW4r?= =?utf-8?B?YTNWL3c0K3lydnFZUzBXMzA3Q0VvU2NGMEliK1o2SGJoSy9WaTJPUFhxRVBD?= =?utf-8?B?UGxsM3N1MkRUL2EvMmNERXZKcDBaaW1wMkNUWW1QUHo5MXJEd2ZIa3VUTkNJ?= =?utf-8?B?dldNSlRwbmR6UzREL1Z2MUhtcWNxSWxBMHRJVVZZdkplVWVxcnJsN0lIZlBG?= =?utf-8?B?d1VyWmNOOFBjVTFoV3h2bXpNNGRSYWhlR1hNWk9aRWxvcGhlcmZNdzlFOCts?= =?utf-8?B?amFWZmRrWlo1MnRrZ0J1NzNtbW1yUy9ibTZTbks3OXRYd0xLV3dHL3lnOXd2?= =?utf-8?B?b2wzSC94VHJGT0Z3YklvKzFMeWNxKzVyRktIenNvNnhLR2RWMzE2WW9XaEx4?= =?utf-8?Q?yz1f7HBXvyPPNuYsoseufmv6D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR18MB4714.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b64501f-2e57-4f47-7c27-08dc39c673cc X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2024 08:06:08.8433 (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: PvKgoikSsHLm3ZEASJV2oAVMBXrpRUV4+3ZfJSXpYFG6cQc2x1tQAATcN8YDyo16Oi11KH+xJ57QvEV25SwOQkq6+kJ55ybXOoSUaDFjCG8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR18MB5811 X-Proofpoint-ORIG-GUID: RFjsxBzvvxhKDCIHiDgmlYlXoM-ProlS X-Proofpoint-GUID: RFjsxBzvvxhKDCIHiDgmlYlXoM-ProlS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-01_05,2024-02-29_01,2023-05-22_02 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 SGkgRmVuZ2NoZW5nLA0KDQo8Y3V0Pg0KPiA+Pj4gLW91dHB1dF9yZXN1bHQodWludDhfdCBzY2Vu YXJpb19pZCwgdWludDMyX3QgbGNvcmVfaWQsIGNoYXINCj4gPj4+ICpkbWFfbmFtZSwNCj4gPj4g dWludDE2X3QgcmluZ19zaXplLA0KPiA+Pj4gLQkJCXVpbnQxNl90IGtpY2tfYmF0Y2gsIHVpbnQ2 NF90IGF2ZV9jeWNsZSwgdWludDMyX3QNCj4gPj4gYnVmX3NpemUsIHVpbnQzMl90IG5yX2J1ZiwN Cj4gPj4+IC0JCQlmbG9hdCBtZW1vcnksIGZsb2F0IGJhbmR3aWR0aCwgZmxvYXQgbW9wcywgYm9v bA0KPiA+PiBpc19kbWEpDQo+ID4+PiArb3V0cHV0X3Jlc3VsdChzdHJ1Y3QgdGVzdF9jb25maWd1 cmUgKmNmZywgc3RydWN0IGxjb3JlX3BhcmFtcyAqcGFyYSwNCj4gPj4+ICsJCQl1aW50MTZfdCBr aWNrX2JhdGNoLCB1aW50NjRfdCBhdmVfY3ljbGUsIHVpbnQzMl90DQo+ID4+IGJ1Zl9zaXplLA0K PiA+Pj4gKwkJCXVpbnQzMl90IG5yX2J1ZiwgZmxvYXQgbWVtb3J5LCBmbG9hdCBiYW5kd2lkdGgs IGZsb2F0DQo+ID4+IG1vcHMpDQo+ID4+PiAgew0KPiA+Pj4gLQlpZiAoaXNfZG1hKQ0KPiA+Pj4g LQkJcHJpbnRmKCJsY29yZSAldSwgRE1BICVzLCBETUEgUmluZyBTaXplOiAldSwgS2ljayBCYXRj aCBTaXplOg0KPiA+PiAldS5cbiIsDQo+ID4+PiAtCQkJCWxjb3JlX2lkLCBkbWFfbmFtZSwgcmlu Z19zaXplLCBraWNrX2JhdGNoKTsNCj4gPj4+IC0JZWxzZQ0KPiA+Pj4gKwl1aW50MTZfdCByaW5n X3NpemUgPSBjZmctPnJpbmdfc2l6ZS5jdXI7DQo+ID4+PiArCXVpbnQ4X3Qgc2NlbmFyaW9faWQg PSBjZmctPnNjZW5hcmlvX2lkOw0KPiA+Pj4gKwl1aW50MzJfdCBsY29yZV9pZCA9IHBhcmEtPmxj b3JlX2lkOw0KPiA+Pj4gKwljaGFyICpkbWFfbmFtZSA9IHBhcmEtPmRtYV9uYW1lOw0KPiA+Pj4g Kw0KPiA+Pj4gKwlpZiAoY2ZnLT5pc19kbWEpIHsNCj4gPj4+ICsJCXByaW50ZigibGNvcmUgJXUs IERNQSAlcywgRE1BIFJpbmcgU2l6ZTogJXUsIEtpY2sgQmF0Y2ggU2l6ZToNCj4gPj4gJXUiLCBs Y29yZV9pZCwNCj4gPj4+ICsJCSAgICAgICBkbWFfbmFtZSwgcmluZ19zaXplLCBraWNrX2JhdGNo KTsNCj4gPj4+ICsJCWlmIChjZmctPmlzX3NnKQ0KPiA+Pj4gKwkJCXByaW50ZigiIERNQSBzcmMg cHRyczogJXUsIGRzdCBwdHJzOiAldSIsDQo+ID4+PiArCQkJICAgICAgIHBhcmEtPnNyY19wdHJz LCBwYXJhLT5kc3RfcHRycyk7DQo+ID4+DQo+ID4+IERNQSBzcmMgc2dlczogJXUgRE1BIGRzdCBz Z2VzOiAldQ0KPiA+Pg0KPiA+PiBJIHRoaW5rIHdlIHNob3VsZCBhZGQgYSBjb2x1bW4gd2hpY2gg dGl0bGUgbWF5YmUgbWlzYywgc29tZSBsaWtlDQo+ID4+IHNnLXNyY1s0XS0gZHN0WzFdLCBhbmQg bGF0ZXIgd2UgbWF5IGFkZCBmaWxsIHRlc3QsIHRoZW4gdGhpcyBmaWVsZA0KPiA+PiBjb3VsZCBi ZSBwYXR0ZXJuLQ0KPiA+PiAweDEyMzQ1Njc4DQo+ID4+DQo+ID4+IEFuZCBpbiAiW1BBVENIIHYx MCAyLzRdIGFwcC9kbWEtcGVyZjogYWRkIFBDSSBkZXZpY2Ugc3VwcG9ydCIgY29tbWl0LA0KPiA+ PiBpZiB0aGUgRE1BIHdhcyB3b3JrZWQgaW4gbm9uLW1lbTJtZW0gZGlyZWN0aW9uLCB3ZSBjb3Vs ZCBhZGQgc2ltcGxlDQo+ID4+IGRlc2NyaXB0b3Igb2YgZGlyZWN0aW9uIGFuZCBwY2llLmluZm8g aW4gdGhlIGFib3ZlIG1pc2MgY29sdW1uLg0KPiA+Pg0KPiA+DQo+ID4gSSBhbSBzb3JyeSwgSSBj b3VsZCBub3QgdW5kZXJzdGFuZCBjb21wbGV0ZSBwaWN0dXJlIGhlcmUuIERvIHlvdSBtZWFuDQo+ ID4gd2UgcmVzZXJ2ZSBhIGNvbHVtbiBhbmQgdXNlIGl0IGFzIHBlciB0ZXN0IHR5cGUuDQo+ID4N Cj4gPiBGb3IgcGxhaW4gbWVtIGNvcHksIG5vdGhpbmcgYWRkZWQuDQo+ID4gRm9yIFNHIG1lbSBj b3B5LCBpbnN0ZWFkIG9mIHNob3dpbmcgIkRNQSBzcmMgc2dlczogMSwgZHN0IHNnZXM6IDQiLCBw cmludA0KPiAic2ctc3JjWzFdLWRzdFs0XSIuDQo+ID4gSW4gZnV0dXJlLCB3aGVuIHdlIGFkZCBm aWxsIHRlc3QgaW4gYmVuY2htYXJrLCB0aGlzIGxpbmUgaW5zdGVhZCBiZSAicGF0dGVybi0NCj4g MHgxMjM0NTY3OCIuDQo+ID4NCj4gPiBJcyBteSB1bmRlcnN0YW5kaW5nIGNvcnJlY3Qgb3ZlciBo ZXJlID8NCj4gDQo+IFllcywgc29tZSBsaWtlIHRoaXMuDQo+IA0KVGhpcyBwYXRjaCBhZGRzIFNH RSBpbmZvIGluIGFuIGFsaWdubWVudCB3aXRoIGV4aXN0aW5nIG91dHB1dC4NCg0KSSB0aGluayBp dCBpcyBiZXR0ZXIgdG8gYWRkIGZ1cnRoZXIgZXh0ZW5zaW9ucyBhcyB3ZSBhZGQgbmV3IGZlYXR1 cmVzLiBTaW5jZSB0aGUgYXBwIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgZmVhdHVyZXMgdGhhdCB5b3Ug bWVudGlvbmVkLCBpdCBpcyBkaWZmaWN1bHQgdG8gYW50aWNpcGF0ZSB0aGUgcmVxdWlyZW1lbnRz Lg0KSW4gZmFjdCwgaWYgdGhlIGFkZGl0aW9uYWwgZnJhbWV3b3JrcyB0aGF0IHdlIHB1dCBpbiBh cmUgbm90IHVzZWZ1bCBmb3IgdGhvc2UgZmVhdHVyZXMsIGl0IGNvdWxkIGxlYWQgdG8gc3RhbGUg Y29kZS4NCkkgd291bGQgcHJlZmVyIGlmIHdlIGNhbiBtYWtlIHRoZXNlIGNoYW5nZXMgYXMgd2Ug YWRkIG5ldyBmZWF0dXJlcy4NCg0KPiA+DQo8Y3V0Pg0KPiA+Pj4gIAl9DQo+ID4+Pg0KPiA+Pj4g IAl3aGlsZSAoMSkgew0KPiA+Pj4gQEAgLTU0MSwxMyArNzAyLDUzIEBAIG1lbV9jb3B5X2JlbmNo bWFyayhzdHJ1Y3QgdGVzdF9jb25maWd1cmUNCj4gPj4gKmNmZywgYm9vbCBpc19kbWEpDQo+ID4+ Pg0KPiA+Pj4gIAlydGVfZWFsX21wX3dhaXRfbGNvcmUoKTsNCj4gPj4+DQo+ID4+PiAtCWZvciAo aSA9IDA7IGkgPCAobnJfYnVmIC8gbmJfd29ya2VycykgKiBuYl93b3JrZXJzOyBpKyspIHsNCj4g Pj4+IC0JCWlmIChtZW1jbXAocnRlX3BrdG1idWZfbXRvZChzcmNzW2ldLCB2b2lkICopLA0KPiA+ Pj4gLQkJCSAgIHJ0ZV9wa3RtYnVmX210b2QoZHN0c1tpXSwgdm9pZCAqKSwNCj4gPj4+IC0JCQkg ICBjZmctPmJ1Zl9zaXplLmN1cikgIT0gMCkgew0KPiA+Pj4gLQkJCXByaW50ZigiQ29weSB2YWxp ZGF0aW9uIGZhaWxzIGZvciBidWZmZXIgbnVtYmVyICVkXG4iLA0KPiA+PiBpKTsNCj4gPj4+IC0J CQlyZXQgPSAtMTsNCj4gPj4+IC0JCQlnb3RvIG91dDsNCj4gPj4+ICsJaWYgKCFjZmctPmlzX3Nn ICYmIGNmZy0+dHJhbnNmZXJfZGlyID09IFJURV9ETUFfRElSX01FTV9UT19NRU0pDQo+ID4+IHsN Cj4gPj4+ICsJCWZvciAoaSA9IDA7IGkgPCAobnJfYnVmIC8gbmJfd29ya2VycykgKiBuYl93b3Jr ZXJzOyBpKyspIHsNCj4gPj4+ICsJCQlpZiAobWVtY21wKHJ0ZV9wa3RtYnVmX210b2Qoc3Jjc1tp XSwgdm9pZCAqKSwNCj4gPj4+ICsJCQkJCXJ0ZV9wa3RtYnVmX210b2QoZHN0c1tpXSwgdm9pZCAq KSwNCj4gPj4+ICsJCQkJCWNmZy0+YnVmX3NpemUuY3VyKSAhPSAwKSB7DQo+ID4+PiArCQkJCXBy aW50ZigiQ29weSB2YWxpZGF0aW9uIGZhaWxzIGZvciBidWZmZXIgbnVtYmVyDQo+ID4+ICVkXG4i LCBpKTsNCj4gPj4+ICsJCQkJcmV0ID0gLTE7DQo+ID4+PiArCQkJCWdvdG8gb3V0Ow0KPiA+Pj4g KwkJCX0NCj4gPj4+ICsJCX0NCj4gPj4+ICsJfSBlbHNlIGlmIChjZmctPmlzX3NnICYmIGNmZy0+ dHJhbnNmZXJfZGlyID09DQo+ID4+IFJURV9ETUFfRElSX01FTV9UT19NRU0pIHsNCj4gPj4+ICsJ CXNpemVfdCBzcmNfcmVtc3ogPSBidWZfc2l6ZSAlIGNmZy0+c3JjX3B0cnM7DQo+ID4+PiArCQlz aXplX3QgZHN0X3JlbXN6ID0gYnVmX3NpemUgJSBjZmctPmRzdF9wdHJzOw0KPiA+Pj4gKwkJc2l6 ZV90IHNyY19zeiA9IGJ1Zl9zaXplIC8gY2ZnLT5zcmNfcHRyczsNCj4gPj4+ICsJCXNpemVfdCBk c3Rfc3ogPSBidWZfc2l6ZSAvIGNmZy0+ZHN0X3B0cnM7DQo+ID4+PiArCQl1aW50OF90IHNyY1ti dWZfc2l6ZV0sIGRzdFtidWZfc2l6ZV07DQo+ID4+PiArCQl1aW50OF90ICpzYnVmLCAqZGJ1Ziwg KnB0cjsNCj4gPj4+ICsNCj4gPj4+ICsJCWZvciAoaSA9IDA7IGkgPCAobnJfYnVmIC8gUlRFX01B WChjZmctPnNyY19wdHJzLCBjZmctPmRzdF9wdHJzKSk7DQo+ID4+IGkrKykgew0KPiA+Pj4gKwkJ CXNidWYgPSBzcmM7DQo+ID4+PiArCQkJZGJ1ZiA9IGRzdDsNCj4gPj4+ICsJCQlwdHIgPSBOVUxM Ow0KPiA+Pj4gKw0KPiA+Pj4gKwkJCWZvciAoaiA9IDA7IGogPCBjZmctPnNyY19wdHJzOyBqKysp IHsNCj4gPj4+ICsJCQkJcHRyID0gcnRlX3BrdG1idWZfbXRvZChzcmNzW2kgKiBjZmctPnNyY19w dHJzDQo+ID4+ICsgal0sIHVpbnQ4X3QgKik7DQo+ID4+PiArCQkJCW1lbWNweShzYnVmLCBwdHIs IHNyY19zeik7DQo+ID4+PiArCQkJCXNidWYgKz0gc3JjX3N6Ow0KPiA+Pj4gKwkJCX0NCj4gPj4+ ICsNCj4gPj4+ICsJCQlpZiAoc3JjX3JlbXN6KQ0KPiA+Pj4gKwkJCQltZW1jcHkoc2J1ZiwgcHRy ICsgc3JjX3N6LCBzcmNfcmVtc3opOw0KPiA+Pj4gKw0KPiA+Pj4gKwkJCWZvciAoaiA9IDA7IGog PCBjZmctPmRzdF9wdHJzOyBqKyspIHsNCj4gPj4+ICsJCQkJcHRyID0gcnRlX3BrdG1idWZfbXRv ZChkc3RzW2kgKiBjZmctPmRzdF9wdHJzDQo+ID4+ICsgal0sIHVpbnQ4X3QgKik7DQo+ID4+PiAr CQkJCW1lbWNweShkYnVmLCBwdHIsIGRzdF9zeik7DQo+ID4+PiArCQkJCWRidWYgKz0gZHN0X3N6 Ow0KPiA+Pj4gKwkJCX0NCj4gPj4+ICsNCj4gPj4+ICsJCQlpZiAoZHN0X3JlbXN6KQ0KPiA+Pj4g KwkJCQltZW1jcHkoZGJ1ZiwgcHRyICsgZHN0X3N6LCBkc3RfcmVtc3opOw0KPiA+Pj4gKw0KPiA+ Pj4gKwkJCWlmIChtZW1jbXAoc3JjLCBkc3QsIGJ1Zl9zaXplKSAhPSAwKSB7DQo+ID4+PiArCQkJ CXByaW50ZigiU0cgQ29weSB2YWxpZGF0aW9uIGZhaWxzIGZvciBidWZmZXINCj4gPj4gbnVtYmVy ICVkXG4iLA0KPiA+Pj4gKwkJCQkJaSAqIGNmZy0+c3JjX3B0cnMpOw0KPiA+Pj4gKwkJCQlyZXQg PSAtMTsNCj4gPj4+ICsJCQkJZ290byBvdXQ7DQo+ID4+PiArCQkJfQ0KPiA+Pg0KPiA+PiBOb3cg SSBkb3VidCB0aGUgdmFsdWUgb2YgdmVyaWZ5LCB0aGlzIHZlcmlmeSBjYW4ndCBmaW5kIHRoZSBt aWRkbGUNCj4gPj4gcm91bmQgY29weSBmYWlsdXJlLCBiZWNhdXNlIGFzIGxvbmcgYXMgdGhlIGxh c3Qgcm91bmQgY29weSBpcw0KPiA+PiBzdWNjZXNzZnVsLCB0aGUgdmFsaWRhdGlvbiB3aWxsIHBh c3MuDQo+ID4+DQo+ID4gVmFsaWRhdGlvbiBpcyBvbiBlbnRpcmUgYnVmZmVyLiBJZiBhbnkgbWlk ZGxlIGNvcHkgaXMgYSBmYWlsdXJlLA0KPiA+IGVudGlyZSBtZW1jbXAgd291bGQgaGF2ZSBmYWls ZWQuIE9yIGRvIEkgbWlzcyBzb21ldGhpbmcgPw0KPiA+DQo+ID4+IEFuZCBhZGRpbmcgdmFsaWRh dGF0aW9uIGluIGV2ZXJ5IHJvdW5kIGNvcHkgd2lsbCBpbXBhY3QgcGVyZm9ybWFuY2UuDQo+ID4+ DQo+ID4gVGhpcyB2YWxpZGF0aW9uIGlzIGp1c3QgYWZ0ZXIgd29ya2VyIGZ1bmN0aW9uIGlzIHN0 b3BwZWQgbWVhc3VyaW5nIHBlcmYuDQo+ID4gSG93IHdvdWxkIHRoaXMgaW1wYWN0IHBlcmZvcm1h bmNlID8NCj4gDQo+IFllcywgaXQgd2lsbCBkb24ndCBpbXBhY3QgcGVyZm9ybWFuY2UuDQo+IA0K PiBXaGF0IEkgc2FpZCBiZWZvcmUgaXMgdGhhdCBpcyBub3QgdmFsaWQsIHBscyBjb25zaWRlciBm b2xsb3dpbmcgc2NlbmU6DQo+IA0KPiANCj4gCXdoaWxlICgxKSB7DQo+IAkJZm9yIChpID0gMDsg aSA8IG5yX2J1ZjsgaSsrKSB7ICAvLyB0aGlzIGZvciBsb29wIHdpbGwgY29weSBhbGwgbnJfYnVm cywNCj4gbGV0J3MgZGVmaW5kIHRoaXMgaXMgYSByb3VuZCBjb3B5Lg0KPiBkbWFfY29weToNCj4g CQkJcmV0ID0gcnRlX2RtYV9jb3B5KGRldl9pZCwgMCwNCj4gcnRlX21idWZfZGF0YV9pb3ZhKHNy Y3NbaV0pLA0KPiAJCQkJcnRlX21idWZfZGF0YV9pb3ZhKGRzdHNbaV0pLCBidWZfc2l6ZSwgMCk7 DQo+IAkJCWlmICh1bmxpa2VseShyZXQgPCAwKSkgew0KPiAJCQkJaWYgKHJldCA9PSAtRU5PU1BD KSB7DQo+IAkJCQkJZG9fZG1hX3N1Ym1pdF9hbmRfcG9sbChkZXZfaWQsDQo+ICZhc3luY19jbnQs IHdvcmtlcl9pbmZvKTsNCj4gCQkJCQlnb3RvIGRtYV9jb3B5Ow0KPiAJCQkJfSBlbHNlDQo+IAkJ CQkJZXJyb3JfZXhpdChkZXZfaWQpOw0KPiAJCQl9DQo+IAkJCWFzeW5jX2NudCsrOw0KPiANCj4g CQkJaWYgKChhc3luY19jbnQgJSBraWNrX2JhdGNoKSA9PSAwKQ0KPiAJCQkJZG9fZG1hX3N1Ym1p dF9hbmRfcG9sbChkZXZfaWQsDQo+ICZhc3luY19jbnQsIHdvcmtlcl9pbmZvKTsNCj4gCQl9DQo+ IA0KPiAJCWlmICh3b3JrZXJfaW5mby0+c3RvcF9mbGFnKSAgIC8vIGlmIGRvbid0IHN0b3AsIGl0 IHdpbGwgZG8gbWFueQ0KPiByb3VuZCBjb3BpZXMuDQo+IAkJCWJyZWFrOw0KPiAJfQ0KPiANCj4g YW5kIHRoZSBsYXRlciB2YWxpZGF0aW9uIGp1c3QgdmVyaWZ5IHRoZSBsYXN0IHJvdW5kLCBsZXQn cyBhc3N1bWUgdGhlcmUgYXJlIDEwMA0KPiByb3VuZCwgYW5kIGlmIHRoZSBsYXN0IHJvdW5kIGNv cHkgd29yayB3ZWxsLCBidXQgcm91bmQgMH45OCBib3RoIGNvcHkgZmFpbCwNCj4gdGhlbiB0aGUg dmFsaWRhdGlvbiB3aWxsIG5vdCBkZXRlY3QgaXQuDQo+IA0KPiANCj4gU28gaWYgd2Ugd2FudCBk byBhbGwgdGhlIHZhbGlkYXRpb24sIHRoZW4gd2Ugc2hvdWxkIGFkZCB0aGUgdmVsaWRhdGlvbiBh ZnRlcg0KPiBldmVyeSByb3VuZCBjb3B5LCBidXQgaXQgd2lsbCBpbXBhY3QgdGhlIHBlcmZvcm1h bmNlLg0KPiANCj4gDQo+ID4NCj4gPj4gQWxzbyBhcHAvdGVzdF9kbWFkZXYgYWxyZWFkeSB2ZXJp ZnkgZGF0YS4gc28gSSB0aGluayB3ZSBzaG91bGQgZHJvcA0KPiA+PiB0aGUgdmFsaWRhdGlvbiBj b21taXQuDQo+ID4NCj4gPiBFdmVuIGluIHNvbWUgY29ybmVyIGNhc2VzIG9yIHVua25vd24gaXNz dWVzLCBjb3B5IHdvdWxkIGhhdmUgZmFpbGVkDQo+ID4gYW5kIHRha2luZyBwZXJmIGN5Y2xlcyB0 aGVuIGlzIG1lYW5pbmdsZXNzLiBUaGF0IGlzIHRoZSByZWFzb24sIHRoaXMNCj4gPiB2YWxpZGF0 aW9uIGlzIGFkZGVkIGFmdGVyIHBlcmYgZnVuY3Rpb24gZG9pbmcgaXRzIGpvYi4NCj4gDQo+IEhv dyBhYm91dDoNCj4gDQo+IAl3aGlsZSAoMSkgew0KPiAJCWZvciAoaSA9IDA7IGkgPCBucl9idWY7 IGkrKykgeyAgLy8gdGhpcyBmb3IgbG9vcCB3aWxsIGNvcHkgYWxsIG5yX2J1ZnMsDQo+IGxldCdz IGRlZmluZCB0aGlzIGlzIGEgcm91bmQgY29weS4NCj4gZG1hX2NvcHk6DQo+IAkJCXJldCA9IHJ0 ZV9kbWFfY29weShkZXZfaWQsIDAsDQo+IHJ0ZV9tYnVmX2RhdGFfaW92YShzcmNzW2ldKSwNCj4g CQkJCXJ0ZV9tYnVmX2RhdGFfaW92YShkc3RzW2ldKSwgYnVmX3NpemUsIDApOw0KPiAJCQlpZiAo dW5saWtlbHkocmV0IDwgMCkpIHsNCj4gCQkJCWlmIChyZXQgPT0gLUVOT1NQQykgew0KPiAJCQkJ CWRvX2RtYV9zdWJtaXRfYW5kX3BvbGwoZGV2X2lkLA0KPiAmYXN5bmNfY250LCB3b3JrZXJfaW5m byk7DQo+IAkJCQkJZ290byBkbWFfY29weTsNCj4gCQkJCX0gZWxzZQ0KPiAJCQkJCWVycm9yX2V4 aXQoZGV2X2lkKTsNCj4gCQkJfQ0KPiAJCQlhc3luY19jbnQrKzsNCj4gDQo+IAkJCWlmICgoYXN5 bmNfY250ICUga2lja19iYXRjaCkgPT0gMCkNCj4gCQkJCWRvX2RtYV9zdWJtaXRfYW5kX3BvbGwo ZGV2X2lkLA0KPiAmYXN5bmNfY250LCB3b3JrZXJfaW5mbyk7DQo+IAkJfQ0KPiANCj4gCQlpZiAo dW5saWtlbHkod29ya19pbmZvLT52ZXJpZnkpKSB7DQo+IAkJCXJldCA9IHZlcmlmeSgpOw0KPiAJ CQlpZiAocmV0ICE9IDApIHsNCj4gCQkJCS8vIGVycm9yIHRyYWNlLA0KPiAJCQkJYnJlYWs7DQo+ IAkJCX0NCj4gCQl9DQo+IA0KPiAJCWlmICh3b3JrZXJfaW5mby0+c3RvcF9mbGFnKSAgIC8vIGlm IGRvbid0IHN0b3AsIGl0IHdpbGwgZG8gbWFueQ0KPiByb3VuZCBjb3BpZXMuDQo+IAkJCWJyZWFr Ow0KPiAJfQ0KPiANCj4gYW5kIG1ha2UgdGhpcyB2ZXJpZnkgYXMgYSBjb25maWcgZW50cnkNCg0K SSBiZWxpZXZlIHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBpbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQg dGhpcyBpcyBpbnRlbmRlZCB0byBkby4gSW50ZW50aW9uIGhlcmUgaXMgbm90IHRvIHZhbGlkYXRl IGV2ZXJ5IG9wZXJhdGlvbiBkb25lIGJ5IERNQSwgYW5kIHRoYXQgaXMgYWxyZWFkeSB0YWtlbiBj YXJlIGJ5IFVULg0KDQpJcyBpdCBwb3NzaWJsZSB0aGF0IHdlIGFyZSB3ZSBtaXNyZXBvcnRpbmcg bnVtYmVycyBpZiB0aGUgYXBwbGljYXRpb24gaXMgYnVnZ3kgb3IgUE1EIGlzIG1pc2JlaGF2aW5n IGZvciB0aGUgc2NlbmFyaW8gdW5kZXIgdGVzdCBhbmQgdGhlIGNvcGllcyBhcmUgbm90IGFjdHVh bGx5IHBlcmZvcm1lZD8gWWVzLiBUaGluayBhYm91dCBhIHNjZW5hcmlvIHdoZXJlIFBNRCBpcyBi dWdneSB3aGVuIHRyeWluZyBidXJzdHMgb2YgbW9yZSB0aGFuIDEuDQoNCkNoZWNraW5nIGxhc3Qg c2V0IG9mIGJ1ZmZlcnMgaXMgbW9yZSBsaWtlIHRlc3RpbmcgYSBzYW1wbGUgZnJvbSB0aGUgcGVy ZiB0ZXN0IHRvIG1ha2Ugc3VyZSBwZXJmIHRlc3Qgd2FzIGluZGVlZCBwZXJmb3JtaW5nIHdoYXQg aXQgaXMgY2xhaW1pbmcgdG8gZG8uIElmIHlvdSB0aGluayBpdCBpcyB1bm5lY2Vzc2FyeSB0byBk byBzbywgd2UgY2FuIGRyb3AgdGhpcyBmcm9tIHVwc3RyZWFtLiBCdXQgYWRkaW5nIGNvbXBsZXRl IHZlcmlmaWNhdGlvbiBpbiBwZXJmb3JtYW5jZSBhcHAgd291bGQgYmUgcmVwZWF0aW5nIHdoYXQg YSB1bml0IHRlc3QgaXMgZXhwZWN0ZWQgdG8gZG8uIEkgd291bGQgc3VnZ2VzdCBub3QgdG8gZG8g dGhhdC4NCg0KVGhhbmtzLA0KR293cmlzaGFua2FyDQo=