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 CC9AE42DCC; Tue, 4 Jul 2023 08:53:58 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AA91040F18; Tue, 4 Jul 2023 08:53:58 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2085.outbound.protection.outlook.com [40.107.92.85]) by mails.dpdk.org (Postfix) with ESMTP id 23FB440E03 for ; Tue, 4 Jul 2023 08:53:57 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YiSBzGEdcliWtn8MWl8r+sucwdAPwMbzyiPfQlaBCxd2gd1ZUdj/tI63mV7FUml/SZYyRa+8K1+TiWqoKydw6KrS4a32XRqXmGK8/9hI/FXfcVleljG/JX0+LcFoZLKlMXCmRdXX41kOtsqLB/dag8GvKromY4p2yO8L4V8+q0IYucwCzKpAkLBns/uUyVZ3s8yYeJ7GAlQOFdYp0nKrkz0DWTdennt9GvImyF+YA2MIKSq20AwsC8rX/0tl5q/m8yhRuBMqrw9chtlPHwoxRdqiOtP/nxbR5iN97eTLbut4edaJdbEhqKfpeUtKEnLVXM+JCr/jtx8EiQAXkFrt5Q== 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=2zuzU/wk+WeixnIM4FxVQrZ5tnSxQwii4a1oU+eufy0=; b=hHvouyuxTqeM/xoHW/0ST+N6e+cimdtuQN2wsA+m0mneJJvOF42DmTd5/+OHcRTb6NMtAvJnIwKGn1A+71gUNw1biHSUq7TEamLnSN10GIIDle6jLaRqLdLKEHuXLTqcP8Q5r52nP2GN520LyL57puiyeLsBbXY1plCU0IwmOpYZXyJbHCikrcqlXJwV+ueDIp/FImo7d9clhzs65xtPNKJaP1kcIt6yh1fggTKdlsBq+TLs4z9OuRQyqVG80SUDNwsAlynMrLkk2tEwTsuS9nN+OEu3wmvGl2V7ueN1mlQz6TWYq3gufonGybAMINtm03ms6ms5/gjzwMUyuDbm9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2zuzU/wk+WeixnIM4FxVQrZ5tnSxQwii4a1oU+eufy0=; b=Mzz+QTvwhMfR4xkPkw8IfJI6VdGFWbj+/u8Wz5wNzRjV6DRZ8mOGdGlZSsvKNOin/D6sH0Q5cEsBmWtCHM7+GwePfJ3XnpB8ofaQDvuAflnLhomEvxHRu/iC/uUWQTj8CA7np8AagWkKCUpUZr9yW3DeLQsUX9aj6WKB/pvL27U= Received: from CH3PR12MB8308.namprd12.prod.outlook.com (2603:10b6:610:131::8) by DM6PR12MB4941.namprd12.prod.outlook.com (2603:10b6:5:1b8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 06:53:54 +0000 Received: from CH3PR12MB8308.namprd12.prod.outlook.com ([fe80::e452:1914:1054:de79]) by CH3PR12MB8308.namprd12.prod.outlook.com ([fe80::e452:1914:1054:de79%7]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 06:53:54 +0000 From: "Gupta, Nipun" To: "Ding, Xuan" , "dev@dpdk.org" , "thomas@monjalon.net" , "Burakov, Anatoly" , "Yigit, Ferruh" , David Marchand CC: "Agarwal, Nikhil" , "He, Xingguang" , "Ling, WeiX" Subject: RE: [PATCH] vfio: do not coalesce DMA mappings Thread-Topic: [PATCH] vfio: do not coalesce DMA mappings Thread-Index: AQHZHDVZj+ldT3rXrUeH96/QfwVI8q+ijOsAgAEjzgCAAEaggIAGPKuAgAAW+2A= Date: Tue, 4 Jul 2023 06:53:53 +0000 Message-ID: References: <20221230095853.1323616-1-nipun.gupta@amd.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_64e4cbe8-b4f6-45dc-bcba-6123dfd2d8bf_ActionId=7c300112-447d-4c26-b53d-4560e3a5705b; MSIP_Label_64e4cbe8-b4f6-45dc-bcba-6123dfd2d8bf_ContentBits=0; MSIP_Label_64e4cbe8-b4f6-45dc-bcba-6123dfd2d8bf_Enabled=true; MSIP_Label_64e4cbe8-b4f6-45dc-bcba-6123dfd2d8bf_Method=Privileged; MSIP_Label_64e4cbe8-b4f6-45dc-bcba-6123dfd2d8bf_Name=Non-Business-AIP 2.0; MSIP_Label_64e4cbe8-b4f6-45dc-bcba-6123dfd2d8bf_SetDate=2023-07-04T06:53:46Z; MSIP_Label_64e4cbe8-b4f6-45dc-bcba-6123dfd2d8bf_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR12MB8308:EE_|DM6PR12MB4941:EE_ x-ms-office365-filtering-correlation-id: c19eb425-2b39-4e2c-3fc0-08db7c5b6e3c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FW8MXky5ol5gpmIABVjmT0SmXhwDRdMEpIApzAgHMI4zcFWLcj6VVQkMZGnSy+iMN9am9N5QUq7CYPbSHHlAt155HrvAjLVwlCIH5NqJbxbTAMGEWrx9CvhT/3zftZSI/ojvDIcvQO2cbeqV3QZk22WzrVA802nVwh6G4QqLJGQ82+VKqWPI2gfh5iE18ucd74TPte9AVSgxrT0cxyCICT0tpEy28IJEucWzlR1nGqARbuvYBHLwc9EKchZguEYka3kUCE4uBzeswevqkGvmKtfJ1Fp/aZ9zJ0JC/F+33oYHvEhv72uz4B4kKwh69zK8msNP1W3opHoh/eSel5iLiLZ8IuiqF/aykip+j45/yd741wpIDzA2wRAKQql7Ea8YucnehtyWFA9uv4ymhxDcqLMj7AeHsSzjVKW87XVJzyq/PxBc6CSsXFQmjtZH/gE3dG3lg+BQhcvbp2aMbnSyhwSurRfAyA4U92R6xbsgzmeF2xpuvdfjPNlDR308HCxTXTy+M857pDM/k6D5l4VRk/iHLs2PR6nhNd7IyPWjUhBjEFjK9vnOfRpm9ZCj8dC/h4OEFERVX5ja9AsNPuYNWnUbnzLRgZ3kTX09yNrbFs8= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR12MB8308.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(396003)(346002)(366004)(136003)(39860400002)(451199021)(71200400001)(316002)(2906002)(966005)(86362001)(7696005)(55016003)(4326008)(64756008)(66446008)(76116006)(66476007)(66556008)(66946007)(478600001)(33656002)(110136005)(54906003)(5660300002)(122000001)(52536014)(83380400001)(38100700002)(8676002)(8936002)(186003)(38070700005)(6506007)(9686003)(41300700001)(53546011); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?T3VjMGt1V0dEUlh0c3o2dVRxSlFnMjZpT3ZxMldLNDh6RTVUbzNLWkFWekxi?= =?utf-8?B?VEVHekkrT2dIdFJ0Q3BOYlBWRUl0b2lzbHFsZ2tzaGFEOU1nUFNiMDVaNGxY?= =?utf-8?B?VFFIdWlVT3JNdUdqUVYzTmVIVC9uZEtaS1BTem5RNk5kaUlERnNwNDFSbDJZ?= =?utf-8?B?UkhmZ1NvbnhDSEpSVDhoc3VidkZFUzh3cDgvUE1PN005QzVSV0hiTmtkZm1S?= =?utf-8?B?bkl3SUs4VWFvZzlhUW40OU50bFFsVDZqMGxXN09Hbmc5SDVXU0pZM1RGWjFa?= =?utf-8?B?bVdFNmhacXpra1F6ak1GL0Yvb0Fpb0JpTlVpZDBIQTJYVHIwdWRuT1dQM1NK?= =?utf-8?B?TzlYcGkvajlOSjJJQUlrTm9SZ1J6UFhtS3VrMG1vU1dacVY4R1JCOVFQZlZP?= =?utf-8?B?VkxiQzVjemFkZTFGNjZPUEtSRDJPVlRDZ2ZpWXd3Z1V4R2kvblo5b1BXakw0?= =?utf-8?B?SXN0cDM5SU5nbTltSWFkSmNiWE9DUnRMYmEzZjY3OWRSdVZ5WWV6MG5wZ2Zq?= =?utf-8?B?TVUxQ1ZBbk1LWUdZY1BtRjYyS2x3anVIU2hhendPeGJiVVYxZ0VHemFnWWdC?= =?utf-8?B?Z2VrZlhpT0M0UjN4RUg0S2xUNW5aSWJsdmNmNm5ETEIwZEZPM1Z2VTJIY1Qr?= =?utf-8?B?UW9mRDhGanY5RXcvRjR1alQveVVqWmJTbktBbklqVE51b2pyeGM1L1VVNVdi?= =?utf-8?B?ZDJ0WFBFdFhyMjVqdlhwek80bVpaTnBNNjA1N0tUQ2plQU9RNFVBaVptQUl4?= =?utf-8?B?bHlDYmcvZFloazc0c2Vzd2NKMjhrNmt3YmhmckhLejZiTzRyZzdyc21mUlpw?= =?utf-8?B?MnJlalVjb2FnMDBiUVE2dzdJWTlLRG05cE5xOFhPWEtISDBBQ3lLRGM5QmJp?= =?utf-8?B?VFBXTU9QOGNsSDZ1TWF6NzdKc1Q1SjdFUXVQT0Y4Y25yd29XczI1Skthc0hv?= =?utf-8?B?cERqckczeTN4QzdlVUdWakxnbzcrOG5kTVRsMG82Mi8reTdSVWJ6aWNMUFJN?= =?utf-8?B?SjZ0cmplcmdjeGRnK3VTK21JMG5rZlVjaDFncWxobGpzUjNBZTI4WUZ3NTVn?= =?utf-8?B?UkdQRVp4dnhnV0RLeDJvdjg3dDR5bXVEZTJERUdHNkw0VSt2d2tVY25uMERV?= =?utf-8?B?MjN4WEhJQmFGZTlFQUErQmdObmlObm1EMkQ3dHhNY0VnSjRaaUZ1N0pIR0hr?= =?utf-8?B?K0lRUnBMYTcrVzJsN3I2ZEtRQ1NKZEdpY3NQTHVMSEVXQzZyenNMaUpuWFlP?= =?utf-8?B?MUNNZEpmZEI1d01qdUdQRVk1MllObjJyNlN1MWVnRWQ5QnhXL21iSmR5Uzdj?= =?utf-8?B?emg5S3prcTFYTm9RZitQUmVkTGQrR3pLNHZRcWVZNWtPbml3SmJxN2ZKMDYy?= =?utf-8?B?R3BkNWI4K29QRENFNU9ZV3pTRjJSQzJnanJtWFFuekE2ZmVFWm9Pd3hpYnhP?= =?utf-8?B?ckZnZEJYVUV4bDRMS05pSG1xYlVuY0todERqMmFZN1ViQnFqQ0FIeDVSWmcv?= =?utf-8?B?U0tvQVNUb0o1RVA5MG1aRzhNQjdQS2NiL3hybTlybnh5UVplVzFnaVMrTUE0?= =?utf-8?B?czRYKzNjUzVzNE1weVFRWVZtTFJoYVNYVHRUTml3K3NQZENRMld3UzY5bWh1?= =?utf-8?B?REt2ZnVLbEVROW5NbWlXVnRsQkRiZU5mdXJnakorb3dzR3AvZk5YRE9TSEVP?= =?utf-8?B?QlVuVTl0UjdLZlRkT3pGZExiN2JJK1I0V3p3WFVTOVZrL3BlbmlNakJzRGYy?= =?utf-8?B?M1phc2pRbDJqSW5qQ1lIckJCOEhaMjhPNG1QRldXUTM0RnU2LytJRlFoall4?= =?utf-8?B?ZGV3RmJmSy94TnlhL01INzN0VWNOQ3I1Njl0U1o3eTM5N1JYTFRYT0Z4c0pw?= =?utf-8?B?RGlva01vQlk1M0dOaTFRNnkxQWJ6S3o3S1p6Y3U1YWZOVW4vR3FhdlZuYnc1?= =?utf-8?B?UXp2WWxwb0loV3hnNDd4eC9UWkVGZFlXeVI4WHBKbnkzZ2czUDBsd2tndnVI?= =?utf-8?B?WGVlREl2dDhYRmcvbk9acDVBSHcwUDRGTExVcXBwSElzTDlWV0l4RHVEVUpr?= =?utf-8?B?ZFR3Zmw2MW1XWkdKQXEzMHZyK0xzdUdOMXpURDllODdhUWl4OGdQamZxKzdW?= =?utf-8?B?N29Qb3BabEFzemFZQ0Izam1tckhWQThWcXNlVkFidmFCRlBOM2RqUzd2ZXVL?= =?utf-8?Q?/HEVCNqaOjw3Px86Fjvig9U=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8308.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c19eb425-2b39-4e2c-3fc0-08db7c5b6e3c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jul 2023 06:53:53.6098 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CzYsmHAAAic04IMxkv4E00NPwOaVnvyS1OQi+CefqWsuP7VlOkBTWnD+XASeVT5w X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4941 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 SGkgWHVhbiwNCg0KUGxlYXNlIHNlZSBpbmxpbmUuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gRnJvbTogRGluZywgWHVhbiA8eHVhbi5kaW5nQGludGVsLmNvbT4NCj4gU2VudDog VHVlc2RheSwgSnVseSA0LCAyMDIzIDEwOjQzIEFNDQo+IFRvOiBHdXB0YSwgTmlwdW4gPE5pcHVu Lkd1cHRhQGFtZC5jb20+OyBkZXZAZHBkay5vcmc7DQo+IHRob21hc0Btb25qYWxvbi5uZXQ7IEJ1 cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+OyBZaWdpdCwNCj4gRmVy cnVoIDxGZXJydWguWWlnaXRAYW1kLmNvbT4NCj4gQ2M6IEFnYXJ3YWwsIE5pa2hpbCA8bmlraGls LmFnYXJ3YWxAYW1kLmNvbT47IEhlLCBYaW5nZ3VhbmcNCj4gPHhpbmdndWFuZy5oZUBpbnRlbC5j b20+OyBMaW5nLCBXZWlYIDx3ZWl4LmxpbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW1BB VENIXSB2ZmlvOiBkbyBub3QgY29hbGVzY2UgRE1BIG1hcHBpbmdzDQo+IA0KPiBIaSBOaXB1biwN Cj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBEaW5nLCBYdWFu DQo+ID4gU2VudDogRnJpZGF5LCBKdW5lIDMwLCAyMDIzIDE6NTggUE0NCj4gPiBUbzogTmlwdW4g R3VwdGEgPG5pcHVuLmd1cHRhQGFtZC5jb20+OyBkZXZAZHBkay5vcmc7DQo+ID4gdGhvbWFzQG1v bmphbG9uLm5ldDsgQnVyYWtvdiwgQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT47 DQo+ID4gZmVycnVoLnlpZ2l0QGFtZC5jb20NCj4gPiBDYzogbmlraGlsLmFnYXJ3YWxAYW1kLmNv bTsgSGUsIFhpbmdndWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT47IExpbmcsDQo+ID4gV2Vp WCA8d2VpeC5saW5nQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW1BBVENIXSB2ZmlvOiBk byBub3QgY29hbGVzY2UgRE1BIG1hcHBpbmdzDQo+ID4NCj4gPiBIaSBOaXB1biwNCj4gPg0KPiA+ IFJlcGxpZXMgYXJlIGlubGluZS4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+IEZyb206IE5pcHVuIEd1cHRhIDxuaXB1bi5ndXB0YUBhbWQuY29tPg0KPiA+ID4g U2VudDogRnJpZGF5LCBKdW5lIDMwLCAyMDIzIDk6NDYgQU0NCj4gPiA+IFRvOiBEaW5nLCBYdWFu IDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOw0KPiA+ID4gdGhvbWFzQG1vbmph bG9uLm5ldDsgQnVyYWtvdiwgQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT47DQo+ ID4gPiBmZXJydWgueWlnaXRAYW1kLmNvbQ0KPiA+ID4gQ2M6IG5pa2hpbC5hZ2Fyd2FsQGFtZC5j b207IEhlLCBYaW5nZ3VhbmcgPHhpbmdndWFuZy5oZUBpbnRlbC5jb20+Ow0KPiA+ID4gTGluZywg V2VpWCA8d2VpeC5saW5nQGludGVsLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHZm aW86IGRvIG5vdCBjb2FsZXNjZSBETUEgbWFwcGluZ3MNCj4gPiA+DQo+ID4gPiBIaSBYdWFuLA0K PiA+ID4NCj4gPiA+IFRoYW5rcyBmb3IgcG9pbnRpbmcgb3V0IHRoZSBpc3N1ZSBhbmQgZmlndXJp bmcgb3V0IHRoZSBwYXRjaCB3aGljaA0KPiA+ID4gaW50cm9kdWNlZCB0aGlzLiBJZiB5b3UgaGF2 ZSBhbnN3ZXJzIHRvIGJlbG93IHF1ZXJpZXMsIHBsZWFzZSBsZXQgbWUga25vdzoNCj4gPiA+DQo+ ID4gPiBJcyB0aGVyZSBhbnkgb3RoZXIgdGVzdCBjYXNlcyB3aGljaCB0ZXN0cyAiLS1uby1odWdl IiB3aGljaCBwYXNzPw0KPiA+DQo+ID4gWWVzLCB0aGVyZSBhcmUgdGVzdCBjYXNlcyBhZGRpbmcg Ii0tbm8taHVnZSIgb3B0aW9uIHRvIHZhbGlkYXRlIDRrIHBhZ2Ugc2l6ZSBpbg0KPiA+IGFzeW5j IHZob3N0Lg0KPiA+IEFjdHVhbGx5LCB0aGUgcGFnZSBzaXplIGlzIGRlY2lkZWQgYnkgZnJvbnQt ZW5kLCBzbyBJIHRoaW5rIHRoaXMgY2FzZSBjYW4gYmUNCj4gPiByZW1vdmVkLg0KPiA+DQo+ID4g UHJldmlvdXNseSwgdGVzdHBtZCBjYW4gc3RhcnQgd2l0aCAiLS1uby1odWdlIiBvcHRpb25zIChu b3Qgc3VyZSBpZiB0aGVyZSBhcmUNCj4gPiB0ZXN0IGNhc2VzKS4NCj4gPiBDbWQ6IC4vYnVpbGQv YXBwL2RwZGstdGVzdHBtZCAtbCA1LTYgLW4gNCAtLW5vLWh1Z2UgLW0gMTAyNCAtLSAtaQ0KPiA+ DQo+ID4gPg0KPiA+ID4gQWxzbywgaWYgd2UgY2hhbmdlIHRoZSAiLW0iIG9wdGlvbiB0byBwcm92 aWRlIGxvd2VyIG1lbW9yeSwgZG9lcyB0aGUNCj4gPiA+IHRlc3QgcGFzcz8NCj4gPg0KPiA+ICIt bSIgb3B0aW9uIGlzIGFsc28gYWRkZWQgYW5kIGRvZXMgbm90IHdvcmsuDQo+ID4NCj4gPiA+DQo+ ID4gPiBXaGVuIHlvdSBtZW50aW9uIHRvbyBtYW55IHBhZ2VzIGV4Y2VlZCB0aGUgY2FwYWJpbGl0 eSBvZiBJT01NVSwgeW91DQo+ID4gPiBhcmUgcmVmZXJyaW5nIHRvIEhXIGNhcGFiaWxpdHkgdG8g Y3JlYXRlIG11bHRpcGxlIHBhZ2VzPyBIZXJlIGl0IHNlZW1zDQo+ID4gPiBpbiBjYXNlIG9mIDRL IHBhZ2Ugc2l6ZSB3ZSBuZWVkIDI1NksgcGFnZXMgd2hpY2ggaXMgbGltaXRpbmcgdGhlIGNhcGFj aXR5Pw0KPiA+DQo+ID4gWWVzLCB0aGlzIGlzIHRoZSByZXN1bHQgb2YgbXkgaW5pdGlhbCBkZWJ1 Z2dpbmcuDQo+ID4gVGhlIGRpcmVjdCBpbXBhY3QgaXMgdGhhdCB0aGlzIGtpbmQgb2YgdGVzdHBt ZCBjYXNlcyBjYW5ub3Qgc3RhcnQgbm93Lg0KPiA+IElmIHRoaXMgaXMgZXhwZWN0ZWQsIEkgdGhp bmsgd2UgY2FuIGNsb3NlIHRoaXMgZGVmZWN0IGFuZCBpZ25vcmUgdGhlICItLW5vLWh1Z2UiDQo+ ID4gb3B0aW9uIHdoZW4gc3RhcnQuDQo+IA0KPiBBbnkgaW5zaWdodHM/IFNob3VsZCB3ZSBqdXN0 IGlnbm9yZSB0aGUgIi0tbm8taHVnZSIgb3B0aW9uIGFuZCBjbG9zZSB0aGlzIGRlZmVjdD8NCj4g Tm93IHdlIGRpZCB0aGlzIGFzIGEgd29ya2Fyb3VuZC4gU2VlbXMgbm8gb25lIHVzZXMgdGhlICIt LW5vLWh1Z2UiIG9wdGlvbiBpbg0KPiB0ZXN0cG1kIG5vdy4NCg0KVkZJTyBzdXBwb3J0cyBkbWFf ZW50cnlfbGltaXQgYXMgYSBtb2R1bGUgcGFyYW1ldGVyLCB3aGljaCBoYXMgYSBkZWZhdWx0IHZh bHVlIG9mDQpVMTZfTUFYIGkuZS4gNjRLLCBtb3N0IGxpa2VseSB3aGljaCBpcyBsaW1pdGluZyBj cmVhdGlvbiBvZiAyNTZLIGVudHJpZXMgZm9yIDRLIHBhZ2VzDQpoZXJlLiBUaGlzIGNhbiBiZSBt b2RpZmllZCB3aGlsZSBpbnNlcnRpbmcgdmZpbyBtb2R1bGU6DQogICAgICAgIG1vZHByb2JlIHZm aW9faW9tbXVfdHlwZTEgZG1hX2VudHJ5X2xpbWl0PTEwMDAwMDANCg0KWW91IGNhbiB1cGRhdGUg dGhlIHRlc3QgY2FzZSB3aXRoIHVwZGF0aW5nIHRoaXMgbGltaXQsIGFuZCB0ZXN0IGNhc2Ugc2hh bGwgcGFzcy4NCg0KVGhhbmtzLA0KTmlwdW4NCg0KPiANCj4gVGhhbmtzLA0KPiBYdWFuDQo+IA0K PiA+DQo+ID4gUmVnYXJkcywNCj4gPiBYdWFuDQo+ID4NCj4gPiA+DQo+ID4gPiBSZWdhcmRzLA0K PiA+ID4gTmlwdW4NCj4gPiA+DQo+ID4gPiBPbiA2LzI5LzIwMjMgMTo1MSBQTSwgRGluZywgWHVh biB3cm90ZToNCj4gPiA+ID4gSGkgTmlwdW4sDQo+ID4gPiA+DQo+ID4gPiA+IEknZCBsaWtlIHRv IGFwcHJlY2lhdGUgeW91ciB0aW1lIHJlYWRpbmcgdGhpcyBlbWFpbC4NCj4gPiA+ID4NCj4gPiA+ ID4gT3VyIFFBIHRlYW0gZm91bmQgdGhhdCBzaW5jZSB0aGlzIGNvbW1pdCAiYTM5OWQ3YjVhOTk0 OiBkbyBub3QNCj4gPiA+ID4gY29hbGVzY2UgRE1BIG1hcHBpbmdzIiBpcyBpbnRyb2R1Y2VkLCB0 aGUgZHBkayB0ZXN0cG1kIHN0YXJ0IHdpdGgNCj4gPiA+ID4gIi0tbm8tDQo+ID4gPiBodWdlIiBw YXJhbWV0ZXJzIHdpbGwgZmFpbGVkLCBhbmQgc2hvd3MgIkVBTDogQ2Fubm90IHNldCB1cCBETUEN Cj4gPiA+IHJlbWFwcGluZywgZXJyb3IgMjggKE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlKSIuDQo+ ID4gPiA+IFNvIHRoZXkgcmVwb3J0ZWQgaXQgb24gZHBkayBCdWd6aWxsYToNCj4gPiA+IGh0dHBz Oi8vYnVncy5kcGRrLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNS4NCj4gPiA+ID4NCj4gPiA+ID4g SSB1bmRlcnN0YW5kIHRoaXMgZmVhdHVyZSBpcyB0byBrZWVwIGNvbnNpc3RlbnQgd2l0aCB0aGUg a2VybmVsIGFuZA0KPiA+ID4gPiBub3QgYWxsb3cNCj4gPiA+IG1lbW9yeSBzZWdtZW50cyBiZSBt ZXJnZWQuDQo+ID4gPiA+IFRoZSBzaWRlIGVmZmVjdCBpcyB0aGUgdGVzdHBtZCB3aXRoICItLW5v LWh1Z2UiIHBhcmFtZXRlcnMgd2lsbCBub3QNCj4gPiA+ID4gYmUgYWJsZQ0KPiA+ID4gdG8gc3Rh cnQgYmVjYXVzZSB0aGUgdG9vIG1hbnkgcGFnZXMgd2lsbCBleGNlZWQgdGhlIGNhcGFiaWxpdHkg b2YgSU9NTVUuDQo+ID4gPiA+IElzIGl0IGV4cGVjdGVkPyBTaG91bGQgd2UgcmVtb3ZlIHRoZSAt LW5vLWh1Z2UiIGluIG91ciB0ZXN0Y2FzZT8NCj4gPiA+ID4NCj4gPiA+ID4gUmVnYXJkcywNCj4g PiA+ID4gWHVhbg0KPiA+ID4gPg0KPiA+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+ID4+IEZyb206IE5pcHVuIEd1cHRhIDxuaXB1bi5ndXB0YUBhbWQuY29tPg0KPiA+ID4g Pj4gU2VudDogRnJpZGF5LCBEZWNlbWJlciAzMCwgMjAyMiA1OjU5IFBNDQo+ID4gPiA+PiBUbzog ZGV2QGRwZGsub3JnOyB0aG9tYXNAbW9uamFsb24ubmV0OyBCdXJha292LCBBbmF0b2x5DQo+ID4g PiA+PiA8YW5hdG9seS5idXJha292QGludGVsLmNvbT47IGZlcnJ1aC55aWdpdEBhbWQuY29tDQo+ ID4gPiA+PiBDYzogbmlraGlsLmFnYXJ3YWxAYW1kLmNvbTsgTmlwdW4gR3VwdGEgPG5pcHVuLmd1 cHRhQGFtZC5jb20+DQo+ID4gPiA+PiBTdWJqZWN0OiBbUEFUQ0hdIHZmaW86IGRvIG5vdCBjb2Fs ZXNjZSBETUEgbWFwcGluZ3MNCj4gPiA+ID4+DQo+ID4gPiA+PiBBdCB0aGUgY2xlYW51cCB0aW1l IHdoZW4gZG1hIHVubWFwIGlzIGRvbmUsIGxpbnV4IGtlcm5lbCBkb2VzIG5vdA0KPiA+ID4gPj4g YWxsb3cgdW5tYXAgb2YgaW5kaXZpZHVhbCBzZWdtZW50cyB3aGljaCB3ZXJlIGNvYWxlc2NlZCB0 b2dldGhlcg0KPiA+ID4gPj4gd2hpbGUgY3JlYXRpbmcgdGhlIERNQSBtYXAgZm9yIHR5cGUxIElP TU1VIG1hcHBpbmdzLiBTbywgdGhpcw0KPiA+ID4gPj4gY2hhbmdlIHVwZGF0ZXMgdGhlIG1hcHBp bmcgb2YgdGhlIG1lbW9yeQ0KPiA+ID4gPj4gc2VnbWVudHMoaHVnZXBhZ2VzKSBvbiBhIHBlci1w YWdlIGJhc2lzLg0KPiA+ID4gPj4NCj4gPiA+ID4+IFNpZ25lZC1vZmYtYnk6IE5pcHVuIEd1cHRh IDxuaXB1bi5ndXB0YUBhbWQuY29tPg0KPiA+ID4gPj4gLS0tDQo+ID4gPiA+Pg0KPiA+ID4gPj4g V2hlbiBob3RwbHVnIG9mIGRldmljZXMgaXMgdXNlZCwgbXVsdGlwbGUgcGFnZXMgZ2V0cyBjb2xh ZWNlZCBhbmQgYQ0KPiA+ID4gPj4gc2luZ2xlIG1hcHBpbmcgZ2V0cyBjcmVhdGVkIGZvciB0aGVz ZSBwYWdlcyAodXNpbmcgQVBJcw0KPiA+ID4gPj4gcnRlX21lbXNlZ19jb250aWdfd2FsaygpIGFu ZCB0eXBlMV9tYXBfY29udGlnKCkuIE9uIHRoZSBjbGVhbnVwDQo+ID4gPiA+PiB0aW1lIHdoZW4g dGhlIG1lbW9yeSBpcyByZWxlYXNlZCwgdGhlIFZGSU8gZG9lcyBub3QgY2xlYW5zIHVwIHRoYXQN Cj4gPiA+ID4+IG1lbW9yeSBhbmQgZm9sbG93aW5nIGVycm9yIGlzIG9ic2VydmVkIGluIHRoZSBl YWwgZm9yIDJNQg0KPiA+ID4gPj4gaHVnZXBhZ2VzOg0KPiA+ID4gPj4gRUFMOiBVbmV4cGVjdGVk IHNpemUgMCBvZiBETUEgcmVtYXBwaW5nIGNsZWFyZWQgaW5zdGVhZCBvZiAyMDk3MTUyDQo+ID4g PiA+Pg0KPiA+ID4gPj4gVGhpcyBpcyBiZWNhdXNlIFZGSU8gZG9lcyBub3QgY2xlYXIgdGhlIERN QSAocmVmZXIgQVBJDQo+ID4gPiA+PiB2ZmlvX2RtYV9kb191bm1hcCgpIC0NCj4gPiA+ID4+DQo+ ID4gPiBodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC9sYXRlc3Qvc291cmNlL2RyaXZl cnMvdmZpby92ZmlvX2lvbW11DQo+ID4gPiBfdHlwZQ0KPiA+ID4gMS4NCj4gPiA+ID4+IGMjTDEz MzApLA0KPiA+ID4gPj4gd2hlcmUgaXQgY2hlY2tzIHRoZSBkbWEgbWFwcGluZyB3aGVyZSBpdCBj aGVja3MgZm9yIElPVkEgdG8gZnJlZToNCj4gPiA+ID4+DQo+ID4gPiBodHRwczovL2VsaXhpci5i b290bGluLmNvbS9saW51eC9sYXRlc3Qvc291cmNlL2RyaXZlcnMvdmZpby92ZmlvX2lvbW11DQo+ ID4gPiBfdHlwZQ0KPiA+ID4gMS4NCj4gPiA+ID4+IGMjTDE0MTguDQo+ID4gPiA+Pg0KPiA+ID4g Pj4gVGh1cyB0aGlzIGNoYW5nZSB1cGRhdGVzIHRoZSBtYXBwaW5nIHRvIGJlIGNyZWF0ZWQgaW5k aXZpZHVhbGx5DQo+ID4gPiA+PiBpbnN0ZWFkIG9mIGNvbGFlY2luZyB0aGVtLg0KPiA+ID4gPj4N Cj4gPiA+ID4+ICAgbGliL2VhbC9saW51eC9lYWxfdmZpby5jIHwgMjkgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4+ICAgMSBmaWxlIGNoYW5nZWQsIDI5IGRlbGV0aW9ucygt KQ0KPiA+ID4gPj4NCj4gPiA+ID4+IGRpZmYgLS1naXQgYS9saWIvZWFsL2xpbnV4L2VhbF92Zmlv LmMgYi9saWIvZWFsL2xpbnV4L2VhbF92ZmlvLmMNCj4gPiA+ID4+IGluZGV4IDU0OWI4NmFlMWQu LjU2ZWRjY2IwZGIgMTAwNjQ0DQo+ID4gPiA+PiAtLS0gYS9saWIvZWFsL2xpbnV4L2VhbF92Zmlv LmMNCj4gPiA+ID4+ICsrKyBiL2xpYi9lYWwvbGludXgvZWFsX3ZmaW8uYw0KPiA+ID4gPj4gQEAg LTEzNjksMTkgKzEzNjksNiBAQCBydGVfdmZpb19nZXRfZ3JvdXBfbnVtKGNvbnN0IGNoYXINCj4g PiA+ICpzeXNmc19iYXNlLA0KPiA+ID4gPj4gICAJcmV0dXJuIDE7DQo+ID4gPiA+PiAgIH0NCj4g PiA+ID4+DQo+ID4gPiA+PiAtc3RhdGljIGludA0KPiA+ID4gPj4gLXR5cGUxX21hcF9jb250aWco Y29uc3Qgc3RydWN0IHJ0ZV9tZW1zZWdfbGlzdCAqbXNsLCBjb25zdCBzdHJ1Y3QNCj4gPiA+ID4+ IHJ0ZV9tZW1zZWcgKm1zLA0KPiA+ID4gPj4gLQkJc2l6ZV90IGxlbiwgdm9pZCAqYXJnKQ0KPiA+ ID4gPj4gLXsNCj4gPiA+ID4+IC0JaW50ICp2ZmlvX2NvbnRhaW5lcl9mZCA9IGFyZzsNCj4gPiA+ ID4+IC0NCj4gPiA+ID4+IC0JaWYgKG1zbC0+ZXh0ZXJuYWwpDQo+ID4gPiA+PiAtCQlyZXR1cm4g MDsNCj4gPiA+ID4+IC0NCj4gPiA+ID4+IC0JcmV0dXJuIHZmaW9fdHlwZTFfZG1hX21lbV9tYXAo KnZmaW9fY29udGFpbmVyX2ZkLCBtcy0+YWRkcl82NCwNCj4gPiA+ID4+IG1zLT5pb3ZhLA0KPiA+ ID4gPj4gLQkJCWxlbiwgMSk7DQo+ID4gPiA+PiAtfQ0KPiA+ID4gPj4gLQ0KPiA+ID4gPj4gICBz dGF0aWMgaW50DQo+ID4gPiA+PiAgIHR5cGUxX21hcChjb25zdCBzdHJ1Y3QgcnRlX21lbXNlZ19s aXN0ICptc2wsIGNvbnN0IHN0cnVjdA0KPiA+ID4gPj4gcnRlX21lbXNlZw0KPiA+ID4gKm1zLA0K PiA+ID4gPj4gICAJCXZvaWQgKmFyZykNCj4gPiA+ID4+IEBAIC0xMzk2LDEwICsxMzgzLDYgQEAg dHlwZTFfbWFwKGNvbnN0IHN0cnVjdCBydGVfbWVtc2VnX2xpc3QgKm1zbCwNCj4gPiA+ID4+IGNv bnN0IHN0cnVjdCBydGVfbWVtc2VnICptcywNCj4gPiA+ID4+ICAgCWlmIChtcy0+aW92YSA9PSBS VEVfQkFEX0lPVkEpDQo+ID4gPiA+PiAgIAkJcmV0dXJuIDA7DQo+ID4gPiA+Pg0KPiA+ID4gPj4g LQkvKiBpZiBJT1ZBIG1vZGUgaXMgVkEsIHdlJ3ZlIGFscmVhZHkgbWFwcGVkIHRoZSBpbnRlcm5h bCBzZWdtZW50cw0KPiA+ID4gKi8NCj4gPiA+ID4+IC0JaWYgKCFtc2wtPmV4dGVybmFsICYmIHJ0 ZV9lYWxfaW92YV9tb2RlKCkgPT0gUlRFX0lPVkFfVkEpDQo+ID4gPiA+PiAtCQlyZXR1cm4gMDsN Cj4gPiA+ID4+IC0NCj4gPiA+ID4+ICAgCXJldHVybiB2ZmlvX3R5cGUxX2RtYV9tZW1fbWFwKCp2 ZmlvX2NvbnRhaW5lcl9mZCwgbXMtPmFkZHJfNjQsDQo+ID4gPiA+PiBtcy0+aW92YSwNCj4gPiA+ ID4+ICAgCQkJbXMtPmxlbiwgMSk7DQo+ID4gPiA+PiAgIH0NCj4gPiA+ID4+IEBAIC0xNDY0LDE4 ICsxNDQ3LDYgQEAgdmZpb190eXBlMV9kbWFfbWVtX21hcChpbnQNCj4gPiA+IHZmaW9fY29udGFp bmVyX2ZkLA0KPiA+ID4gPj4gdWludDY0X3QgdmFkZHIsIHVpbnQ2NF90IGlvdmEsICBzdGF0aWMg aW50ICB2ZmlvX3R5cGUxX2RtYV9tYXAoaW50DQo+ID4gPiA+PiB2ZmlvX2NvbnRhaW5lcl9mZCkg IHsNCj4gPiA+ID4+IC0JaWYgKHJ0ZV9lYWxfaW92YV9tb2RlKCkgPT0gUlRFX0lPVkFfVkEpIHsN Cj4gPiA+ID4+IC0JCS8qIHdpdGggSU9WQSBhcyBWQSBtb2RlLCB3ZSBjYW4gZ2V0IGF3YXkgd2l0 aCBtYXBwaW5nDQo+ID4gPiA+PiBjb250aWd1b3VzDQo+ID4gPiA+PiAtCQkgKiBjaHVua3MgcmF0 aGVyIHRoYW4gZ29pbmcgcGFnZS1ieS1wYWdlLg0KPiA+ID4gPj4gLQkJICovDQo+ID4gPiA+PiAt CQlpbnQgcmV0ID0gcnRlX21lbXNlZ19jb250aWdfd2Fsayh0eXBlMV9tYXBfY29udGlnLA0KPiA+ ID4gPj4gLQkJCQkmdmZpb19jb250YWluZXJfZmQpOw0KPiA+ID4gPj4gLQkJaWYgKHJldCkNCj4g PiA+ID4+IC0JCQlyZXR1cm4gcmV0Ow0KPiA+ID4gPj4gLQkJLyogd2UgaGF2ZSB0byBjb250aW51 ZSB0aGUgd2FsayBiZWNhdXNlIHdlJ3ZlIHNraXBwZWQgdGhlDQo+ID4gPiA+PiAtCQkgKiBleHRl cm5hbCBzZWdtZW50cyBkdXJpbmcgdGhlIGNvbmZpZyB3YWxrLg0KPiA+ID4gPj4gLQkJICovDQo+ ID4gPiA+PiAtCX0NCj4gPiA+ID4+ICAgCXJldHVybiBydGVfbWVtc2VnX3dhbGsodHlwZTFfbWFw LCAmdmZpb19jb250YWluZXJfZmQpOyAgfQ0KPiA+ID4gPj4NCj4gPiA+ID4+IC0tDQo+ID4gPiA+ PiAyLjI1LjENCj4gPiA+ID4NCg==