Received: by 2002:a89:413:0:b0:1fd:dba5:e537 with SMTP id m19csp48671lqs; Thu, 13 Jun 2024 03:33:07 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXjE4nqzDZGlB4lZA4RrExyXk4M5YWDgOOEOrXu+f5wApOLDsvwZ9/q6fPFozYJdK2LdUhQqGopj/lCPB1Lu2oskEAOSZYY3gWSgIuBcw== X-Google-Smtp-Source: AGHT+IFSC2oxnCtiCqa4SaTxDk1b5Zy8uEKgJNu24xGkKh+sLxQb6yGrV7aCOHLyzC4lFrjwp/bZ X-Received: by 2002:a05:6214:3a89:b0:6b0:8fab:d8db with SMTP id 6a1803df08f44-6b191c50147mr48499776d6.27.1718274786580; Thu, 13 Jun 2024 03:33:06 -0700 (PDT) Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id 6a1803df08f44-6b2a5b60fadsi11399766d6.460.2024.06.13.03.33.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 03:33:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-213030-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=VusTyUGY; arc=fail (signature failed); spf=pass (google.com: domain of linux-kernel+bounces-213030-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-213030-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 259051C22502 for ; Thu, 13 Jun 2024 10:33:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EFFE51411CF; Thu, 13 Jun 2024 10:32:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="VusTyUGY" Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2071.outbound.protection.outlook.com [40.107.103.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7EA4E1422D1 for ; Thu, 13 Jun 2024 10:32:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.103.71 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718274766; cv=fail; b=EdUUU8pswKSihxg8V0Ma6XZj4p3PcJjCJ7zuC1x/hZrU29FouGck1ayrDdpBhwRfonCxohOOGkWa7qJ5ozZ18VrapFNo/ojHSmWBCxBidmoiYBJuIsMrv7ex26lYOKn5/JG1Kyox9bab3hiTZC6JGsjiM+KsTxl/E21vysDrQgU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718274766; c=relaxed/simple; bh=jIrM1FStStyYVvSuaqoSjoWT/w2B/gOwFtydKEIBPR8=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=ljj2nB+frT9VVFq2V+TWVTLkKSDP6s2Rps4wLI0WEiD6Doz5lpD+dRUEGHccnKJTDFIVvMdPDr+1yQsHZ1Vq7EApzP4WBvOEbqws8S7yMfBbyUL68OHMImJWXUL3vpI1Te7G/C+by2C/jVpKgLsIddERGX7aX7XJTVL7Ksscx4Q= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=VusTyUGY; arc=fail smtp.client-ip=40.107.103.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mmuP8ZXpgSa09izGCb+u1jPQvBWW2RT0KcbsMH1austUAgWWKPrd3hR8zWfB3M/tf5TJhQlk52ZROcFs+wz8vY3xJroBXSAdUM5/IVwa+zygS8bhB6gvOhbo7pvBhi4nUZGnlM/zqpvZea7aPr9Y7LUI5Znem3rssDweGVZm8PZETd+ENmn144U3iHx6+jGAjmIJQ6Nfxjy6NIHzQUOl/JZPXrv42tEnPWXC6xXjQ5SDb5R5mefQUuJhw2ZyOjf5kUSdgHSlfxDoTiMbk6SSAtyW3sroqrg41siBalSRPaRd2BCJHsu2egq/XuuZQg5GHl8ueG5vkABNT2MSsBx64g== 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=qUuiCSVGGcdbmr/Hwl404RBEnKUpfu9J9HzmbKctP+0=; b=R6+SBSNDwbkFJkadVcNQbUCBmUeYwg0y1jcOQoYZ1XlRT6n4V/ETfQBGZYnqygcWQ8i76Su0lRLgjyEj6+MQz96mes0145cwANDC3sc4/zfVxXYme8U4FgP9PSK7y+/4KfI4wyqGZGjUrF57NXqDaTzeTeLkLwTwIiV3To4rzxYCQ3DCejbmLdMnTQRlOWWeab+MPDw2qT1LENOegILFmNbT/+zkRLBqmf2/wEuQSoq86KGLoOWqfkj4D9IcGkwf7sRb47pZPmHWxfCqkWZI0MwkVCwRx519Dm3RkEc5kF4k7gUlKybi6lTfY/TNImYWg4bKBkqF42tuooVFhbt2ZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qUuiCSVGGcdbmr/Hwl404RBEnKUpfu9J9HzmbKctP+0=; b=VusTyUGYdqDJ/pUmUAN/FkCwiDH2JxkBjK/9TUeWMAokHJOB1bO3Hj4QbJU36uqknSu17I6Gh02ZnLJj4N77c2VhcGBvxPwJ1BEhElSkxTn0BO8Tu/8ILqhRQgeAcOIdR+sU4sAoMnVAeA9RC1fIBbQaLXfymdn+MCVRgguw4hw= Received: from AS1PR04MB9559.eurprd04.prod.outlook.com (2603:10a6:20b:483::21) by DU0PR04MB9495.eurprd04.prod.outlook.com (2603:10a6:10:32f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.36; Thu, 13 Jun 2024 10:32:39 +0000 Received: from AS1PR04MB9559.eurprd04.prod.outlook.com ([fe80::4fdc:8a62:6d92:3123]) by AS1PR04MB9559.eurprd04.prod.outlook.com ([fe80::4fdc:8a62:6d92:3123%3]) with mapi id 15.20.7633.037; Thu, 13 Jun 2024 10:32:39 +0000 From: Zhai He To: Barry Song CC: Andrew Morton , "sboyd@kernel.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Zhipeng Wang , Jindong Yue , Christoph Hellwig Subject: RE: [EXT] Re: [PATCH v2] Supports to use the default CMA when the device-specified CMA memory is not enough. Thread-Topic: [EXT] Re: [PATCH v2] Supports to use the default CMA when the device-specified CMA memory is not enough. Thread-Index: AQHavKBGxUJQI1jHm0WeihrG1yRS87HEeMkAgAAvWICAAE1E8IAAFNsAgAAdaCCAABFDAIAAAPqggAAWC4CAAAmTEIAAGZ0AgAAM5vA= Date: Thu, 13 Jun 2024 10:32:39 +0000 Message-ID: References: <20240612081216.1319089-1-zhai.he@nxp.com> <20240612114748.bf5983b50634f23d674bc749@linux-foundation.org> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AS1PR04MB9559:EE_|DU0PR04MB9495:EE_ x-ms-office365-filtering-correlation-id: 1de7858b-2a18-452e-68f1-08dc8b942659 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230034|376008|1800799018|366010|38070700012; x-microsoft-antispam-message-info: =?utf-8?B?U3FrdElOWlo0czdxTG5kK3pWVXZxUVRnRHNVNWlUODNpZE5Md3NaSkJSTnR6?= =?utf-8?B?SVpPYzZOWVJVU1I5WFJzSVZRbUNubEcwTXRGbk5Xd2RmNFdrYkFBYXdicUVu?= =?utf-8?B?SkNtbUFFN3VSWlZJcE1vMEtPTHo1VmJNMWJ6eCt0bERiMUorcm5WVzE5MXhN?= =?utf-8?B?R2R0UFVEaTdEWUxEQVdHblcrNDUzQWI2YkpYdHRHL1hJN2tqQldHTHJZOWov?= =?utf-8?B?N3ZoTnhqd2NFNDRjUnFBNnFaejFnTG93ZkRFNHh3Z2p0ZkNGbDIyZ2NkWVlw?= =?utf-8?B?ZEFPb0w3clJnQzJwa0NWRDd1WnE3K081RXo3WGtjTGkxYmQzb3gxdnZPbmpO?= =?utf-8?B?MXB0Mk1XZlZaQ29STUVjWlFLQ3ZpMjVOS2VFN0MwbytnUmNqaGg4Snh6L3BG?= =?utf-8?B?S01aYmRLb2JYS3grZDdDS3BOVW41OWJiNytMc3lCa0R6K2p2OHBreDhuNHdB?= =?utf-8?B?V3dqYmg1UDhNaVRyLzVwallRTU9nL1BCMXVrVmZmWHVFUlpGT05DQVdqUUU0?= =?utf-8?B?OUFWNUIrTnZHYU5HeWJpaGZvamNNN1NISHdtWEtNTno4TmRWMFoyRTdVaDZi?= =?utf-8?B?QlBZM2JBcGVYYnYyUkRaQlF6TGNsRlhZVCtDNVRoajM3QVovTmZIKy84OXps?= =?utf-8?B?ZlVRejd4dldFaG1qSDdvSUsrUG1LcUtDZ1hWd0F0bnEvY2cwSVJaZkpBVWJW?= =?utf-8?B?Z0p5K2R3bFNjdDNuRFhpckdxTHBSVysvYy91TldsZWZkT1RWbGlBY2hhUGd6?= =?utf-8?B?T3RqTGlSenVFcWFsaHBBZUduRllwdnlFM0p6TDBkUWpYeUhMNEdjbG1MdnBs?= =?utf-8?B?WURobmJOWkFlYnVpeVF1cUhDSFBxY0lDTERUU3k0RjBRd2U2R2VMOVV3WThS?= =?utf-8?B?cUtqWnRsUERBb1l5VzFUM2Z5NmJQWEVUb0pFRjZLcVhjTWxTa0ZzTHVvWlE2?= =?utf-8?B?ajZKdVZQU3pkaUNEMUVxcVhYRDBQeWJYYlhPUDBjdTR1K1pwQWR5T2c5Mzh4?= =?utf-8?B?MWFtUzdETHE4ZFVtajRXV0NsWThTUk0wMzVEQldESkVaZnFWL3kwVy9mOWdl?= =?utf-8?B?ZS9mQTRPUytyK3BaRnNocDNBN0dKL2dqNjk3ZjB0R3BPT2RCaXpuV0s2NnBS?= =?utf-8?B?TUE4SmZiV2hFV1cvdmYzd2tOdDd4NkhWTGZDTXV2UkNvRkRHb3RjYUhEUnhS?= =?utf-8?B?cEltZ0lOVUJ4LytxSTFwRkxTV1RiWTNLaU1tRlh2VDlweWdOQ3V2YlBoREND?= =?utf-8?B?K1VNMHh6eFJnNkJDaGY1M0hxc0ZlSFlReGVrbVNCS0hjd1pwNW1TZ0Y3S2dL?= =?utf-8?B?ZDVsLzZMTHpDRXZ3VkF0YWs3emNsTDRIQjJtRWtsYkdjQjhxRWwxSkF5aHZ5?= =?utf-8?B?UFBySFYxRzFQRnpoaUhUS2lQdHpXYkE4TGNsbFR0UE9TYVo0L2hSOTcrYVBh?= =?utf-8?B?eG5TU3djN3pBTXpseDl4bS9JWWNlbCtCRDJReVY2SENpZWZORWFMZExzdEt4?= =?utf-8?B?ZEQ0cDFURXk4MldIOVZZb1F2TEJxV2M3WEZRK2IrQVA2TURqT3BDa3JEYUxu?= =?utf-8?B?R1h3WlR6U3ZoeDN6U2xMWWZxbnE2MUQ5ZUFtMnZCSzZZY2tUWFdIaFRwV250?= =?utf-8?B?K1JDZnAwd1JMdjNPMjI5QklUam44ZU1NenMzNU9KUFd6Z0FtRHloMFBiRWVZ?= =?utf-8?B?a3ZEdjJMRGZFMFhkcHo5VUpjM2pYbUhLT2VUNjN5ZWVoQXo2bkxrellRQm1K?= =?utf-8?B?T1JkK3dWaUF4RGF5c1VEVlp6OWZPWDMxTkpxZFNNQXZ3TDgxcDVvdmVBTzUz?= =?utf-8?B?M213NUg3SS9rdUsybG5sREdRWVg2aTRIK3AxbFpuYmt3TjNpUzFzc2NvNTFD?= =?utf-8?Q?VLMeLJLSUUJH/?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS1PR04MB9559.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230034)(376008)(1800799018)(366010)(38070700012);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZWZpdkVQdVJvSWl3a2x6NDNkUENLM3RickQ4SzlYak9Ycmd2clNGUWEyMDdX?= =?utf-8?B?WTNpVTJXZk4zeGRsNDZ0dWhGUW92cHdlZStWTm5xN0g2RjFLVTZlanlCcDlI?= =?utf-8?B?YlZpajJ0WTh5OWJwUUNOMFNheVA2ZytRUHVjdmFOQmw2RlZxblZGOHZWS0NZ?= =?utf-8?B?dlJMTXZLNlNjNzZCRzRQTkRkd0R5YzNqcTJsRysrdE1WZVpaMkpNYUxaWkcx?= =?utf-8?B?WnEvSlJFNnZQdHg1b01vSWIrQ2c2YzlvVWZaSENlSitJZjdaY1VaZEIrM3FT?= =?utf-8?B?K1FTMUxwN3ZCVTZhSGZiaG9lSjJoWUY2R1RIN0lUYnU2SzNmZGl0U0YwYkl3?= =?utf-8?B?elZMaXpWM1FvZFFyT25CMjV6REovRTBWcmVJY2IxT2xWMkxwaDBZYjNvN3cr?= =?utf-8?B?SG14RFJzMXFySGVkdkliSkZWVkpQN0FDaDNwMHc3U1RYODBKbGs4QzNIRWtC?= =?utf-8?B?Qi9XenFCQWNXTGpjY25KNGMvQkRQbkI2Q1VWekl6MlVDeXNIVnFJVERHWldR?= =?utf-8?B?aEwwcmxKdGREWGliMmFqZk9kT29lRXNKSEE1N3ZkRHpPc3ROT05hc0R0dW9s?= =?utf-8?B?VTZ5OGw1T2ZHSnRLd2MxYlRNSk9XVGtxM1FEdlJtTys5bmhIS0c4SElpVXhu?= =?utf-8?B?QjlYUzJnSVpEVmFtbnRyUHhiQ25aMlBjMEt5R0hXclRPNFJMeGVWK3h2RGJp?= =?utf-8?B?ZFVmSlorYnA4SnZ3OWxYbVVGU2NUTFVEeTJQN1cweSt3akNybnJLOWZ6TjJp?= =?utf-8?B?VFFVa0FGNFlPZEV5VHdPQldBcjZ1U3E0ZkVNM1A4MGdGcDI3VGFBYXNVb2dW?= =?utf-8?B?QW9iTzJGNUFzdk1ubGlpVm9wOHZRWUNoeGdzSzZJdG9DVDRaT1BNQWRvQnVE?= =?utf-8?B?Wk1mZE5SS1FzZkNpc1MyRG1YdjR2YWlBMXN0Z3czY3J1WDdSK1RKL3IyV1k2?= =?utf-8?B?ODNMUm9naGNheUxNRkprVTJRMW5MdmlOU1pJazVob1d3TUZZeHZoMmdkWHVX?= =?utf-8?B?dEZsZ3dicm4zOWluc3lFd2tRdmhVM0k3cHpZc04wbFd0dkxaTEhmMEV6UFJW?= =?utf-8?B?N21oeU5tL1V1YWFZamt4WlFpRzRKZVNHOENmL2Y2cmxhcU9yYi81cldJRVBH?= =?utf-8?B?VURnMUhDVjhUNnc5ZTFMdTFjSEZUTXJtMDZjU0tWdDdRVUh3Wi9WdUI0dG5L?= =?utf-8?B?R2RWbGpzdk1ZWjVJR21ubFFudHVCOTgrb1A2RlZCY0kvMVRzelpYc0Z3TFAx?= =?utf-8?B?cHZCeTNUN1Znb1FjTDErZkcxZkVOcVZGSTV6NUhpdUc3bkZBRkh6TWg5ZEt5?= =?utf-8?B?bEduZnhRV3dJWU5aM0JCYzhUVVRCbUFveCtVYVhPU3RzdmRGdDhUdTlGS0lh?= =?utf-8?B?SGUrU3NudCtrMXlPMnIzanJsMjg1T21BdDladXQ5UWk3a2Z3RjQxODhlS3pj?= =?utf-8?B?YWE2OTRaSGJUMXlSVHRieHRBWWQ3V2czbTNiTG5mU080dWlSd1A0YVBlWDZa?= =?utf-8?B?VStaSGhDa2dyZmJkaU0yeks3L1dqZEViMjhnbkZRaVU1NTJMa1hPWXZxRW5w?= =?utf-8?B?NDB4LzgrNEVQdnF6Qlc3NGsybXlTY21mb3BKQUUxNDc5b3Y1Q0NJTFJDY1Vl?= =?utf-8?B?aW9kMllRT01GQVBVRjVmRW1vMUdsdkV1cWlJSDhBY0dUOWJkT0h2MUtVajN3?= =?utf-8?B?eFA0VEtxYkpEMHJJR2dZYUdUTEVJY1lVMFU4M1h3QjZNRUM4U1JEendFVnhP?= =?utf-8?B?bDlQSjhuRmpOc0c5dk4yZy83SktxOEQ5Yy9RRmQrRW9zam9PMlV4MTlaTTRY?= =?utf-8?B?YkV3WHV5RlJpWENoUCtndllBWFE0WHBCNHc3R3VMSm5RdmtET1NXV1RPcnM0?= =?utf-8?B?S3dGNEhvNzl1bElQMmpMWGhhRVQ1WnFaNTFiOXZaV0hWNWhxMEVITFc2emV2?= =?utf-8?B?REtrR0JsVjZiaTNNM3JROWpFcXVMaGlTM3NSUEpIcGJGU0plVWxhUmZJREtx?= =?utf-8?B?Rmk1TEpTbkRMd04yMmMvcDZtMVJ0a1lGdXJRR2xzaHlNSFJJbTJhY1czTzQz?= =?utf-8?B?YXQyWVl1cXVtVGJUZ3VzWWV6UmRHaENYQVJ5V3MrTGdtTmFZWkMrMTk1TEIy?= =?utf-8?Q?cMzg=3D?= Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=SHA1; boundary="----=_NextPart_000_01D2_01DABDC0.103B1950" Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS1PR04MB9559.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1de7858b-2a18-452e-68f1-08dc8b942659 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2024 10:32:39.4087 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QHsz7nC+LboScvFsIPgMmUAN6tYGcGsM5rw/igiXKEf9wJkmPMwQaLPYMtR93efh X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9495 ------=_NextPart_000_01D2_01DABDC0.103B1950 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: Barry Song > Sent: Thursday, June 13, 2024 5:44 PM > To: Zhai He > Cc: Andrew Morton ; sboyd@kernel.org; > linux-mm@kvack.org; linux-kernel@vger.kernel.org; Zhipeng Wang > ; Jindong Yue ; Christoph > Hellwig > Subject: Re: [EXT] Re: [PATCH v2] Supports to use the default CMA when = the > device-specified CMA memory is not enough. >=20 > Caution: This is an external email. Please take care when clicking = links or > opening attachments. When in doubt, report the message using the = 'Report this > email' button >=20 >=20 > On Thu, Jun 13, 2024 at 8:49=E2=80=AFPM Zhai He = wrote: > > > > > -----Original Message----- > > > From: Barry Song > > > Sent: Thursday, June 13, 2024 3:38 PM > > > To: Zhai He > > > Cc: Andrew Morton ; sboyd@kernel.org; > > > linux-mm@kvack.org; linux-kernel@vger.kernel.org; Zhipeng Wang > > > ; Jindong Yue ; > > > Christoph Hellwig > > > Subject: Re: [EXT] Re: [PATCH v2] Supports to use the default CMA > > > when the device-specified CMA memory is not enough. > > > > > > Caution: This is an external email. Please take care when clicking > > > links or opening attachments. When in doubt, report the message > > > using the 'Report this email' button > > > > > > > > > On Thu, Jun 13, 2024 at 7:11=E2=80=AFPM Zhai He = wrote: > > > > > > > > > -----Original Message----- > > > > > From: Barry Song > > > > > Sent: Thursday, June 13, 2024 2:15 PM > > > > > To: Zhai He > > > > > Cc: Andrew Morton ; = sboyd@kernel.org; > > > > > linux-mm@kvack.org; linux-kernel@vger.kernel.org; Zhipeng Wang > > > > > ; Jindong Yue ; > > > > > Christoph Hellwig > > > > > Subject: Re: [EXT] Re: [PATCH v2] Supports to use the default > > > > > CMA when the device-specified CMA memory is not enough. > > > > > > > > > > Caution: This is an external email. Please take care when > > > > > clicking links or opening attachments. When in doubt, report = the > > > > > message using the 'Report this email' button > > > > > > > > > > > > > > > On Thu, Jun 13, 2024 at 5:32=E2=80=AFPM Zhai He = wrote: > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Barry Song > > > > > > > Sent: Thursday, June 13, 2024 11:28 AM > > > > > > > To: Zhai He > > > > > > > Cc: Andrew Morton ; > > > > > > > sboyd@kernel.org; linux-mm@kvack.org; > > > > > > > linux-kernel@vger.kernel.org; Zhipeng Wang > > > > > > > ; Jindong Yue = ; > > > > > > > Christoph Hellwig > > > > > > > Subject: Re: [EXT] Re: [PATCH v2] Supports to use the > > > > > > > default CMA when the device-specified CMA memory is not = enough. > > > > > > > > > > > > > > Caution: This is an external email. Please take care when > > > > > > > clicking links or opening attachments. When in doubt, = report > > > > > > > the message using the 'Report this email' button > > > > > > > > > > > > > > > > > > > > > On Thu, Jun 13, 2024 at 2:34=E2=80=AFPM Zhai He = wrote: > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > From: Barry Song > > > > > > > > > Sent: Thursday, June 13, 2024 5:37 AM > > > > > > > > > To: Andrew Morton > > > > > > > > > Cc: Zhai He ; sboyd@kernel.org; > > > > > > > > > linux-mm@kvack.org; linux-kernel@vger.kernel.org; > > > > > > > > > stable@vger.kernel.org; Zhipeng Wang > > > > > > > > > ; Jindong Yue > > > > > > > > > ; Christoph Hellwig > > > > > > > > > Subject: [EXT] Re: [PATCH v2] Supports to use the > > > > > > > > > default CMA when the device-specified CMA memory is = not > enough. > > > > > > > > > > > > > > > > > > Caution: This is an external email. Please take care > > > > > > > > > when clicking links or opening attachments. When in > > > > > > > > > doubt, report the message using the 'Report this = email' > > > > > > > > > button > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, Jun 13, 2024 at 6:47=E2=80=AFAM Andrew Morton > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > On Wed, 12 Jun 2024 16:12:16 +0800 "zhai.he" > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > From: He Zhai > > > > > > > > > > > > > > > > > > > > (cc Barry & Christoph) > > > > > > > > > > > > > > > > > > > > What was your reason for adding cc:stable to the = email > headers? > > > > > > > > > > Does this address some serious problem? If so, = please > > > > > > > > > > fully describe that problem. > > > > > > > > > > > > > > > > > > > > > In the current code logic, if the device-specified > > > > > > > > > > > CMA memory allocation fails, memory will not be > > > > > > > > > > > allocated from the > > > > > default CMA area. > > > > > > > > > > > This patch will use the default cma region when = the > > > > > > > > > > > device's specified CMA is not enough. > > > > > > > > > > > > > > > > > > > > > > In addition, the log level of allocation failure = is changed to > debug. > > > > > > > > > > > Because these logs will be printed when memory > > > > > > > > > > > allocation from the device specified CMA fails, = but > > > > > > > > > > > if the allocation fails, it will be allocated from > > > > > > > > > > > the default cma area. It can easily mislead > > > > > > > developers' > > > > > > > > > > > judgment. > > > > > > > > > > > > > > > > > > I am not convinced that this patch is correct. If > > > > > > > > > device-specific CMA is too small, why not increase it = in > > > > > > > > > the device > > > tree? > > > > > > > > > Conversely, if the default CMA size is too large, why > > > > > > > > > not reduce it via the cmdline? CMA offers all kinds = of > > > > > > > > > flexible configuration options based > > > > > > > on users=E2=80=99 needs. > > > > > > > > > > > > > > > > > > One significant benefit of device-specific CMA is that > > > > > > > > > it helps decrease fragmentation in the common CMA = pool. > > > > > > > > > While many devices allocate memory from the same pool, > > > > > > > > > they have different memory requirements in terms of > > > > > > > > > sizes and alignments. Occasions of memory allocation = and > > > > > > > > > release can lead to situations where the CMA pool has > > > > > > > > > enough free space, yet someone fails to obtain > > > > > contiguous memory from it. > > > > > > > > > > > > > > > > > > This patch entirely negates the advantage we gain from > > > > > > > > > device-specific > > > > > CMA. > > > > > > > > > My point is that instead of modifying the core code, > > > > > > > > > please consider correcting your device tree or cmdline > configurations. > > > > > > > > > > > > > > > > > Because we enabled secure heap to support widevine DRM, > > > > > > > > and secure heap requires security configuration, its > > > > > > > > starting address cannot be specified arbitrarily, which > > > > > > > > causes the default CMA to be reduced. So we > > > > > > > reduced the CMA, but in order to avoid the impact of > > > > > > > reducing the CMA, we used a multi-segment CMA and gave one > > > > > > > segment to the > > > VPU. > > > > > > > > > > > > > > > > However, under our memory configuration, the > > > > > > > > device-specific CMA is not > > > > > > > enough to support the VPU decoding high-resolution code > > > > > > > streams, so this patch is added so that the VPU can work = properly. > > > > > > > > Thanks. > > > > > > > > > > > > > > I don=E2=80=99t quite understand what you are saying. Why = can=E2=80=99t you > > > > > > > increase VPU=E2=80=99s CMA size? > > > > > > Thanks for your quick reply. > > > > > > Because we added a secure heap to support Widevine DRM, this > > > > > > heap > > > > > requires hardware protection, so its starting address cannot = be > > > > > specified arbitrarily. This causes the secure heap to occupy > > > > > part of the default CMA, and the default CMA is therefore > > > > > reduced, so in order to avoid default CMA Shrinking introduces > > > > > other problems. We added a specific CMA area for the VPU. > > > > > However, due to the large size of the secure heap and default > > > > > CMA, There is no remaining memory > > > available to increase specific CMA for VPU. > > > > > > > > > > I assume the secure heap you are referring to is a section of > > > > > memory that should only be accessed by TrustZone and not be > > > > > visible to Linux running in non-secure mode. How do you = allocate > > > > > this secure heap > > > from the default CMA? > > > > > > > > No, secure heap is a reserved memory, secure heap is not = allocated > > > > from CMA, > > > secure heap has been reserved during the kernel startup phase. > > > > And this reserved memory is protected by hardware. Only specific > > > > hardware > > > and secure world can accessed it. > > > > For example: > > > > &{/reserved-memory/} { > > > > secure_region: secure { > > > > compatible =3D "imx-secure-ion-pool"; > > > > reg =3D <0x0 0xA0000000 0 0x1EF00000>; > > > > }; > > > > }; > > > > > > > > > Do you use the cma_alloc() APIs or the dma_alloc_coherent() = APIs? > > > > > Given that the VPU has its own device-specific CMA, why is = this > > > > > secure heap allocated from the default CMA instead of the = VPU's CMA? > > > > > > > > > The VPU driver will use dma_alloc_coherent() to allocate = contiguous > memory. > > > The secure heap is not allocated from the CMA, but because the > > > secure heap is enabled, it occupies some contiguous memory, = causing > > > the default CMA to be reduced. > > > > > > > > > If this secure heap was allocated before the kernel booted, = why > > > > > did the kernel(your dts) fail to mark this area as > > > > > nomap/reserved to prevent the default CMA from intersecting = with it? > > > > > > > > > Secure heap does not intersect with the CMA. > > > > for example: > > > > before secure heap enabled: > > > > 0xA000 0000 ~ 0xFFFFFFFF: default CMA after secure heap enabled: > > > > 0x9000 0000 ~0x9FFF FFFF is the CMA specified by VPU, > > > > 0xA000 0000 ~0xAFFF FFFF is secure heap, (the start address = cannot > > > > be > > > specified arbitrarily, because this memory is protected by = hardware, > > > if the start address is 0x9000 0000, uboot will use this memory, = but > > > uboot can't access this memory because of hardware protection. So = we > > > find a section of memory that UBOOT will not use as secure heap. > > > > Note: The memory of uboot can be adjusted, but avoiding the = secure > > > > heap will limit the memory range that uboot can use, causing > > > > problems such as the uboot stack) > > > > 0xB000 0000 ~0xFFFFFFFF is default CMA. > > > > So default CMA is reduced. > > > > > > How is that related to your patch? I assume the default CMA is > > > reduced because you modified it in the DTS after enabling the = secure > > > heap, as the CMA size is set by you. The default CMA size won't > > > automatically decrease due to the secure heap. To me, > 0xB0000000-0xFFFFFFFF(1.25GiB) is still too large a CMA. > > > > > > > Sorry, This example is just an example. In fact, the size of our = default CMA is > less than 1.25GiB. > > Our current memory distribution is as follows. Now the size of "c" = (default > CMA) could not meet the needs of our requirement. And "b" (reserved = memory > for secure) is fixed, so we couldn't expand "c" (default CMA) through = modify DTS. > Then we reserved "a" (specific CMA) for VPU. However, we have = confirmed with > the multimedia team that the maximum size required is It is uncertain, = so > specify "a" for VPU to use first, and "c" for other devices that = require continuous > memory. If "a" is not enough, use "c". > > That's the purpose of this patch. > > -------------------------------------------------- > > | a. VPU specific cma | > > -------------------------------------------------- > > | b. reserved memory for secure | > > --------------------------------------------------- > > | c. default CMA | > > --------------------------------------------------- > > > > >=20 > Ok, I understand your problem. Because B is enabled, you can't have C = as large > as you would without B. So you add A, but A might have insufficient = space for > high-resolution video. You also don't know the exact size needed for = A. In the > corner case of encoding/decoding high-resolution video, A might be = insufficient, > forcing you to borrow memory from C. Because B is situated between A = and C, > creating a gap, you cannot merge A and C into a single default CMA. >=20 > This does indeed seem like a valid requirement. Please ensure to = clearly describe > the problem next time. However, as a general rule, allowing = device-specific > CMAs to borrow from the default CMA is not advisable. This would = undermine > the reasons why we started supporting device-specific CMAs in the = first place. >=20 > So the problem is that memory holes may prevent the formation of large = CMAs. >=20 > This situation raises a question: can we have two or more default CMAs = due to > memory holes like B, which might hinder the system from obtaining a = sufficiently > large default CMA? >=20 > If you could define both A and C as default CMAs, you wouldn't require = these > kinds of fallbacks. Is it possible for you to make = dma_contiguous_default_area a > list rather than a global variant ? >=20 > Another option is that we allow devices to have more than one = memory-region, > we can use device tree to fallback. > memory-region =3D <&mem1, &mem2>; >=20 > My perspective is that I acknowledge your problem as a valid = requirement. > However, I find the approach to be too aggressive. >=20 OK, thanks very much for your suggestions.=20 I will try the method you proposed but I'm not sure I can implement it, = it's a bit difficult for me. ^_^ All in all, thank you for your patient reply. > > > > > > > > > > > > > It seems you mean that only in some corner cases do you = need > > > > > > > a large CMA, but most of the time, you don=E2=80=99t need = it to be > > > > > > > this big? So you have > > > > > to "borrow" > > > > > > > memory from the > > > > > > > default CMA. but why not move that portion from the = default > > > > > > > CMA to your VPU=E2=80=99s CMA? > > > > > > > > > > > > > This is a method, but because for VPU, the continuous memory > > > > > > size allocated > > > > > by the driver is based on the video stream, we cannot = determine > > > > > the maximum size of memory required by the VPU. This makes it > > > > > impossible for us to determine the size of the specific CMA = assigned to > the VPU. Thanks. > > > > > > > > > > I don't understand how this can happen. You should precisely > > > > > know the maximum size required for the VPU based on your > > > > > multimedia pipeline and resolutions. > > > > > > > > > We cannot estimate the maximum contiguous memory required by the > > > > VPU > > > because it depends on how the video is encoded. > > > > Thanks very much. > > > > > > Yes, you can. Please ask your multimedia team; they will give you = a number. > > > > > > > > > > > > I still don't understand your scenarios or the problem you are = facing. > > > > > > > > > > > >=20 > Thanks > Barry ------=_NextPart_000_01D2_01DABDC0.103B1950 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIhTTCCBaIw ggOKoAMCAQICCE4Rpu+H69FRMA0GCSqGSIb3DQEBCwUAMGUxIjAgBgNVBAMMGU5YUCBJbnRlcm5h bCBQb2xpY3kgQ0EgRzIxCzAJBgNVBAsMAklUMREwDwYDVQQKDAhOWFAgQi5WLjESMBAGA1UEBwwJ RWluZGhvdmVuMQswCQYDVQQGEwJOTDAeFw0yMzA0MjEwNjQzNDVaFw0yODA0MTkwNjQzNDVaMIG2 MRwwGgYDVQQDDBNOWFAgRW50ZXJwcmlzZSBDQSA1MQswCQYDVQQLDAJJVDERMA8GA1UECgwITlhQ IEIuVi4xEjAQBgNVBAcMCUVpbmRob3ZlbjEWMBQGA1UECAwNTm9vcmQtQnJhYmFudDETMBEGCgmS JomT8ixkARkWA3diaTETMBEGCgmSJomT8ixkARkWA254cDETMBEGCgmSJomT8ixkARkWA2NvbTEL MAkGA1UEBhMCTkwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDAWrnSkYP60A8wj4AO kATDjnbdgLv6waFfyXE/hvatdWz2YYtb1YSRi5/wXW+Pz8rsTmSj7iusI+FcLP8WEaMVLn4sEIQY NI8KJUCz21tsIArYs0hMKEUFeCq3mxTJfPqzdj9CExJBlZ5vWS4er8eJI8U8kZrt4CoY7De0FdJh 35Pi5QGzUFmFuaLgXfV1N5yukTzEhqz36kODoSRw+eDHH9YqbzefzEHK9d93TNiLaVlln42O0qaI MmxK1aNcZx+nQkFsF/VrV9M9iLGA+Qb/MFmR20MJAU5kRGkJ2/QzgVQM3Nlmp/bF/3HWOJ2j2mpg axvzxHNN+5rSNvkG2vSpAgMBAAGjggECMIH/MFIGCCsGAQUFBwEBBEYwRDBCBggrBgEFBQcwAoY2 aHR0cDovL253dy5wa2kubnhwLmNvbS9jZXJ0cy9OWFBJbnRlcm5hbFBvbGljeUNBRzIuY2VyMB0G A1UdDgQWBBRYlWDuTnTvZSKqve0ZqSt6jhedBzASBgNVHRMBAf8ECDAGAQH/AgEAMEUGA1UdHwQ+ MDwwOqA4oDaGNGh0dHA6Ly9ud3cucGtpLm54cC5jb20vY3JsL05YUEludGVybmFsUG9saWN5Q0FH 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 MqAfBgorBgEEAYI3FAIDoBEMD3poYWkuaGVAbnhwLmNvbYEPemhhaS5oZUBueHAuY29tMB0GA1Ud DgQWBBRnNp0/tSrFNJlgS+ZRdCT+c5yRQDAfBgNVHSMEGDAWgBRYlWDuTnTvZSKqve0ZqSt6jhed BzCCAUYGA1UdHwSCAT0wggE5MIIBNaCCATGgggEthoHIbGRhcDovLy9DTj1OWFAlMjBFbnRlcnBy aXNlJTIwQ0ElMjA1LENOPW5sYW1zcGtpMDAwNSxDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2Vy dmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz13YmksREM9bnhwLERDPWNvbT9j ZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9u UG9pbnSGL2h0dHA6Ly9ud3cucGtpLm54cC5jb20vY3JsL05YUEVudGVycHJpc2VDQTUuY3Jshi9o dHRwOi8vd3d3LnBraS5ueHAuY29tL2NybC9OWFBFbnRlcnByaXNlQ0E1LmNybDCCARAGCCsGAQUF BwEBBIIBAjCB/zCBuwYIKwYBBQUHMAKGga5sZGFwOi8vL0NOPU5YUCUyMEVudGVycHJpc2UlMjBD QSUyMDUsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNv bmZpZ3VyYXRpb24sREM9d2JpLERDPW54cCxEQz1jb20/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVj dENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwPwYIKwYBBQUHMAKGM2h0dHA6Ly9ud3cucGtp Lm54cC5jb20vY2VydHMvTlhQLUVudGVycHJpc2UtQ0E1LmNlcjANBgkqhkiG9w0BAQsFAAOCAQEA ggGwWe/YcZgJiMbIhUsSO/bYD09itDFnYO+uQqGwvPalRuHk3rA6pXfNb4DoA+gFZLgVDHNul0YA oS8u+LYHUwXe/tP1HZvoInRRnUjPCP7o3uoQFcX2Ay0pVz3AoByHaFAqF3zCCsAdDhTksMPZu2eQ oapJc06m3ZaIBpjT6aVZOXnRFVcHUjaMAZrpm2jqv3jJt58kP0dRsCrfKUkeTflak885rGuUypZC j9tjOii+7/qAsUR/JqMZADUo2cD+PvCwHZRPpj0x1b5Ain8/3mRDTCaa7mMOUApMdd7De9fNjosF LLTdnTiUXO+gnVgwXLvMOhuHTI6aWS+Z9pD1tTCCCDgwggcgoAMCAQICEy0AC58oXPwK6O6UsbsA AQALnygwDQYJKoZIhvcNAQELBQAwgbYxHDAaBgNVBAMME05YUCBFbnRlcnByaXNlIENBIDUxCzAJ BgNVBAsMAklUMREwDwYDVQQKDAhOWFAgQi5WLjESMBAGA1UEBwwJRWluZGhvdmVuMRYwFAYDVQQI DA1Ob29yZC1CcmFiYW50MRMwEQYKCZImiZPyLGQBGRYDd2JpMRMwEQYKCZImiZPyLGQBGRYDbnhw MRMwEQYKCZImiZPyLGQBGRYDY29tMQswCQYDVQQGEwJOTDAeFw0yNDAyMjcwMTIyMzNaFw0yNjAy MjYwMTIyMzNaMIGaMRMwEQYKCZImiZPyLGQBGRYDY29tMRMwEQYKCZImiZPyLGQBGRYDbnhwMRMw EQYKCZImiZPyLGQBGRYDd2JpMQwwCgYDVQQLEwNOWFAxCzAJBgNVBAsTAkNOMRYwFAYDVQQLEw1N YW5hZ2VkIFVzZXJzMRMwEQYDVQQLEwpEZXZlbG9wZXJzMREwDwYDVQQDEwhueGY2NDU5ODCCASIw DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOFpbP807BLOCF4Zt9RudYkITj3hHgHYcWcIYUiT PmR5wym2ussl7jezDSHHlEvPmzhgdSx/PVPpYcv80hjMDHFw3aoV0qyOU+W/pOT2oCL/7S/fHWUe 2Sahoup+MvYXycNdoONBohwwdCcWt71fxvxzsCq0XtnkUdgoTXFlZb53vhD3rAHvP/QhY8jLGvMa I/xK5kFNYIC5EBH5m+atfPB7qERZIUU9nCacRfJVAZpkK0j8L1YBjG28Xm9OcDdgQAsOVRFdkFxk 3YVjHiSmGfDmd8QdvPJrlIDb/mdVXR/FGSl95J16mkithq2e3DBNOJtWrxxj3XDkmXpr9iAUGpEC AwEAAaOCBFcwggRTMDwGCSsGAQQBgjcVBwQvMC0GJSsGAQQBgjcVCIWCwH6BjvRVhu2FOILrmUua klY/heaKboS14X4CAWQCAUEwEwYDVR0lBAwwCgYIKwYBBQUHAwQwDgYDVR0PAQH/BAQDAgUgMAwG A1UdEwEB/wQCMAAwGwYJKwYBBAGCNxUKBA4wDDAKBggrBgEFBQcDBDCBlAYJKoZIhvcNAQkPBIGG MIGDMAsGCWCGSAFlAwQBKjALBglghkgBZQMEAS0wCwYJYIZIAWUDBAEWMAsGCWCGSAFlAwQBGTAL BglghkgBZQMEAQIwCwYJYIZIAWUDBAEFMAoGCCqGSIb3DQMHMAcGBSsOAwIHMA4GCCqGSIb3DQMC AgIAgDAOBggqhkiG9w0DBAICAgAwUQYJKwYBBAGCNxkCBEQwQqBABgorBgEEAYI3GQIBoDIEMFMt MS01LTIxLTE5MTUyMDcwMTMtMjYxNTA0MDM2OC0zMDc2OTI5NDU4LTk0NzgwMjA7BgNVHREENDAy oB8GCisGAQQBgjcUAgOgEQwPemhhaS5oZUBueHAuY29tgQ96aGFpLmhlQG54cC5jb20wHQYDVR0O BBYEFDrgyxq3zDcnhNi/Mb2VXLlr7Mn3MB8GA1UdIwQYMBaAFFiVYO5OdO9lIqq97RmpK3qOF50H MIIBRgYDVR0fBIIBPTCCATkwggE1oIIBMaCCAS2GgchsZGFwOi8vL0NOPU5YUCUyMEVudGVycHJp c2UlMjBDQSUyMDUsQ049bmxhbXNwa2kwMDA1LENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2 aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPXdiaSxEQz1ueHAsREM9Y29tP2Nl cnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Q b2ludIYvaHR0cDovL253dy5wa2kubnhwLmNvbS9jcmwvTlhQRW50ZXJwcmlzZUNBNS5jcmyGL2h0 dHA6Ly93d3cucGtpLm54cC5jb20vY3JsL05YUEVudGVycHJpc2VDQTUuY3JsMIIBEAYIKwYBBQUH AQEEggECMIH/MIG7BggrBgEFBQcwAoaBrmxkYXA6Ly8vQ049TlhQJTIwRW50ZXJwcmlzZSUyMENB JTIwNSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29u ZmlndXJhdGlvbixEQz13YmksREM9bnhwLERDPWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0 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 ------=_NextPart_000_01D2_01DABDC0.103B1950--