From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 640534611C;
	Fri, 24 Jan 2025 11:23:32 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id F2CFD40F35;
	Fri, 24 Jan 2025 11:23:31 +0100 (CET)
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2082.outbound.protection.outlook.com [40.107.95.82])
 by mails.dpdk.org (Postfix) with ESMTP id CACA940F1A
 for <dev@dpdk.org>; Fri, 24 Jan 2025 11:23:29 +0100 (CET)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vPZZUtMWtI2Rw6UR+gm+lVUhGB13EwtndMYig7IibT0RaIYmz1pbXLzZ+OAZ9VqBoRD4KBScNj3MDYiFPAYxUMLBJPEquqKy6/9k+T1/LjwVTI8JXEY0V5+TDnkmXkHJGP26xAt+05SCJewc4Df5j0UGSM9h4lw6aYQqCW1HQaio5Wpmh9ckQlKBGQ7Ge3UI0Rk69YiKw1HJZPotR/KMUKyGFpqo56q4JeT7KzsuBLhmWkNi3/oMmnfQ27n5MQXb4UDkhm5RMqaiDSnx2iRuG3ATiHJqHb3Epsb5mf4YnSQ0iWF95Mlcb0n9DymhTT5Lh+HgiIe514QZbrtmpbFb2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 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=++igecJn4+feK24g1PcK3VrqFs4h3UKgTrYENP5CjHQ=;
 b=JmyzelrInwecmnhimwBrOGT8DJX/1+KRkkQJuaa3XRR7g+iv7MuPgG9utltY7BBM13SK+Y3WwqWA3yIUOrHZH+3lmKs+SVQqbSZlG9xjX0J+Q+wvsEAGjjY81KMXShEr/dedbscK2WGcLBw8570hS4KEZo+7PuCHMHIvUhnKQSJ5VIQTPZJQzfTM6WCiwK4PhbXYK1p8Z9tTBdtR21F0k4ccJVil7oq0QDJ7/vXrCTkbqtO0DyWf7gLo4XZcHtddwz6Ro0EzIjUK37qqmROE4LSU7yDN65pACnLEoBNd88PiIxpRE+UYVvAYGc7tvxx69Ic69vXcHzHYa54PE0ch5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=++igecJn4+feK24g1PcK3VrqFs4h3UKgTrYENP5CjHQ=;
 b=BBXunqf7XhorGUdebS0bHkr9SnOBCRS/m0CyDcOx2R/IBIUxLXshL2ydox0RA7tSJOLC2148KrlcFYVpx0vuoHbcPqohO4P9sDu/3qT/iKKEtzeOiPT0/9BF/OTr8BaSuzowkENlrcbGIptWyFiVPX+2tDfG4zzWOJxna2X7vl5K2l25fb9nyXefzcqAui0sKfBOqyrf476oV7Yb31vCe5eOwLsEiqY7dqk98THiL2PRZDDPL4iIyNFDcJiusgFwFzP8W761cABMiofloXIVMZJUX17xE4qQHig40opOfGxgry6rpKGZE23L/h+AYZa0zpGvdPzmbjqhh5UF8WMcLw==
Received: from MN6PR12MB8567.namprd12.prod.outlook.com (2603:10b6:208:478::12)
 by DM4PR12MB7600.namprd12.prod.outlook.com (2603:10b6:8:108::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8377.17; Fri, 24 Jan
 2025 10:23:26 +0000
Received: from MN6PR12MB8567.namprd12.prod.outlook.com
 ([fe80::9bde:b697:6d6d:ee04]) by MN6PR12MB8567.namprd12.prod.outlook.com
 ([fe80::9bde:b697:6d6d:ee04%6]) with mapi id 15.20.8377.009; Fri, 24 Jan 2025
 10:23:26 +0000
From: Slava Ovsiienko <viacheslavo@nvidia.com>
To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= <mb@smartsharesystems.com>,
 "NBU-Contact-Thomas Monjalon (EXTERNAL)" <thomas@monjalon.net>, Ferruh Yigit
 <ferruh.yigit@amd.com>, Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
 Shahaf Shuler <shahafs@nvidia.com>, Olivier Matz <olivier.matz@6wind.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, Dengdui Huang <huangdengdui@huawei.com>
Subject: RE: [PATCH v3] mbuf: add fast free bulk and raw alloc bulk functions
Thread-Topic: [PATCH v3] mbuf: add fast free bulk and raw alloc bulk functions
Thread-Index: AQHbbAoQJFzGMBjXn0qq7P9ITfy43rMluu8g
Date: Fri, 24 Jan 2025 10:23:26 +0000
Message-ID: <MN6PR12MB856754FE0EA46AE4BE32531EDFE32@MN6PR12MB8567.namprd12.prod.outlook.com>
References: <20250114162544.125448-1-mb@smartsharesystems.com>
 <20250121134028.20733-1-mb@smartsharesystems.com>
In-Reply-To: <20250121134028.20733-1-mb@smartsharesystems.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MN6PR12MB8567:EE_|DM4PR12MB7600:EE_
x-ms-office365-filtering-correlation-id: 4327f1c6-097d-4a42-393c-08dd3c6123eb
x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info: =?utf-8?B?Rm91Rk1UMWFrR0JZWGdJZGFnZTNDMUJKVXpsQjVrMjlFRmJsLzlLMmdGenNI?=
 =?utf-8?B?alFiN1hkRjllcWZNSGRDTDlZbjl6OUplOFFLWVRRQVZ0MHhkUUM0K0UyZ1B2?=
 =?utf-8?B?azNZbnNzN01POElmdS9NOUNZMzU0RE1vbjhTYTgrUFcyckVhNzE2ejVJZUdH?=
 =?utf-8?B?bkMyN0RxblhYNHEvaDdoamtRSldtSU93Z0JUV1Y3dWxnSVg3SldKQytqNng1?=
 =?utf-8?B?K3dKWmxEQzlrbFQyWlNycXgvZ0EzcHZHRU1ySnc1aDI5T0JOcUJ0Vk5JQ1Jm?=
 =?utf-8?B?MXN2eWlaKzdUZWNwSks2NkNrdzdGMHpnUU5CN28wSEZUdWR2Z2doWXBHdVlV?=
 =?utf-8?B?bFJlSXh4T0gzQnV6c01EQUpnVTR0REhVUlJ3bzdvZHpyZlZNdk5DamM0dHZJ?=
 =?utf-8?B?RnVKdGExVmVJT29ZcXhra0t1Z09ndDVlTFpmVnJ3UDhrSVhTR0hFdXIrY0Fm?=
 =?utf-8?B?c3R2TkYzS2hzZ050S3RPYTErTVc0bG1VMnNuOHdCa0VYMDd1bTVmVXVwMStK?=
 =?utf-8?B?bzYyODBiRGJ5YWxuK3o3NXdPNHQ4djMzTEtlMU10WDc5L2VacFFRTldLRDNs?=
 =?utf-8?B?RUZwSE12dHNKaVRYWEtRY2pxaWJxMXI4dVVuTDJydW01YjVqcTR0dUFmNXYy?=
 =?utf-8?B?MVNqamxQRFZlYlpqYjlpUWxyamRkbVc0eGRqci8zdWNVaHFWVm1Cbk5YUzhY?=
 =?utf-8?B?L2NXVCtkZGVQWEFQdlBZWjRyQWh2aTFzelNZYWR4TjAwOUJtNWdEcGJVT3hq?=
 =?utf-8?B?RUpNODdsZzNrN05LbGh1VHErckpSVmFSTnRJQk10ZEZ0SzNqazEvT3VGNm5y?=
 =?utf-8?B?QWR2ZVpaK2FVTVRUYk1Ld2lFdVEwTHNKVjdLdkNBV0p6RDJ3MTQxK0Z5cVgv?=
 =?utf-8?B?aHdtWnlYY2dVdkF6bDhOL0ZRL2hLQUtzUWt1akZ2Rjc4WDlCOTkyT3NsdE9B?=
 =?utf-8?B?bXM2eW55SXNxdnFtY3ZpWklJT1VCQmh2VEo2dUZwQkxpMGt4empIbHdsNzlX?=
 =?utf-8?B?ekRXU3RYTXJEQjRwbUd4WGVBRm5hUFhlVDU0ZUNYTzhWRW1pS2xVZ3Q0R2Nk?=
 =?utf-8?B?VDBYMm9EV0d6QnlrY1FkeXZGY1c0VTVndW5uaHcvK0NHTStEd05QTXc2cm11?=
 =?utf-8?B?dWNkUzUxVFBMd3hwYVlKR2dVVkxhQWpva2s5WjNGNW1qUG1XNnlhTDBoT0py?=
 =?utf-8?B?cHJnbHQ0ZXBKbkpVUjNhdU5yVXBham16cDNDeGVzNlJBQVBVUkUwZEJCajN4?=
 =?utf-8?B?Yjlwd1ppNkxLRG0wY1dHcDVDZzdVRDRSM0NHYWNSODQ5czZjVWxpSm5DZzZs?=
 =?utf-8?B?NFRnVjQ1bUhHT3FNMkVLMUMxblYrMmE0RmwzZWNqalJjcXFXYmxoYitJdS9D?=
 =?utf-8?B?UzQwQkQvYU1UZ0ViOVkwRWVwNWFZT01zeVc3REgxa0sxcTFSNmFJbVlRNHBZ?=
 =?utf-8?B?YU5PTERRL05obmI1WEJ2WHYyQm1GVEVOdk9lLzhFNkVPRkxhN2dsYWJyV09u?=
 =?utf-8?B?c2VWNVJ4dmJJcms1bGxWOWQrUXcyWTRFajNnZWYrbmN3a0dCb05DdEdSMDJP?=
 =?utf-8?B?YmFJTTRIaDJ6ZkNDcitHQ1d4ZzgvT2dRUnRuMSt5aWNpd0hrMmJTVGwxa0Jk?=
 =?utf-8?B?UjN2T1FLaFMrdHF6NnQrYmt0KzhpdEFBWk0wdi9laXVRMWQrTTlqWitoRUR3?=
 =?utf-8?B?TU9DM2pxL3FsQnRsanlvanlhc3NQRHlZZzFmMTRxTG1PRFVPSVZBNFBTclY1?=
 =?utf-8?B?d3ZWVkEwblBuM1BKVHJ5WThYdDA2TGk1NHNYd0FYSDhLYlgvZFFKaC93U0Jt?=
 =?utf-8?B?Y29qb1diS081LzMzMG5tdkEvbXdoY0JISEhlSWwxeEkvRzZMT0xlTGpXN3NH?=
 =?utf-8?B?dnovb0V2VlUyQ2dXb1AvK3lRRVp5azhQRDFJYXlobkFYQUpEd0JXV0ZudmRY?=
 =?utf-8?Q?D62cxduQsD/ZQtn/Q7MOHoKnXjt8mm0F?=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:MN6PR12MB8567.namprd12.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bmcwOXNKSmdWYUcvTUtQSENEekxkclR2MGgzZGVvUGpmMG8zTEtUd1IzYnpw?=
 =?utf-8?B?ZVhibk11Uit6Qit4VHhKYWhJbDlxVWw5R01aQlBiZ3BpRCtkR1EzM3Q0UnNG?=
 =?utf-8?B?VFBlUmlwTUcrQ3lkYkhmbDNlYkRyYkZ3ZGxtU05LRW45elM1OE9KMlkrOEhu?=
 =?utf-8?B?RUhFQTc3VFRMSHJIZkVtUjY1OUhTUXdhc0U5eDZXNlVhNGdMR2lKbnlqODMw?=
 =?utf-8?B?TXRiZDF4RnJEMTIxMzJLeGNDbjB6dllicEFtRzJmVlV1cm0wT3pMWXp0L2Vo?=
 =?utf-8?B?QVJnNjhrOVdFK09iUmFSOHRBckF2SFViU0VhNTUzODdvbW1pd2VXbmFpQy9a?=
 =?utf-8?B?OTZiaTF2bG9uNUtQMitDdlNVUnhhT2pCa2tlL1ZMMmpBaXJ0cFVJSkc3cXBS?=
 =?utf-8?B?NFlQbFlhYTB3SzJsTGMrdW0xMEQ0bEdyS3pWWHVHZHYyVEF2RHU4VU1jbEY3?=
 =?utf-8?B?MEdDV1cwUlhmdE15STk0TG0xM0hMR2gwSm9sZDFpTFpFZnp0UmNOZTE3Rkgz?=
 =?utf-8?B?OU81eU50Y3p4dHI3VTczUWJYZllIWFFpL1lqTkhCQ0ZYSkpiQXQ2eTZLZU5o?=
 =?utf-8?B?N1RnQUF4eDJ1RzI4WVlMZXFjMVphZFRUZHJxVDRqSFVjdEp4SjJiWGRrWGtj?=
 =?utf-8?B?dFhXRkFYRkZtUmVlZGRQOEliNDFGY2dyaU1YOU45MC9YcnBOMEJ6WGZsSEQy?=
 =?utf-8?B?L1Rmd3FqQ3dKRTRydEV3Q2RMOVhxbGdIVk9tR0cyWW5sZUNCYUtOYVdRY3FD?=
 =?utf-8?B?THB3U1g4a3hVNFlid2p6S3FQWi81WG1LZHhuSlJvVmY4TGxvZVV1dSttbXRW?=
 =?utf-8?B?b09kMVhIT01OMjhJYXlVVzVqd3lXTExSekpPYjV3VGRyYWhiZ3RLNStLb0Zj?=
 =?utf-8?B?LzFuZUJJKzV1SVU0cWU2bm1VVmVqR0xVYVVDcXdqZUxma1BWclV3LzFiVHZ3?=
 =?utf-8?B?ZDBONDV2Z1NQNHFJSngyZks5V3dDRTFDa3c1YmdiUXRkYjBQUklOQlVsOGY3?=
 =?utf-8?B?Z01BVnhxdkplN09qb2RLL3JrK1Azb3hWN08xcElHRUduaVJxK3NOUFZ2bXNO?=
 =?utf-8?B?eWs5bWdxSmVUZ2ZRcTZ4NFlnMkNSbCtzeURtdnlPQ0Rtem85TWduYzJzbXR3?=
 =?utf-8?B?ODF5T3BsMXlOTk9TbTErbFU0ZzhYVWJ3RG5rTElMTFkyUFJ3K1BPRkw4dHNY?=
 =?utf-8?B?QXZabUdra2dJZTlyRUU3NlFwRE5JYk9EcVYwdU1laTZoeWZzaHlnNUhTa2NL?=
 =?utf-8?B?Q2NMSWxRQ2s2ZVo3RnorUFoyLzR1aExuVndRTmRuZzBEOEFSNEtYaTFJRk9O?=
 =?utf-8?B?SGF1NFUrNmYrY3J0T3hNeVlCNjBvRUgvblNObS92d3l5cVF3ckMxYTNoUTRq?=
 =?utf-8?B?UHRURlBPNHd0QmhZUXVkcWJhUlZYR293V3lmUzJFdGF2Z21RcW0yWmZSU0xq?=
 =?utf-8?B?SEtEUjJ4UDV0OC9rMFdXckxQZWdGRG1VZUZPSlFhd0huaWF3STBaVFRRYitK?=
 =?utf-8?B?dzFCb0tyV2Y1d012UFlKdUZYUk1uLzk0L2l1Y2JlWlZhQ294eTNiTmRoQU5N?=
 =?utf-8?B?bjRuVThUalJuaklVejY3T3MxN3lzdlpUYklZSnJvaFRVUGtFcjlHd2tXMllP?=
 =?utf-8?B?MDBTUXZFQ095TDE2ZEEyWEt3RU9HZUZWd3FSY0d6TkVmVTJtZkgvZTNWVzJx?=
 =?utf-8?B?eGJkQ2toVmxrL1ZEWlBLZjFzQVVTK1JHTGJmWk12enJ1OXpoTXJJUGxFTEVo?=
 =?utf-8?B?bnNKSElXUXdRRjNOa3d5OFRjbWM0Rzk5Ry9aTnJSV2s0R3lDd2ZKWklEMzlv?=
 =?utf-8?B?OUxneDF3aVJlWlZ6YjBVQUY1TzJDekNTRFFocWV6NXk4ZWpKeWhTWkovVlpl?=
 =?utf-8?B?WXc4OEZqdU1VR2VQSVJGbmEzZWVZRDhyY3NldTVveU9HcEF0bWFqM0NEZHVI?=
 =?utf-8?B?R3ovZmJIK0tVb0dMNUlDNEpGTE5BeXZKUGJzNm81NFFKeGg2dG9lZUY3NnA1?=
 =?utf-8?B?ZlpJYjVvZGxxY3plTFlOZ0d5VS8veWVJd2YwUkQyVXcwdUYvbnlHTnlKVnk1?=
 =?utf-8?B?MnBqOVZ4dktoR09FNDYyeUpzdUVNWTVUUGZNekVQM1FjZHVXeElSRjBVcGhG?=
 =?utf-8?Q?eBlyfw4RtytdC/QVXyAngARw5?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MN6PR12MB8567.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4327f1c6-097d-4a42-393c-08dd3c6123eb
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jan 2025 10:23:26.8405 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /N5C1JrAoyjBotFR8jCoEvMowQuDAsTXpvfxYNi6m7AMtxyYbvtKK4O8V/UBs5bmSvx6Oxh/uk1Z2Ir4H5XrZw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7600
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

QWNrZWQtYnk6IFZpYWNoZXNsYXYgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPg0K
DQpQUy4gSXQgc2VlbXMgd2Ugc2hvdWxkIGNvbnNpZGVyIHJlcGxhY2luZyB0aGUgcnRlX21lbXBv
b2xfcHV0X2J1bGsoKQ0Kd2l0aCB0aGUgbmV3IHdyYXBwZXIgcnRlX21idWZfZmFzdF9mcmVlX2J1
bGsoKSBpbiB0aGUgZHJpdmVycy4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG
cm9tOiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiBTZW50OiBU
dWVzZGF5LCBKYW51YXJ5IDIxLCAyMDI1IDM6NDAgUE0NCj4gVG86IE5CVS1Db250YWN0LVRob21h
cyBNb25qYWxvbiAoRVhURVJOQUwpIDx0aG9tYXNAbW9uamFsb24ubmV0PjsNCj4gRmVycnVoIFlp
Z2l0IDxmZXJydWgueWlnaXRAYW1kLmNvbT47IEFuZHJldyBSeWJjaGVua28NCj4gPGFuZHJldy5y
eWJjaGVua29Ab2t0ZXRsYWJzLnJ1PjsgU2xhdmEgT3ZzaWllbmtvDQo+IDx2aWFjaGVzbGF2b0Bu
dmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29tPjsgT2xpdmllcg0K
PiBNYXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBNb3J0
ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPjsgRGVuZ2R1aQ0KPiBIdWFuZyA8
aHVhbmdkZW5nZHVpQGh1YXdlaS5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2M10gbWJ1ZjogYWRk
IGZhc3QgZnJlZSBidWxrIGFuZCByYXcgYWxsb2MgYnVsayBmdW5jdGlvbnMNCj4gDQo+IFdoZW4g
cHV0dGluZyBhbiBtYnVmIGJhY2sgaW50byBpdHMgbWVtcG9vbCwgdGhlcmUgYXJlIGNlcnRhaW4g
cmVxdWlyZW1lbnRzDQo+IHRvIHRoZSBtYnVmLiBTcGVjaWZpY2FsbHksIHNvbWUgb2YgaXRzIGZp
ZWxkcyBtdXN0IGJlIGluaXRpYWxpemVkLg0KPiANCj4gVGhlc2UgcmVxdWlyZW1lbnRzIGFyZSBp
biBmYWN0IGludmFyaWFudHMgYWJvdXQgZnJlZSBtYnVmcywgaGVsZCBpbg0KPiBtZW1wb29scywg
YW5kIHRodXMgYWxzbyBhcHBseSB3aGVuIGFsbG9jYXRpbmcgYW4gbWJ1ZiBmcm9tIGEgbWVtcG9v
bC4NCj4gV2l0aCB0aGlzIGluIG1pbmQsIHRoZSBhZGRpdGlvbmFsIGFzc2VydGlvbnMgaW4gcnRl
X21idWZfcmF3X2ZyZWUoKSB3ZXJlDQo+IG1vdmVkIHRvIF9fcnRlX21idWZfcmF3X3Nhbml0eV9j
aGVjaygpLg0KPiBGdXJ0aGVybW9yZSwgdGhlIGFzc2VydGlvbiByZWdhcmRpbmcgcGlubmVkIGV4
dGVybmFsIGJ1ZmZlciB3YXMgZW5oYW5jZWQ7IGl0DQo+IG5vdyBhbHNvIGFzc2VydHMgdGhhdCB0
aGUgcmVmZXJlbmNlZCBwaW5uZWQgZXh0ZXJuYWwgYnVmZmVyIGhhcyByZWZjbnQgPT0gMS4NCj4g
DQo+IFRoZSBkZXNjcmlwdGlvbiBvZiBSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUg
d2FzIHVwZGF0ZWQgdG8NCj4gaW5jbHVkZSB0aGUgcmVtYWluaW5nIHJlcXVpcmVtZW50cywgd2hp
Y2ggd2VyZSBtaXNzaW5nIGhlcmUuDQo+IA0KPiBBbmQgZmluYWxseToNCj4gQSBuZXcgcnRlX21i
dWZfZmFzdF9mcmVlX2J1bGsoKSBpbmxpbmUgZnVuY3Rpb24gd2FzIGFkZGVkIGZvciB0aGUgYmVu
ZWZpdCBvZg0KPiBldGhkZXYgZHJpdmVycyBzdXBwb3J0aW5nIGZhc3QgcmVsZWFzZSBvZiBtYnVm
cy4NCj4gSXQgYXNzZXJ0cyB0aGVzZSByZXF1aXJlbWVudHMgYW5kIHRoYXQgdGhlIG1idWZzIGJl
bG9uZyB0byB0aGUgc3BlY2lmaWVkDQo+IG1lbXBvb2wsIGFuZCB0aGVuIGNhbGxzIHJ0ZV9tZW1w
b29sX3B1dF9idWxrKCkuDQo+IA0KPiBGb3Igc3ltbWV0cnksIGEgbmV3IHJ0ZV9tYnVmX3Jhd19h
bGxvY19idWxrKCkgaW5saW5lIGZ1bmN0aW9uIHdhcyBhbHNvDQo+IGFkZGVkLg0KPiANCj4gU2ln
bmVkLW9mZi1ieTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4g
QWNrZWQtYnk6IERlbmdkdWkgSHVhbmcgPGh1YW5nZGVuZ2R1aUBodWF3ZWkuY29tPg0KPiAtLS0N
Cj4gdjI6DQo+ICogRml4ZWQgbWlzc2luZyBpbmxpbmUuDQo+IHYzOg0KPiAqIEZpeGVkIG1pc3Np
bmcgZXhwZXJpbWVudGFsIHdhcm5pbmcuIChTdGVwaGVuKQ0KPiAqIEFkZGVkIHJhdyBhbGxvYyBi
dWxrIGZ1bmN0aW9uLg0KPiAtLS0NCj4gIGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oIHwgIDYgKyst
LQ0KPiAgbGliL21idWYvcnRlX21idWYuaCAgICAgfCA4MCArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKystLQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCsp
LCA0IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2V0aGRl
di5oIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmggaW5kZXgNCj4gMWY3MWNhZDI0NC4uZTkyNjdm
Y2E3OSAxMDA2NDQNCj4gLS0tIGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gKysrIGIvbGli
L2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gQEAgLTE2MTIsOCArMTYxMiwxMCBAQCBzdHJ1Y3QgcnRl
X2V0aF9jb25mIHsNCj4gICNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgICAg
ICAgUlRFX0JJVDY0KDE1KQ0KPiAgLyoqDQo+ICAgKiBEZXZpY2Ugc3VwcG9ydHMgb3B0aW1pemF0
aW9uIGZvciBmYXN0IHJlbGVhc2Ugb2YgbWJ1ZnMuDQo+IC0gKiBXaGVuIHNldCBhcHBsaWNhdGlv
biBtdXN0IGd1YXJhbnRlZSB0aGF0IHBlci1xdWV1ZSBhbGwgbWJ1ZnMgY29tZXMNCj4gZnJvbQ0K
PiAtICogdGhlIHNhbWUgbWVtcG9vbCBhbmQgaGFzIHJlZmNudCA9IDEuDQo+ICsgKiBXaGVuIHNl
dCBhcHBsaWNhdGlvbiBtdXN0IGd1YXJhbnRlZSB0aGF0IHBlci1xdWV1ZSBhbGwgbWJ1ZnMgY29t
ZQ0KPiArIGZyb20gdGhlIHNhbWUgbWVtcG9vbCwNCj4gKyAqIGFyZSBkaXJlY3QsIGhhdmUgcmVm
Y250PTEsIG5leHQ9TlVMTCBhbmQgbmJfc2Vncz0xLCBhcyBkb25lIGJ5DQo+IHJ0ZV9wa3RtYnVm
X3ByZWZyZWVfc2VnKCkuDQo+ICsgKg0KPiArICogQHNlZSBydGVfbWJ1Zl9mYXN0X2ZyZWVfYnVs
aygpDQo+ICAgKi8NCj4gICNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVF
ICAgUlRFX0JJVDY0KDE2KQ0KPiAgI2RlZmluZSBSVEVfRVRIX1RYX09GRkxPQURfU0VDVVJJVFkg
ICAgICAgICBSVEVfQklUNjQoMTcpDQo+IGRpZmYgLS1naXQgYS9saWIvbWJ1Zi9ydGVfbWJ1Zi5o
IGIvbGliL21idWYvcnRlX21idWYuaCBpbmRleA0KPiAwZDJlMGU2NGIzLi4xZTQwZTdmY2Y3IDEw
MDY0NA0KPiAtLS0gYS9saWIvbWJ1Zi9ydGVfbWJ1Zi5oDQo+ICsrKyBiL2xpYi9tYnVmL3J0ZV9t
YnVmLmgNCj4gQEAgLTU2OCw2ICs1NjgsMTAgQEAgX19ydGVfbWJ1Zl9yYXdfc2FuaXR5X2NoZWNr
KF9fcnRlX3VudXNlZCBjb25zdA0KPiBzdHJ1Y3QgcnRlX21idWYgKm0pDQo+ICAJUlRFX0FTU0VS
VChydGVfbWJ1Zl9yZWZjbnRfcmVhZChtKSA9PSAxKTsNCj4gIAlSVEVfQVNTRVJUKG0tPm5leHQg
PT0gTlVMTCk7DQo+ICAJUlRFX0FTU0VSVChtLT5uYl9zZWdzID09IDEpOw0KPiArCVJURV9BU1NF
UlQoIVJURV9NQlVGX0NMT05FRChtKSk7DQo+ICsJUlRFX0FTU0VSVCghUlRFX01CVUZfSEFTX0VY
VEJVRihtKSB8fA0KPiArCQkJKFJURV9NQlVGX0hBU19QSU5ORURfRVhUQlVGKG0pICYmDQo+ICsJ
CQlydGVfbWJ1Zl9leHRfcmVmY250X3JlYWQobS0+c2hpbmZvKSA9PSAxKSk7DQo+ICAJX19ydGVf
bWJ1Zl9zYW5pdHlfY2hlY2sobSwgMCk7DQo+ICB9DQo+IA0KPiBAQCAtNjA2LDYgKzYxMCw0MyBA
QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBydGVfbWJ1Zg0KPiAqcnRlX21idWZfcmF3X2FsbG9jKHN0
cnVjdCBydGVfbWVtcG9vbCAqbXApDQo+ICAJcmV0dXJuIHJldC5tOw0KPiAgfQ0KPiANCj4gKy8q
Kg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogVGhpcyBBUEkgbWF5IGNo
YW5nZSwgb3IgYmUgcmVtb3ZlZCwgd2l0aG91dCBwcmlvcg0KPiBub3RpY2UuDQo+ICsgKg0KPiAr
ICogQWxsb2NhdGUgYSBidWxrIG9mIHVuaW5pdGlhbGl6ZWQgbWJ1ZnMgZnJvbSBtZW1wb29sICpt
cCouDQo+ICsgKg0KPiArICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBieSBQTURzIChlc3Bl
Y2lhbGx5IGluIFJYIGZ1bmN0aW9ucykgdG8NCj4gKyAqIGFsbG9jYXRlIGEgYnVsayBvZiB1bmlu
aXRpYWxpemVkIG1idWZzLiBUaGUgZHJpdmVyIGlzIHJlc3BvbnNpYmxlIG9mDQo+ICsgKiBpbml0
aWFsaXppbmcgYWxsIHRoZSByZXF1aXJlZCBmaWVsZHMuIFNlZSBydGVfcGt0bWJ1Zl9yZXNldCgp
Lg0KPiArICogRm9yIHN0YW5kYXJkIG5lZWRzLCBwcmVmZXIgcnRlX3BrdG1idWZfYWxsb2NfYnVs
aygpLg0KPiArICoNCj4gKyAqIFRoZSBjYWxsZXIgY2FuIGV4cGVjdCB0aGF0IHRoZSBmb2xsb3dp
bmcgZmllbGRzIG9mIHRoZSBtYnVmDQo+ICtzdHJ1Y3R1cmUNCj4gKyAqIGFyZSBpbml0aWFsaXpl
ZDogYnVmX2FkZHIsIGJ1Zl9pb3ZhLCBidWZfbGVuLCByZWZjbnQ9MSwgbmJfc2Vncz0xLA0KPiAr
ICogbmV4dD1OVUxMLCBwb29sLCBwcml2X3NpemUuIFRoZSBvdGhlciBmaWVsZHMgbXVzdCBiZSBp
bml0aWFsaXplZA0KPiArICogYnkgdGhlIGNhbGxlci4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gbXAN
Cj4gKyAqICAgVGhlIG1lbXBvb2wgZnJvbSB3aGljaCBtYnVmcyBhcmUgYWxsb2NhdGVkLg0KPiAr
ICogQHBhcmFtIG1idWZzDQo+ICsgKiAgIEFycmF5IG9mIHBvaW50ZXJzIHRvIG1idWZzLg0KPiAr
ICogQHBhcmFtIGNvdW50DQo+ICsgKiAgIEFycmF5IHNpemUuDQo+ICsgKiBAcmV0dXJuDQo+ICsg
KiAgIC0gMDogU3VjY2Vzcy4NCj4gKyAqICAgLSAtRU5PRU5UOiBOb3QgZW5vdWdoIGVudHJpZXMg
aW4gdGhlIG1lbXBvb2w7IG5vIG1idWZzIGFyZSByZXRyaWV2ZWQuDQo+ICsgKi8NCj4gK19fcnRl
X2V4cGVyaW1lbnRhbA0KPiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgaW50DQo+ICtydGVf
bWJ1Zl9yYXdfYWxsb2NfYnVsayhzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wLCBzdHJ1Y3QgcnRlX21i
dWYNCj4gKyoqbWJ1ZnMsIHVuc2lnbmVkIGludCBjb3VudCkgew0KPiArCWludCByYyA9IHJ0ZV9t
ZW1wb29sX2dldF9idWxrKG1wLCAodm9pZCAqKiltYnVmcywgY291bnQpOw0KPiArCWlmIChsaWtl
bHkocmMgPT0gMCkpDQo+ICsJCWZvciAodW5zaWduZWQgaW50IGlkeCA9IDA7IGlkeCA8IGNvdW50
OyBpZHgrKykNCj4gKwkJCV9fcnRlX21idWZfcmF3X3Nhbml0eV9jaGVjayhtYnVmc1tpZHhdKTsN
Cj4gKwlyZXR1cm4gcmM7DQo+ICt9DQo+ICsNCj4gIC8qKg0KPiAgICogUHV0IG1idWYgYmFjayBp
bnRvIGl0cyBvcmlnaW5hbCBtZW1wb29sLg0KPiAgICoNCj4gQEAgLTYyMywxMiArNjY0LDQ3IEBA
IHN0YXRpYyBpbmxpbmUgc3RydWN0IHJ0ZV9tYnVmDQo+ICpydGVfbWJ1Zl9yYXdfYWxsb2Moc3Ry
dWN0IHJ0ZV9tZW1wb29sICptcCkgIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lDQo+IHZvaWQg
IHJ0ZV9tYnVmX3Jhd19mcmVlKHN0cnVjdCBydGVfbWJ1ZiAqbSkgIHsNCj4gLQlSVEVfQVNTRVJU
KCFSVEVfTUJVRl9DTE9ORUQobSkgJiYNCj4gLQkJICAoIVJURV9NQlVGX0hBU19FWFRCVUYobSkg
fHwNCj4gUlRFX01CVUZfSEFTX1BJTk5FRF9FWFRCVUYobSkpKTsNCj4gIAlfX3J0ZV9tYnVmX3Jh
d19zYW5pdHlfY2hlY2sobSk7DQo+ICAJcnRlX21lbXBvb2xfcHV0KG0tPnBvb2wsIG0pOw0KPiAg
fQ0KPiANCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogVGhp
cyBBUEkgbWF5IGNoYW5nZSwgb3IgYmUgcmVtb3ZlZCwgd2l0aG91dCBwcmlvcg0KPiBub3RpY2Uu
DQo+ICsgKg0KPiArICogUHV0IGEgYnVsayBvZiBtYnVmcyBhbGxvY2F0ZWQgZnJvbSB0aGUgc2Ft
ZSBtZW1wb29sIGJhY2sgaW50byB0aGUNCj4gbWVtcG9vbC4NCj4gKyAqDQo+ICsgKiBUaGUgY2Fs
bGVyIG11c3QgZW5zdXJlIHRoYXQgdGhlIG1idWZzIGNvbWUgZnJvbSB0aGUgc3BlY2lmaWVkDQo+
ICttZW1wb29sLA0KPiArICogYXJlIGRpcmVjdCBhbmQgcHJvcGVybHkgcmVpbml0aWFsaXplZCAo
cmVmY250PTEsIG5leHQ9TlVMTCwNCj4gK25iX3NlZ3M9MSksIGFzIGRvbmUgYnkNCj4gKyAqIHJ0
ZV9wa3RtYnVmX3ByZWZyZWVfc2VnKCkuDQo+ICsgKg0KPiArICogVGhpcyBmdW5jdGlvbiBzaG91
bGQgYmUgdXNlZCB3aXRoIGNhcmUsIHdoZW4gb3B0aW1pemF0aW9uIGlzDQo+ICsgKiByZXF1aXJl
ZC4gRm9yIHN0YW5kYXJkIG5lZWRzLCBwcmVmZXIgcnRlX3BrdG1idWZfZnJlZV9idWxrKCkuDQo+
ICsgKg0KPiArICogQHNlZSBSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUNCj4gKyAq
DQo+ICsgKiBAcGFyYW0gbXANCj4gKyAqICAgVGhlIG1lbXBvb2wgdG8gd2hpY2ggdGhlIG1idWZz
IGJlbG9uZy4NCj4gKyAqIEBwYXJhbSBtYnVmcw0KPiArICogICBBcnJheSBvZiBwb2ludGVycyB0
byBwYWNrZXQgbWJ1ZnMuDQo+ICsgKiAgIFRoZSBhcnJheSBtdXN0IG5vdCBjb250YWluIE5VTEwg
cG9pbnRlcnMuDQo+ICsgKiBAcGFyYW0gY291bnQNCj4gKyAqICAgQXJyYXkgc2l6ZS4NCj4gKyAq
Lw0KPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ICtzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2
b2lkDQo+ICtydGVfbWJ1Zl9mYXN0X2ZyZWVfYnVsayhzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wLCBz
dHJ1Y3QgcnRlX21idWYNCj4gKyoqbWJ1ZnMsIHVuc2lnbmVkIGludCBjb3VudCkgew0KPiArCWZv
ciAodW5zaWduZWQgaW50IGlkeCA9IDA7IGlkeCA8IGNvdW50OyBpZHgrKykgew0KPiArCQljb25z
dCBzdHJ1Y3QgcnRlX21idWYgKm0gPSBtYnVmc1tpZHhdOw0KPiArCQlSVEVfQVNTRVJUKG0gIT0g
TlVMTCk7DQo+ICsJCVJURV9BU1NFUlQobS0+cG9vbCA9PSBtcCk7DQo+ICsJCV9fcnRlX21idWZf
cmF3X3Nhbml0eV9jaGVjayhtKTsNCj4gKwl9DQo+ICsNCj4gKwlydGVfbWVtcG9vbF9wdXRfYnVs
ayhtcCwgKHZvaWQgKiopbWJ1ZnMsIGNvdW50KTsgfQ0KPiArDQo+ICAvKioNCj4gICAqIFRoZSBw
YWNrZXQgbWJ1ZiBjb25zdHJ1Y3Rvci4NCj4gICAqDQo+IC0tDQo+IDIuNDMuMA0KDQo=