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 26EA7A0C49;
	Fri, 18 Jun 2021 06:35:02 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 90A70410ED;
	Fri, 18 Jun 2021 06:34:50 +0200 (CEST)
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24])
 by mails.dpdk.org (Postfix) with ESMTP id 60C84410FB
 for <dev@dpdk.org>; Fri, 18 Jun 2021 06:34:48 +0200 (CEST)
IronPort-SDR: 6AKlo1uCFkU1vMN1pr3EmqR2XgstxS/5+etWTkOgJRzUWyyUme2MBlbCOz1FSLjFIf0BB2f0fS
 bgJo2haWcGdg==
X-IronPort-AV: E=McAfee;i="6200,9189,10018"; a="206447006"
X-IronPort-AV: E=Sophos;i="5.83,281,1616482800"; d="scan'208";a="206447006"
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 17 Jun 2021 21:34:48 -0700
IronPort-SDR: rzW7I4qCe+aJzlmZ0+ZnsLB/jHcJbAWq6P8jsiLG9oqYYtutylv/MJjJotw5zVzgyoBCFKX4ur
 Eaa9YWU4I5ZA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.83,281,1616482800"; d="scan'208";a="622271722"
Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84])
 by orsmga005.jf.intel.com with ESMTP; 17 Jun 2021 21:34:47 -0700
Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by
 fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.4; Thu, 17 Jun 2021 21:34:47 -0700
Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by
 fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4
 via Frontend Transport; Thu, 17 Jun 2021 21:34:46 -0700
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103)
 by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.4; Thu, 17 Jun 2021 21:34:46 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YSwg25SktgLz0ajmKCq+Vn8evq/d8dz6+YCXGRTRn0L3AyqGy7Q3tdc0d7d4YnMbR3pTg96x8QqHbu21thNJ8agwriZYUL9xsDEOmLqgNGGOhEpxe0G5Jw0pcW9Q6lyKkHtybez7YTv+55O0pqs+SRN79vSz/Cp94jpn9BTwPi6E+vM89eeDGe2X/Of4yZhcFsaOkm3gi1C9DcORR7rvZYudgW+WxBgwT7Vd9QKAVEwZzGrqshzs87SVhS4JL/8o7CYi5Uusowh9Y4zzrw0kB3EnPx53ID5gPcENgPGpVCSkXl+9Mws/g6uoHA7uTaoSXP0t3A8E25iPmP3HXOejFA==
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=kTyhvescu/gVCEnV16W+jtxSYonFgO10bArxqa5gYNI=;
 b=Bdm5hiugGLCzmvgHHC6JJcOx7vdZxJ7ryHkplKwZno2AwwfT/FlwYUv1Zkil0D2k27cCPfrv+dVd6VDnigJB5Bzj9vaxl4GVAudgV7cVLpTO3KlwB3/EtLoKV00q63kRMJWJ6/b1vUs+ABGp1bTXkxHkvqqn2jBj/PLvxcgLP+4WgxGwlejEbcpzpKBqIiMRxeqyG4l6lxBmtxaw852FgG1ajd7L/rrX0AyREklH6b9cWoFfd35PoSEVGd/ErFD177+e+b+9NpC4zr61W1aSRxLzeoli3Zp6HO4NNgXFR1FC1KX5DfGNU/63RHIMDzK/LlnTvnK4QnllQrvnLKZFPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; 
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kTyhvescu/gVCEnV16W+jtxSYonFgO10bArxqa5gYNI=;
 b=O6GGBHuxPrCgWh0gLROiVUirSMntYkm5TEFOTdrUai/WhfjmkMVX4IDyx9KPzSk5OA8XrKPHToNmkDKu+4Br5JlwuNx02JVdPvotVdaf9oU0Yl9tVhIMZBu68xZ+ZRqZzDMRXEyPRaAQV1DJBLBtiE1uswMwoWGGlz+JvDZi7aI=
Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22)
 by BL3PR11MB5713.namprd11.prod.outlook.com (2603:10b6:208:350::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.21; Fri, 18 Jun
 2021 04:34:45 +0000
Received: from MN2PR11MB4063.namprd11.prod.outlook.com
 ([fe80::d447:3a7a:aad7:4d32]) by MN2PR11MB4063.namprd11.prod.outlook.com
 ([fe80::d447:3a7a:aad7:4d32%7]) with mapi id 15.20.4219.026; Fri, 18 Jun 2021
 04:34:45 +0000
From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "david.marchand@redhat.com" <david.marchand@redhat.com>
Thread-Topic: [PATCH v4 5/7] vhost: improve NUMA reallocation
Thread-Index: AQHXY47qcudp2vzAJEGdR09VlQSICqsZAu/g
Date: Fri, 18 Jun 2021 04:34:45 +0000
Message-ID: <MN2PR11MB406368DC6A6F310408061BC39C0D9@MN2PR11MB4063.namprd11.prod.outlook.com>
References: <20210617153739.178011-1-maxime.coquelin@redhat.com>
 <20210617153739.178011-6-maxime.coquelin@redhat.com>
In-Reply-To: <20210617153739.178011-6-maxime.coquelin@redhat.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: redhat.com; dkim=none (message not signed)
 header.d=none;redhat.com; dmarc=none action=none header.from=intel.com;
x-originating-ip: [192.102.204.51]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 69802545-d9ab-486e-c83e-08d93212660e
x-ms-traffictypediagnostic: BL3PR11MB5713:
x-microsoft-antispam-prvs: <BL3PR11MB571355B9FE10ABE787C293CA9C0D9@BL3PR11MB5713.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: l9aKPB2XY2OT8McRCMcDkmL46hZkRf3gEDmm4aVVBEX8OPqKS6L5JXPoU3bTCovwb4fTxddX6UGcZKwqcAAnvsC4KMq95Z1Pw3z1vrq7ytOuCQ7Xk5L+FR8oLnrgaswqhJieleLaDVzHcbfsPeDmeeLsLhh+9JeY6ShspzfrQVu7EPOsef4rSs6Y4VeusnBVWJZo15k1FScBbpcMbr7bvOs1QoAuaEEmdiCThGWe18Awvj+XlzEP7eENrjaeHVaDTiUjqQnH8Nyb5OVxSV7mIFMhzs48yNHR0uTFLaYqw5BFfhVQtlDJ2Ln2tuIOjmCYAs8H+DVS+4H75RNYXoihqrnezD2hYBdOLe9Kwd0C7VS8RKeeTo4VnX4op+dEvv6SxScfn6FRWwTpFwfX7HkmGg6nWmvXhJ3J1x2ByZR+sQrEf0hjBBbZbJHOfBJp27O+YJcBloDHZ4X1Gnu8oAkugzSvQJ6/lMfxnmGhq38WsvBNJYHxtgId8BrK8zHg06o9GJTptSsxFTI1H6c7jjiIMDsG23jU3W6lIHZKwMmq9oK+4e0r/wEZvbLkeulK4kO26GzlccyKgtSfJu2jZUziB5XQ9SkD6SomUiLVmEBcTco=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(376002)(366004)(346002)(396003)(39860400002)(136003)(76116006)(55016002)(9686003)(6506007)(66476007)(110136005)(86362001)(26005)(66446008)(2906002)(64756008)(66946007)(316002)(33656002)(7696005)(53546011)(66556008)(186003)(5660300002)(478600001)(52536014)(38100700002)(122000001)(83380400001)(71200400001)(8676002)(8936002);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MkxGSENQTUMxSEQ5M2FUeEQ0Y1hLOTBrQlZzdnRCb1dwSzY4Q3dnQUkvd3Nr?=
 =?utf-8?B?KzhaSTMxNUkvc1RwM2x5d3p0akJUWXV0Z1FIbWlzdU9lazhGeGVRbG5aWGcz?=
 =?utf-8?B?SEVNdnBJN2EweUFaMTdNaVNZTkh4dGJkelhscDFncG5XUTQxV0pRUU9FbXVj?=
 =?utf-8?B?RlNrVTJEamZIOExLd2duWVA4bVZkbEV2VGovVytpeWl3L1hzU0ZzTlh3OVRL?=
 =?utf-8?B?Q1hxZUJLNEZKbVYrV2hOQWRxWklWdktCYmU1RnBLYjdlcXh0UW5NK2o0bGNT?=
 =?utf-8?B?czVadGFLZXZGL2F3Nms2QVU4SEZDNjRUZStSM1grYzk4ZXRsNU4xNkd4MDRm?=
 =?utf-8?B?Ny9Iai9PNTdqcW4yUjk1VlJWL29iRG90bEI5aWJvOEZ0cEc0WWFlZmJCV1Bw?=
 =?utf-8?B?VmhGaXh5WXVLWUhCZVZYaVNiZDdlNEI5bmtvbmkrQ256NnRaREQ4YitiQ0VR?=
 =?utf-8?B?SE1GRnFkQm01a1NmWGNYOGhvRHN0M1FJQ1FKclBZTnZXNVBoSTM2bms1YmpK?=
 =?utf-8?B?Q1BPaCtSRVcyUFYxaXRNZHFYSEJzcGVvLy81YnBkYWpLczV3RWVsZUNISkpn?=
 =?utf-8?B?VW1aZXlpQTNMNW5YSzZQVjd0c3hYTXBaeEUzWWFxZEljMVBuR1gySnpKK0Fy?=
 =?utf-8?B?UDNESlAwUmtackV0YUV0Sm1BU2NNQ3NqbVRyWlVkeXk4NGV0ZHFMQUNFa3VM?=
 =?utf-8?B?RGx4M2JnQW9OT2pDRm56N01NK2NrWXVmL0hTR0VweFI1Qk9OdVpzc2RoOGJn?=
 =?utf-8?B?ZEsxN3pyQXQ1VDBNMUdmYWR1Q29BZnhxZGFBNWF6L1JwbFBtQUw1NENNVVMx?=
 =?utf-8?B?U0gzRjlTT2tEdE1yb0l1dTFTRzQ2bW0ydkRNbFppNm5mbndmck1Pa093QlVo?=
 =?utf-8?B?SHJBdW53V05DbUFyeDlKS0lEaUZFOU9TL05LMmM4ZTVjSEZGeTU3eTNLNkNW?=
 =?utf-8?B?SmFITExXS0l1amFFMi9KbVFzOWtweUVwT2trMnFaMGhlK0hDSW9ySFcvV3B1?=
 =?utf-8?B?bndtbEErOEx1WmFET2JETzYyVFRyNXkraFR0S05UUCs3WWxVVE1neGJoMndK?=
 =?utf-8?B?eVVhOGFTelhzbWVTZjZtSVpiYWRRZjBRczU0cTlDS05pdksvK2pZVGh2OVVa?=
 =?utf-8?B?SEhFSTVnR1RheEhrd0laTFBRd2EwUGdiUUQ5YkJma1g3dkovRkVJdzczTWtq?=
 =?utf-8?B?aGFGbGNaSlp0aGJkRUFEUE9mT1NOYTg4a3pUS0FQWmZVMGhNYU1mc2YxR3Zm?=
 =?utf-8?B?ckZLMEFVWUNJMVRlamluNkNrb2xNUzVEcnFtdnUvYlRWL2hqQ004R0VqSmlV?=
 =?utf-8?B?MTNsdC81KzJDWWJsbTU0ZDdlMUdwRkt4SmxVam9ZSjQ3ZTdFV2tONFI0aFZS?=
 =?utf-8?B?YnAxT3BuOE5hZ2F6TXVxV2JTRnUwSFowL0l2ZnJqWmlsQlpmYkNvWncxR2x2?=
 =?utf-8?B?SU05azRJOWlOMFZVejVPalV5alFtSUdSSld3dWJTem9jT2hnRXlVU2UvdHdV?=
 =?utf-8?B?clZQRVFuN29DaDl5NjNrN2NvREJRWTBSWnFCTkgxZWthejk2R2R2TFRFbE9m?=
 =?utf-8?B?UnRtL2dsbWRXNVZYakxhOGZ0N01aTldvcUNQQmtHbUNlU3lUcmJDamFONWl6?=
 =?utf-8?B?T3dhVDFHdzNDdys3elJyK2tqa09PMUVBa1ZwMDBybGY0YVVYV3NWUEhCYnlD?=
 =?utf-8?B?bWZUVHVyK01HaG9rVFVMU2djWTRZSnViZjFIMVl6NElmZ1BpM0Q1blN0T21W?=
 =?utf-8?Q?oK/PUE9kxHLmKCa+ji++bwSJa1qCZeDFp15Wrfh?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 69802545-d9ab-486e-c83e-08d93212660e
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2021 04:34:45.1671 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: XfrvgVfBBlTSCx+a5SO4IKCH+323swYyD9fWOVmZ0dehHALkLJr6rVZneg5nbfqg+PZ4fPkOYuCo7K+1nTeosg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR11MB5713
X-OriginatorOrg: intel.com
Subject: Re: [dpdk-dev] [PATCH v4 5/7] vhost: improve NUMA reallocation
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
Sender: "dev" <dev-bounces@dpdk.org>

SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt
ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5
LCBKdW5lIDE3LCAyMDIxIDExOjM4IFBNDQo+IFRvOiBkZXZAZHBkay5vcmc7IGRhdmlkLm1hcmNo
YW5kQHJlZGhhdC5jb207IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCj4gQ2M6
IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6
IFtQQVRDSCB2NCA1LzddIHZob3N0OiBpbXByb3ZlIE5VTUEgcmVhbGxvY2F0aW9uDQo+IA0KPiBU
aGlzIHBhdGNoIGltcHJvdmVzIHRoZSBudW1hX3JlYWxsb2MoKSBmdW5jdGlvbiBieSBtYWtpbmcg
dXNlDQo+IG9mIHJ0ZV9yZWFsbG9jX3NvY2tldCgpLCB3aGljaCB0YWtlcyBjYXJlIG9mIHRoZSBt
ZW1vcnkgY29weQ0KPiBhbmQgZnJlZWluZyBvZiB0aGUgb2xkIGRhdGEuDQo+IA0KPiBTdWdnZXN0
ZWQtYnk6IERhdmlkIE1hcmNoYW5kIDxkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tPg0KPiBTaWdu
ZWQtb2ZmLWJ5OiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0K
PiAtLS0NCj4gIGxpYi92aG9zdC92aG9zdF91c2VyLmMgfCAxOTUgKysrKysrKysrKysrKysrKysr
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCA4NiBpbnNlcnRpb25z
KCspLCAxMDkgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3Zob3N0
X3VzZXIuYyBiL2xpYi92aG9zdC92aG9zdF91c2VyLmMNCj4gaW5kZXggNmU3YjMyN2VmOC4uMDU5
MGVmNmQxNCAxMDA2NDQNCj4gLS0tIGEvbGliL3Zob3N0L3Zob3N0X3VzZXIuYw0KPiArKysgYi9s
aWIvdmhvc3Qvdmhvc3RfdXNlci5jDQo+IEBAIC00ODAsMTQ0ICs0ODAsMTIxIEBAIHZob3N0X3Vz
ZXJfc2V0X3ZyaW5nX251bShzdHJ1Y3QgdmlydGlvX25ldCAqKnBkZXYsDQo+ICBzdGF0aWMgc3Ry
dWN0IHZpcnRpb19uZXQqDQo+ICBudW1hX3JlYWxsb2Moc3RydWN0IHZpcnRpb19uZXQgKmRldiwg
aW50IGluZGV4KQ0KPiAgew0KPiAtCWludCBvbGRub2RlLCBuZXdub2RlOw0KPiArCWludCBub2Rl
LCBkZXZfbm9kZTsNCj4gIAlzdHJ1Y3QgdmlydGlvX25ldCAqb2xkX2RldjsNCj4gLQlzdHJ1Y3Qg
dmhvc3RfdmlydHF1ZXVlICpvbGRfdnEsICp2cTsNCj4gLQlzdHJ1Y3QgdnJpbmdfdXNlZF9lbGVt
ICpuZXdfc2hhZG93X3VzZWRfc3BsaXQ7DQo+IC0Jc3RydWN0IHZyaW5nX3VzZWRfZWxlbV9wYWNr
ZWQgKm5ld19zaGFkb3dfdXNlZF9wYWNrZWQ7DQo+IC0Jc3RydWN0IGJhdGNoX2NvcHlfZWxlbSAq
bmV3X2JhdGNoX2NvcHlfZWxlbXM7DQo+ICsJc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnE7DQo+
ICsJc3RydWN0IGJhdGNoX2NvcHlfZWxlbSAqYmNlOw0KPiArCXN0cnVjdCBndWVzdF9wYWdlICpn
cDsNCj4gKwlzdHJ1Y3QgcnRlX3Zob3N0X21lbW9yeSAqbWVtOw0KPiArCXNpemVfdCBtZW1fc2l6
ZTsNCj4gIAlpbnQgcmV0Ow0KPiANCj4gIAlvbGRfZGV2ID0gZGV2Ow0KPiAtCXZxID0gb2xkX3Zx
ID0gZGV2LT52aXJ0cXVldWVbaW5kZXhdOw0KPiAtDQo+IC0JcmV0ID0gZ2V0X21lbXBvbGljeSgm
bmV3bm9kZSwgTlVMTCwgMCwgb2xkX3ZxLT5kZXNjLA0KPiAtCQkJICAgIE1QT0xfRl9OT0RFIHwg
TVBPTF9GX0FERFIpOw0KPiArCXZxID0gZGV2LT52aXJ0cXVldWVbaW5kZXhdOw0KPiANCj4gLQkv
KiBjaGVjayBpZiB3ZSBuZWVkIHRvIHJlYWxsb2NhdGUgdnEgKi8NCj4gLQlyZXQgfD0gZ2V0X21l
bXBvbGljeSgmb2xkbm9kZSwgTlVMTCwgMCwgb2xkX3ZxLA0KPiAtCQkJICAgICBNUE9MX0ZfTk9E
RSB8IE1QT0xfRl9BRERSKTsNCj4gKwlyZXQgPSBnZXRfbWVtcG9saWN5KCZub2RlLCBOVUxMLCAw
LCB2cS0+ZGVzYywgTVBPTF9GX05PREUgfCBNUE9MX0ZfQUREUik7DQo+ICAJaWYgKHJldCkgew0K
PiAtCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwNCj4gLQkJCSJVbmFibGUgdG8gZ2V0IHZxIG51bWEg
aW5mb3JtYXRpb24uXG4iKTsNCj4gKwkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJVbmFibGUgdG8g
Z2V0IHZpcnRxdWV1ZSAlZCBudW1hDQo+IGluZm9ybWF0aW9uLlxuIiwgaW5kZXgpOw0KPiAgCQly
ZXR1cm4gZGV2Ow0KPiAgCX0NCj4gLQlpZiAob2xkbm9kZSAhPSBuZXdub2RlKSB7DQo+IC0JCWlm
ICh2cS0+cmVhZHkpIHsNCj4gLQkJCXZxLT5yZWFkeSA9IGZhbHNlOw0KPiAtCQkJdmhvc3RfdXNl
cl9ub3RpZnlfcXVldWVfc3RhdGUoZGV2LCBpbmRleCwgMCk7DQo+IC0JCX0NCj4gDQo+IC0JCVZI
T1NUX0xPR19DT05GSUcoSU5GTywNCj4gLQkJCSJyZWFsbG9jYXRlIHZxIGZyb20gJWQgdG8gJWQg
bm9kZVxuIiwgb2xkbm9kZSwgbmV3bm9kZSk7DQo+IC0JCXZxID0gcnRlX21hbGxvY19zb2NrZXQo
TlVMTCwgc2l6ZW9mKCp2cSksIDAsIG5ld25vZGUpOw0KPiAtCQlpZiAoIXZxKQ0KPiAtCQkJcmV0
dXJuIGRldjsNCj4gKwlpZiAodnEtPnJlYWR5KSB7DQo+ICsJCXZxLT5yZWFkeSA9IGZhbHNlOw0K
PiArCQl2aG9zdF91c2VyX25vdGlmeV9xdWV1ZV9zdGF0ZShkZXYsIGluZGV4LCAwKTsNCj4gKwl9
DQo+IA0KPiAtCQltZW1jcHkodnEsIG9sZF92cSwgc2l6ZW9mKCp2cSkpOw0KPiArCXZxID0gcnRl
X3JlYWxsb2Nfc29ja2V0KHZxLCBzaXplb2YoKnZxKSwgMCwgbm9kZSk7DQo+ICsJaWYgKCF2cSkg
ew0KPiArCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgIkZhaWxlZCB0byByZWFsbG9jIHZpcnRxdWV1
ZSAlZCBvbg0KPiBub2RlICVkXG4iLA0KPiArCQkJCWluZGV4LCBub2RlKTsNCj4gKwkJcmV0dXJu
IGRldjsNCj4gKwl9DQo+IA0KPiAtCQlpZiAodnFfaXNfcGFja2VkKGRldikpIHsNCj4gLQkJCW5l
d19zaGFkb3dfdXNlZF9wYWNrZWQgPSBydGVfbWFsbG9jX3NvY2tldChOVUxMLA0KPiAtCQkJCQl2
cS0+c2l6ZSAqDQo+IC0JCQkJCXNpemVvZihzdHJ1Y3QgdnJpbmdfdXNlZF9lbGVtX3BhY2tlZCks
DQo+IC0JCQkJCVJURV9DQUNIRV9MSU5FX1NJWkUsDQo+IC0JCQkJCW5ld25vZGUpOw0KPiAtCQkJ
aWYgKG5ld19zaGFkb3dfdXNlZF9wYWNrZWQpIHsNCj4gLQkJCQlydGVfZnJlZSh2cS0+c2hhZG93
X3VzZWRfcGFja2VkKTsNCj4gLQkJCQl2cS0+c2hhZG93X3VzZWRfcGFja2VkID0gbmV3X3NoYWRv
d191c2VkX3BhY2tlZDsNCj4gLQkJCX0NCj4gLQkJfSBlbHNlIHsNCj4gLQkJCW5ld19zaGFkb3df
dXNlZF9zcGxpdCA9IHJ0ZV9tYWxsb2Nfc29ja2V0KE5VTEwsDQo+IC0JCQkJCXZxLT5zaXplICoN
Cj4gLQkJCQkJc2l6ZW9mKHN0cnVjdCB2cmluZ191c2VkX2VsZW0pLA0KPiAtCQkJCQlSVEVfQ0FD
SEVfTElORV9TSVpFLA0KPiAtCQkJCQluZXdub2RlKTsNCj4gLQkJCWlmIChuZXdfc2hhZG93X3Vz
ZWRfc3BsaXQpIHsNCj4gLQkJCQlydGVfZnJlZSh2cS0+c2hhZG93X3VzZWRfc3BsaXQpOw0KPiAt
CQkJCXZxLT5zaGFkb3dfdXNlZF9zcGxpdCA9IG5ld19zaGFkb3dfdXNlZF9zcGxpdDsNCj4gLQkJ
CX0NCj4gLQkJfQ0KPiArCWlmICh2cSAhPSBkZXYtPnZpcnRxdWV1ZVtpbmRleF0pIHsNCj4gKwkJ
VkhPU1RfTE9HX0NPTkZJRyhJTkZPLCAicmVhbGxvY2F0ZWQgdmlydHF1ZXVlIG9uIG5vZGUgJWRc
biIsIG5vZGUpOw0KPiArCQlkZXYtPnZpcnRxdWV1ZVtpbmRleF0gPSB2cTsNCj4gKwkJdmhvc3Rf
dXNlcl9pb3RsYl9pbml0KGRldiwgaW5kZXgpOw0KPiArCX0NCj4gKw0KPiArCWlmICh2cV9pc19w
YWNrZWQoZGV2KSkgew0KPiArCQlzdHJ1Y3QgdnJpbmdfdXNlZF9lbGVtX3BhY2tlZCAqc3VwOw0K
PiANCj4gLQkJbmV3X2JhdGNoX2NvcHlfZWxlbXMgPSBydGVfbWFsbG9jX3NvY2tldChOVUxMLA0K
PiAtCQkJdnEtPnNpemUgKiBzaXplb2Yoc3RydWN0IGJhdGNoX2NvcHlfZWxlbSksDQo+IC0JCQlS
VEVfQ0FDSEVfTElORV9TSVpFLA0KPiAtCQkJbmV3bm9kZSk7DQo+IC0JCWlmIChuZXdfYmF0Y2hf
Y29weV9lbGVtcykgew0KPiAtCQkJcnRlX2ZyZWUodnEtPmJhdGNoX2NvcHlfZWxlbXMpOw0KPiAt
CQkJdnEtPmJhdGNoX2NvcHlfZWxlbXMgPSBuZXdfYmF0Y2hfY29weV9lbGVtczsNCj4gKwkJc3Vw
ID0gcnRlX3JlYWxsb2Nfc29ja2V0KHZxLT5zaGFkb3dfdXNlZF9wYWNrZWQsIHZxLT5zaXplICoN
Cj4gc2l6ZW9mKCpzdXApLA0KPiArCQkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIG5vZGUpOw0KPiAr
CQlpZiAoIXN1cCkgew0KPiArCQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJGYWlsZWQgdG8gcmVh
bGxvYyBzaGFkb3cgcGFja2VkIG9uDQo+IG5vZGUgJWRcbiIsIG5vZGUpOw0KPiArCQkJcmV0dXJu
IGRldjsNCj4gIAkJfQ0KPiArCQl2cS0+c2hhZG93X3VzZWRfcGFja2VkID0gc3VwOw0KPiANCg0K
QWJvdmUgYmxhbmsgbGluZSBjb3VsZCBiZSBkZWxldGVkPw0KDQpUaGFua3MsDQpDaGVuYm8NCg0K
PiAtCQlpZiAodnEtPmxvZ19jYWNoZSkgew0KPiAtCQkJc3RydWN0IGxvZ19jYWNoZV9lbnRyeSAq
bG9nX2NhY2hlOw0KPiArCX0gZWxzZSB7DQo+ICsJCXN0cnVjdCB2cmluZ191c2VkX2VsZW0gKnN1
czsNCj4gDQo+IC0JCQlsb2dfY2FjaGUgPSBydGVfcmVhbGxvY19zb2NrZXQodnEtPmxvZ19jYWNo
ZSwNCj4gLQkJCQkJc2l6ZW9mKHN0cnVjdCBsb2dfY2FjaGVfZW50cnkpICoNCj4gVkhPU1RfTE9H
X0NBQ0hFX05SLA0KPiAtCQkJCQkwLCBuZXdub2RlKTsNCj4gLQkJCWlmIChsb2dfY2FjaGUpDQo+
IC0JCQkJdnEtPmxvZ19jYWNoZSA9IGxvZ19jYWNoZTsNCj4gKwkJc3VzID0gcnRlX3JlYWxsb2Nf
c29ja2V0KHZxLT5zaGFkb3dfdXNlZF9zcGxpdCwgdnEtPnNpemUgKg0KPiBzaXplb2YoKnN1cyks
DQo+ICsJCQkJUlRFX0NBQ0hFX0xJTkVfU0laRSwgbm9kZSk7DQo+ICsJCWlmICghc3VzKSB7DQo+
ICsJCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgIkZhaWxlZCB0byByZWFsbG9jIHNoYWRvdyBzcGxp
dCBvbg0KPiBub2RlICVkXG4iLCBub2RlKTsNCj4gKwkJCXJldHVybiBkZXY7DQo+ICAJCX0NCj4g
LQ0KPiAtCQlydGVfZnJlZShvbGRfdnEpOw0KPiArCQl2cS0+c2hhZG93X3VzZWRfc3BsaXQgPSBz
dXM7DQo+ICAJfQ0KPiANCj4gLQlpZiAoZGV2LT5mbGFncyAmIFZJUlRJT19ERVZfUlVOTklORykN
Cj4gLQkJZ290byBvdXQ7DQo+IC0NCj4gLQkvKiBjaGVjayBpZiB3ZSBuZWVkIHRvIHJlYWxsb2Nh
dGUgZGV2ICovDQo+IC0JcmV0ID0gZ2V0X21lbXBvbGljeSgmb2xkbm9kZSwgTlVMTCwgMCwgb2xk
X2RldiwNCj4gLQkJCSAgICBNUE9MX0ZfTk9ERSB8IE1QT0xfRl9BRERSKTsNCj4gLQlpZiAocmV0
KSB7DQo+IC0JCVZIT1NUX0xPR19DT05GSUcoRVJSLA0KPiAtCQkJIlVuYWJsZSB0byBnZXQgZGV2
IG51bWEgaW5mb3JtYXRpb24uXG4iKTsNCj4gLQkJZ290byBvdXQ7DQo+ICsJYmNlID0gcnRlX3Jl
YWxsb2Nfc29ja2V0KHZxLT5iYXRjaF9jb3B5X2VsZW1zLCB2cS0+c2l6ZSAqIHNpemVvZigqYmNl
KSwNCj4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIG5vZGUpOw0KPiArCWlmICghYmNlKSB7DQo+
ICsJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRmFpbGVkIHRvIHJlYWxsb2MgYmF0Y2ggY29weSBl
bGVtIG9uDQo+IG5vZGUgJWRcbiIsIG5vZGUpOw0KPiArCQlyZXR1cm4gZGV2Ow0KPiAgCX0NCj4g
LQlpZiAob2xkbm9kZSAhPSBuZXdub2RlKSB7DQo+IC0JCXN0cnVjdCBydGVfdmhvc3RfbWVtb3J5
ICpvbGRfbWVtOw0KPiAtCQlzdHJ1Y3QgZ3Vlc3RfcGFnZSAqb2xkX2dwOw0KPiAtCQlzc2l6ZV90
IG1lbV9zaXplLCBncF9zaXplOw0KPiArCXZxLT5iYXRjaF9jb3B5X2VsZW1zID0gYmNlOw0KPiAN
Cj4gLQkJVkhPU1RfTE9HX0NPTkZJRyhJTkZPLA0KPiAtCQkJInJlYWxsb2NhdGUgZGV2IGZyb20g
JWQgdG8gJWQgbm9kZVxuIiwNCj4gLQkJCW9sZG5vZGUsIG5ld25vZGUpOw0KPiAtCQlkZXYgPSBy
dGVfbWFsbG9jX3NvY2tldChOVUxMLCBzaXplb2YoKmRldiksIDAsIG5ld25vZGUpOw0KPiAtCQlp
ZiAoIWRldikgew0KPiAtCQkJZGV2ID0gb2xkX2RldjsNCj4gLQkJCWdvdG8gb3V0Ow0KPiAtCQl9
DQo+ICsJaWYgKHZxLT5sb2dfY2FjaGUpIHsNCj4gKwkJc3RydWN0IGxvZ19jYWNoZV9lbnRyeSAq
bGM7DQo+IA0KPiAtCQltZW1jcHkoZGV2LCBvbGRfZGV2LCBzaXplb2YoKmRldikpOw0KPiAtCQly
dGVfZnJlZShvbGRfZGV2KTsNCj4gLQ0KPiAtCQltZW1fc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnRl
X3Zob3N0X21lbW9yeSkgKw0KPiAtCQkJc2l6ZW9mKHN0cnVjdCBydGVfdmhvc3RfbWVtX3JlZ2lv
bikgKiBkZXYtPm1lbS0+bnJlZ2lvbnM7DQo+IC0JCW9sZF9tZW0gPSBkZXYtPm1lbTsNCj4gLQkJ
ZGV2LT5tZW0gPSBydGVfbWFsbG9jX3NvY2tldChOVUxMLCBtZW1fc2l6ZSwgMCwgbmV3bm9kZSk7
DQo+IC0JCWlmICghZGV2LT5tZW0pIHsNCj4gLQkJCWRldi0+bWVtID0gb2xkX21lbTsNCj4gLQkJ
CWdvdG8gb3V0Ow0KPiArCQlsYyA9IHJ0ZV9yZWFsbG9jX3NvY2tldCh2cS0+bG9nX2NhY2hlLCBz
aXplb2YoKmxjKSAqDQo+IFZIT1NUX0xPR19DQUNIRV9OUiwgMCwgbm9kZSk7DQo+ICsJCWlmICgh
bGMpIHsNCj4gKwkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRmFpbGVkIHRvIHJlYWxsb2MgbG9n
IGNhY2hlIG9uDQo+IG5vZGUgJWRcbiIsIG5vZGUpOw0KPiArCQkJcmV0dXJuIGRldjsNCj4gIAkJ
fQ0KPiArCQl2cS0+bG9nX2NhY2hlID0gbGM7DQo+ICsJfQ0KPiANCj4gLQkJbWVtY3B5KGRldi0+
bWVtLCBvbGRfbWVtLCBtZW1fc2l6ZSk7DQo+IC0JCXJ0ZV9mcmVlKG9sZF9tZW0pOw0KPiArCWlm
IChkZXYtPmZsYWdzICYgVklSVElPX0RFVl9SVU5OSU5HKQ0KPiArCQlyZXR1cm4gZGV2Ow0KPiAN
Cj4gLQkJZ3Bfc2l6ZSA9IGRldi0+bWF4X2d1ZXN0X3BhZ2VzICogc2l6ZW9mKCpkZXYtPmd1ZXN0
X3BhZ2VzKTsNCj4gLQkJb2xkX2dwID0gZGV2LT5ndWVzdF9wYWdlczsNCj4gLQkJZGV2LT5ndWVz
dF9wYWdlcyA9IHJ0ZV9tYWxsb2Nfc29ja2V0KE5VTEwsIGdwX3NpemUsDQo+IFJURV9DQUNIRV9M
SU5FX1NJWkUsIG5ld25vZGUpOw0KPiAtCQlpZiAoIWRldi0+Z3Vlc3RfcGFnZXMpIHsNCj4gLQkJ
CWRldi0+Z3Vlc3RfcGFnZXMgPSBvbGRfZ3A7DQo+IC0JCQlnb3RvIG91dDsNCj4gLQkJfQ0KPiAr
CXJldCA9IGdldF9tZW1wb2xpY3koJmRldl9ub2RlLCBOVUxMLCAwLCBkZXYsIE1QT0xfRl9OT0RF
IHwgTVBPTF9GX0FERFIpOw0KPiArCWlmIChyZXQpIHsNCj4gKwkJVkhPU1RfTE9HX0NPTkZJRyhF
UlIsICJVbmFibGUgdG8gZ2V0IFZpcnRpbyBkZXYgJWQgbnVtYQ0KPiBpbmZvcm1hdGlvbi5cbiIs
IGRldi0+dmlkKTsNCj4gKwkJcmV0dXJuIGRldjsNCj4gKwl9DQo+IA0KPiAtCQltZW1jcHkoZGV2
LT5ndWVzdF9wYWdlcywgb2xkX2dwLCBncF9zaXplKTsNCj4gLQkJcnRlX2ZyZWUob2xkX2dwKTsN
Cj4gKwlpZiAoZGV2X25vZGUgPT0gbm9kZSkNCj4gKwkJcmV0dXJuIGRldjsNCj4gKw0KPiArCWRl
diA9IHJ0ZV9yZWFsbG9jX3NvY2tldChvbGRfZGV2LCBzaXplb2YoKmRldiksIDAsIG5vZGUpOw0K
PiArCWlmICghZGV2KSB7DQo+ICsJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRmFpbGVkIHRvIHJl
YWxsb2MgZGV2IG9uIG5vZGUgJWRcbiIsIG5vZGUpOw0KPiArCQlyZXR1cm4gb2xkX2RldjsNCj4g
IAl9DQo+IA0KPiAtb3V0Og0KPiAtCWRldi0+dmlydHF1ZXVlW2luZGV4XSA9IHZxOw0KPiArCVZI
T1NUX0xPR19DT05GSUcoSU5GTywgInJlYWxsb2NhdGVkIGRldmljZSBvbiBub2RlICVkXG4iLCBu
b2RlKTsNCj4gIAl2aG9zdF9kZXZpY2VzW2Rldi0+dmlkXSA9IGRldjsNCj4gDQo+IC0JaWYgKG9s
ZF92cSAhPSB2cSkNCj4gLQkJdmhvc3RfdXNlcl9pb3RsYl9pbml0KGRldiwgaW5kZXgpOw0KPiAr
CW1lbV9zaXplID0gc2l6ZW9mKHN0cnVjdCBydGVfdmhvc3RfbWVtb3J5KSArDQo+ICsJCXNpemVv
ZihzdHJ1Y3QgcnRlX3Zob3N0X21lbV9yZWdpb24pICogZGV2LT5tZW0tPm5yZWdpb25zOw0KPiAr
CW1lbSA9IHJ0ZV9yZWFsbG9jX3NvY2tldChkZXYtPm1lbSwgbWVtX3NpemUsIDAsIG5vZGUpOw0K
PiArCWlmICghbWVtKSB7DQo+ICsJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRmFpbGVkIHRvIHJl
YWxsb2MgbWVtIHRhYmxlIG9uIG5vZGUgJWRcbiIsDQo+IG5vZGUpOw0KPiArCQlyZXR1cm4gZGV2
Ow0KPiArCX0NCj4gKwlkZXYtPm1lbSA9IG1lbTsNCj4gKw0KPiArCWdwID0gcnRlX3JlYWxsb2Nf
c29ja2V0KGRldi0+Z3Vlc3RfcGFnZXMsIGRldi0+bWF4X2d1ZXN0X3BhZ2VzICoNCj4gc2l6ZW9m
KCpncCksDQo+ICsJCQlSVEVfQ0FDSEVfTElORV9TSVpFLCBub2RlKTsNCj4gKwlpZiAoIWdwKSB7
DQo+ICsJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRmFpbGVkIHRvIHJlYWxsb2MgZ3Vlc3QgcGFn
ZXMgb24gbm9kZSAlZFxuIiwNCj4gbm9kZSk7DQo+ICsJCXJldHVybiBkZXY7DQo+ICsJfQ0KPiAr
CWRldi0+Z3Vlc3RfcGFnZXMgPSBncDsNCj4gDQo+ICAJcmV0dXJuIGRldjsNCj4gIH0NCj4gLS0N
Cj4gMi4zMS4xDQoNCg==