From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C9240C433DB for ; Thu, 4 Mar 2021 16:26:25 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 5865664E46 for ; Thu, 4 Mar 2021 16:26:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5865664E46 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id DAC8D6B0008; Thu, 4 Mar 2021 11:26:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D5BBD6B000D; Thu, 4 Mar 2021 11:26:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B388E6B0023; Thu, 4 Mar 2021 11:26:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0197.hostedemail.com [216.40.44.197]) by kanga.kvack.org (Postfix) with ESMTP id 8D52C6B0008 for ; Thu, 4 Mar 2021 11:26:24 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 42F5637F1 for ; Thu, 4 Mar 2021 16:26:24 +0000 (UTC) X-FDA: 77882719488.14.7C00E83 Received: from hqnvemgate24.nvidia.com (hqnvemgate24.nvidia.com [216.228.121.143]) by imf23.hostedemail.com (Postfix) with ESMTP id 24C69A0049FD for ; Thu, 4 Mar 2021 16:26:19 +0000 (UTC) Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate24.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Thu, 04 Mar 2021 08:26:14 -0800 Received: from HQMAIL101.nvidia.com (172.20.187.10) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 4 Mar 2021 16:26:12 +0000 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.108) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Thu, 4 Mar 2021 16:26:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AZXAJOQYdg1aljRQTYFXgAcCaVmsuaiemgUl2wHCw7XsIMpjDWVASHSS76y1ovfkeK2dM9tg1WEcK8dHeiMlxPsvsrjfauR6T0aHnf4GnASE/zvafAFYtMS1wceB9pQlPj5EwQ/yfbyAz6Wmy/B7zcA9r5NG4P1WIj4uJCEU2dDvC3oH5W/fTOm/i6QO5I7reSABfPCdpqmlFgzoJMJ1hqWDsULVpxEtoSd0T0lGuScKoI5ZDqhqqwnZXBopAkKt38G4Ddb0wWBc+STbnEQMa4ssegOVO9Me5dgGPJP+Chw+ohJ3r9bSQFAd0XondIGXD3X6ZSUemxWkS7X38+44KQ== 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=VOcVn4DeJsBy4VelsKVIHbulITFHDNREoIUZCq3O0bY=; b=ewClnzMANpmYHXXiNxpzyAIqKbOSJ+X96EKTO24ilN/ua81/6zPufra4g/pGXfChSM2HDRY2ecjMhp8g+wqd8phTK9iliqIeIjoYWUgNA195SGk47M0oou7OcYVTkonbm5oDuAzXbz2NDuzaeiZaS/19s5SRV7rwQQr6TLxy6dqSpwQ+9yZ/DECpWXx6KnUJ43gy23dCNf2W7vi2n7UEJraQnYDvYcz31/rKoS4k2o1Oa08MEEJACyLIAQifHfuqV1GW0zC8jf4fBg8hoMSjrG5l9mL4R59PCVJZlshg0xgQuIpCEXfBFWDTlIVynhFJ0LI0bHy+wnoI7kcXe3Rl/Q== 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 Authentication-Results: fb.com; dkim=none (message not signed) header.d=none;fb.com; dmarc=none action=none header.from=nvidia.com; Received: from MN2PR12MB3823.namprd12.prod.outlook.com (2603:10b6:208:168::26) by MN2PR12MB4534.namprd12.prod.outlook.com (2603:10b6:208:24f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Thu, 4 Mar 2021 16:26:10 +0000 Received: from MN2PR12MB3823.namprd12.prod.outlook.com ([fe80::a1b1:5d8:47d7:4b60]) by MN2PR12MB3823.namprd12.prod.outlook.com ([fe80::a1b1:5d8:47d7:4b60%7]) with mapi id 15.20.3890.028; Thu, 4 Mar 2021 16:26:10 +0000 From: Zi Yan To: Roman Gushchin CC: , Matthew Wilcox , "Kirill A . Shutemov" , Andrew Morton , Yang Shi , Michal Hocko , John Hubbard , Ralph Campbell , David Nellans , Jason Gunthorpe , David Rientjes , Vlastimil Babka , David Hildenbrand , Mike Kravetz , Song Liu Subject: Re: [RFC PATCH v3 00/49] 1GB PUD THP support on x86_64 Date: Thu, 4 Mar 2021 11:26:03 -0500 X-Mailer: MailMate (1.14r5757) Message-ID: <890DE8FE-DAF6-49A2-8C62-40B6FD593B4A@nvidia.com> In-Reply-To: References: <20210224223536.803765-1-zi.yan@sent.com> Content-Type: multipart/signed; boundary="=_MailMate_0F42F1BB-71F7-416E-88AD-DE441E31633C_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Originating-IP: [216.228.112.22] X-ClientProxiedBy: MN2PR11CA0015.namprd11.prod.outlook.com (2603:10b6:208:23b::20) To MN2PR12MB3823.namprd12.prod.outlook.com (2603:10b6:208:168::26) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.2.62.13] (216.228.112.22) by MN2PR11CA0015.namprd11.prod.outlook.com (2603:10b6:208:23b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 4 Mar 2021 16:26:07 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2e621d44-d6a3-4435-123e-08d8df2a388e X-MS-TrafficTypeDiagnostic: MN2PR12MB4534: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-Header: ProcessedBy-CMR-outbound X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IrLbHMpUP3oUSyZ60+avRBCszHeDEU48NjMHq91InxGpdIQ28s2zXfytnjDdhtnKYeNYse9P/mE6qWZvWo4btSFgdm3EpaL2ynzh94q/G4z5jPSEewTRCxs4Fea63D94+vfjW4OXf78QZAfrAWQBvtjFWCPzFx7Rm2/3LcbvxpipN7fMuiB3B75UMd+f8kgGPgjagfyA2KHQvt0Tn4apbCdKy8zdEwSEv7TaMQG2SOddxqiV834MI+xyOkm+TdrFczGGoDbTEO0AwW4X0OQfjaGw4wkvcCXPVmsceU+BRjTuSYdNuL5qtACRqneOHDdFpM+IY3T4MCj81mt+sksG71YyiKO+4GHc5OHLtON87J88xwZN3PuphOxWfl67mooKu9JDWBOngllfnNXvRTkKFB5AGvfYS7SC7sud0b7tsVQQ5amjp8DXIfJjwK/Q5EA+Vwt1D0nlrs/vvITO2vAFA2Vg/gLNvT54wl8lgVMPWq4B0ouxUP1WUH/8kfMBkiVUcH5TdSLkxOVyrxi9d+csGIH5Irs6GmnheiYvwb9+EMW/4UOgDsgcvOMJOJ8ePp/8vv5XYayE8eO6gR8qlyj5/V24j6XjurKsW4gem4vumODCR9PSmyTx0qiDhcwrQpyUHd+S/XJh6CuVaiUwF/pQCccyJKNlq1E9xIJMVej7oSDDK/L2NIxBaMX8JNbVzB6W X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3823.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(346002)(136003)(376002)(39860400002)(396003)(83380400001)(66476007)(26005)(66556008)(8936002)(2616005)(956004)(36756003)(66946007)(478600001)(16576012)(6486002)(235185007)(966005)(54906003)(16526019)(6666004)(5660300002)(316002)(33656002)(33964004)(8676002)(86362001)(186003)(4326008)(53546011)(2906002)(7416002)(6916009)(72826003)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?M2o5R0JuaWpRNEI0dHlEQWMzK0hoMnRuQi9mSGxsZng1enhkQ084Sm1pZ2JB?= =?utf-8?B?YkxEd1hVSHN2RW5pRWpqRjltNklFNDNuZ2RwVURaT0IwazRqSktVOU5vQjYy?= =?utf-8?B?a3BCOVplNXMzZXNIT1djaExwQkt6RDBRVS9PcTdQay9YU2htdmE4U2VpQUZv?= =?utf-8?B?amMvZnhjdEU5SGxvSG82QWhpZmxocFVScGlhcklsSTBsZi84MHZYRU9ROGpk?= =?utf-8?B?ODJQYStyYVgxdFpSZkZHYnRkOHp6Y1F2aVNXVFpaRUlUTVJYbTMvOUs5MjFR?= =?utf-8?B?dzVlTUgyZnhRNms1K005ZXZnYmpKenZnVTRxaUNRUi91Qm1JYkt3bElyL1Vq?= =?utf-8?B?VDdENkZXOUVELy8zYldBdkZHVVpRY0orL1JvNklxYmxMVGI1QWJGNHlVb0w5?= =?utf-8?B?bHA5NE51S1NFS3BsR3AvaUFWU0lNZHpMZEFxVmtrWmhhZ21BOEF1Zk1YWDEx?= =?utf-8?B?ejY2SnZFcGRUUm9OMzlBaWo2VGlEbDRQS1F3OC9CQW1rT2tGZ2tvd21iMzVl?= =?utf-8?B?ZUhYQVAwcGVSRXd2RmZScFQxbi9xRkV0emN4VnFGNElEYnhZTmlZN0RPYnRS?= =?utf-8?B?cDFCVHFmNllGTGxHRFR3cHlqbHFRVVNEc3l0VWo1ZXFpU0VWQ1ZML1dSSnBF?= =?utf-8?B?bFdJREdXZWgxajVqTGU5OVYwTVUyTmhyNGZzOHlsYU92STE4S2tBNzZqWTg1?= =?utf-8?B?bU1DZy9nUFdTRmhqNVB2TG9CL2wxZWZiNGppTHNzZHRleGtMYjdwdmFqSkRz?= =?utf-8?B?Uy9nNmpJbTZUMk1aUVJxZFV2Y2RoYWljdTVvK3QweGEyNnFDcGh5Q0U3Q1BK?= =?utf-8?B?dlY1akhETU1yUmt3d2NzektBak5tTkt1QWNtdFhSazRoL0UwU3MzQTJNOFcx?= =?utf-8?B?akNsYzVncjJnRVhzV0NKWmxMNFdtT01YMUY4SXpBdEViR29GbzNUYzJWSzZN?= =?utf-8?B?RHNMYk9RSzBEdUxTejFGOWprTDlpckxVNDV5b1VueG1qdDUzQnJUWWlQYm9R?= =?utf-8?B?UU5mWGNNZm5SQ2N3VWtxb210a3JqT1JuRStoQ1pEbDZKc2NnRkJYRmRDc1l1?= =?utf-8?B?a3RWU0c3UXdldG1IUkhDYTY4dmNyMCs3RGhKTmhPR2ROcGZBU3hTdTFvSDZX?= =?utf-8?B?S25HK04zQnVicTJhTXNZSWYwZzJ3VGJIdnVqV0lDYzVXZ3NzeDdaTXhHRXRU?= =?utf-8?B?YWFJaTdzSVh0SEtuRFhVR0VZeXhzdXFhNnFlN2NGNDB5SWNuK3lHUFdSbXND?= =?utf-8?B?cE1oNXQ0L3BlU3lBcCtVdzArUU5KRXpZWVZzNnd1QklWVkZ5b0xNK080MXNo?= =?utf-8?B?SXJHRUN5Zlkram16ODFKU0hzdHA3MWtvOC9QNWZmQSthSk1LNHNDVm10QnV1?= =?utf-8?B?NmRWdUw5YkU0ei8wak9Ua29ZMlQyN240NDNOQ2FLWXA0aVZCQ2FhMDBXVDVM?= =?utf-8?B?K3U0bmI1dCs0aVhPQUd0c2xYL09SVjBxL2JjQTIrUUhiV0hDMWRJR3MxTFMz?= =?utf-8?B?Q0FuU1VqTTJZckdXV0Z0d2xMYTkyTy9za2N0eFFHMkxBQ0xaT0tJbzRwZWtB?= =?utf-8?B?UExBZWQvdGhMMlpuUmVpVEY3MVVaZkpYcFN5RXU0bkNDSzZDdnZqanREcXdQ?= =?utf-8?B?ekRIZlE1dC9LL2w4RmdteFk4NzUwWjc4MytJVkVCV2xGZml1eXlwaXFzZnEz?= =?utf-8?B?bFhUb0VzK2VyOUYzNEg2aitudnJkbGNPS2EzeGpncmxoaHNlK2tRQzhrbGdG?= =?utf-8?Q?agQMesyrmYpa/BOOdiGsLdgkjUqdISs1fpSr/37?= X-MS-Exchange-CrossTenant-Network-Message-Id: 2e621d44-d6a3-4435-123e-08d8df2a388e X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3823.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2021 16:26:10.6298 (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: 2zCGi6nk7/xN9Gjda6g75N1bMvXxH1zwydLV7Qmq4BUPqxxMSTsWiBiy4eXO7XpR X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4534 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1614875174; bh=2cFk1YMSUXIUqXE22zDDKqcUT6AuMcQHmjJ3jHNbXTU=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results: Authentication-Results:From:To:CC:Subject:Date:X-Mailer:Message-ID: In-Reply-To:References:Content-Type:X-Originating-IP: X-ClientProxiedBy:MIME-Version: X-MS-Exchange-MessageSentRepresentingType:X-MS-PublicTrafficType: X-MS-Office365-Filtering-Correlation-Id:X-MS-TrafficTypeDiagnostic: X-MS-Exchange-Transport-Forked:X-Microsoft-Antispam-PRVS:X-Header: X-MS-Oob-TLC-OOBClassifiers:X-MS-Exchange-SenderADCheck: X-Microsoft-Antispam:X-Microsoft-Antispam-Message-Info: X-Forefront-Antispam-Report:X-MS-Exchange-AntiSpam-MessageData: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-OriginalArrivalTime: X-MS-Exchange-CrossTenant-FromEntityHeader: X-MS-Exchange-CrossTenant-Id:X-MS-Exchange-CrossTenant-MailboxType: X-MS-Exchange-CrossTenant-UserPrincipalName: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=lQjYl8R+opGaw5EZLeW2A+fhxv7M2iUQViZCf8+jshmCrPw7Io818cFQ34MesAhOH 1BFY7s4/rIqXwZ5v6lsktdjlisE/sg39DybEg+1waH9yHW0AvPfFHN6omnO6aFJkAo 3VMit+oYJKGwEhfFh6p2zghoAj7poaLiXZYZC8Gh3JAZhjCNks6HDG15KdM5TNSPw3 1wp8cm2HBY75Q407BVET4kwaB97YQkeJcxY4kgMNfVKbFHx8jDdsyAEU2vqa5UkN50 uB86D7xXMfi96fxW5xFWtLTQfVagIDs6Vj+hSTXDSoOm8vbOLAc62Dh5V+us/Zt6P0 MPP2zbpMyGbCg== X-Stat-Signature: undw4mm1zp9w4dh1uga5cmon8jsfmfac X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 24C69A0049FD Received-SPF: none (nvidia.com>: No applicable sender policy available) receiver=imf23; identity=mailfrom; envelope-from=""; helo=hqnvemgate24.nvidia.com; client-ip=216.228.121.143 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1614875179-298894 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --=_MailMate_0F42F1BB-71F7-416E-88AD-DE441E31633C_= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On 1 Mar 2021, at 20:59, Roman Gushchin wrote: > On Wed, Feb 24, 2021 at 05:35:36PM -0500, Zi Yan wrote: >> From: Zi Yan >> >> Hi all, >> >> I have rebased my 1GB PUD THP support patches on v5.11-mmotm-2021-02-1= 8-18-29 >> and the code is available at >> https://github.com/x-y-z/linux-1gb-thp/tree/1gb_thp_v5.11-mmotm-2021-0= 2-18-18-29 >> if you want to give it a try. The actual 49 patches are not sent out w= ith this >> cover letter. :) >> >> Instead of asking for code review, I would like to discuss on the conc= erns I got >> from previous RFCs. I think there are two major ones: >> >> 1. 1GB page allocation. Current implementation allocates 1GB pages fro= m CMA >> regions that are reserved at boot time like hugetlbfs. The concerns= on >> using CMA is that an educated guess is needed to avoid depleting ke= rnel >> memory in case CMA regions are set too large. Recently David Rientj= es >> proposes to use process_madvise() for hugepage collapse, which is a= n >> alternative [1] but might not work for 1GB pages, since there is no= way of >> _allocating_ a 1GB page to which collapse pages. I proposed a simil= ar >> approach at LSF/MM 2019, generating physically contiguous memory af= ter pages >> are allocated [2], which is usable for 1GB THPs. This approach does= in-place >> huge page promotion thus does not require page allocation. > > Well, I don't think there an alternative to cma as now. When the memory= is almost > filled at least once, any subsequent activity leading to substantial sl= ab allocations > (e.g. run git gc) will fragment the memory, so that there are virtually= no chances > to find a continuous GB. > > It's possible in theory to reduce the fragmentation on 1GB scale by gro= uping > non-movable pageblocks, but it seems a separate project. My experiments showed that finding continuous GBs is possible, but I agre= e that CMA is more reliable and 1GB scale defragmentation should be a separate p= roject. =E2=80=94 Best Regards, Yan Zi --=_MailMate_0F42F1BB-71F7-416E-88AD-DE441E31633C_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEEh7yFAW3gwjwQ4C9anbJR82th+ooFAmBBChsPHHppeUBudmlk aWEuY29tAAoJEJ2yUfNrYfqKcgAP/jpS3z9c7riaSVEn/YO5a5tjmObtAovRCrlM 6xYIFnzvPHVrcqI96UuB6C4Hkix9DL9bDOBukJBUpyCC0xqLYxXN2joVnz9A4kLh tu/mThJjnp05v5sRcWCn9igp+lmWOP33xg7R2rRfQQWO9uFV+c1xInZTXOMRwX5G op+teNinlJCufvt+Lx0uDZhOfx63SgQDyCHTApbbXgQzuryEkzim+85A2q0dIqzx n33HHAJJWFSPfRxh62Yd/1lTS3PHvw20UN/QgungPZPg2xWGPw2F54emD9VrDvw7 FXK7NM3yNhUepD6ruii/IGtITqzY7Mhy9v+TjEskaoLiGmEuLQilgU8eAk4Tzkpd VYl80tLj77M5hhEN+6GjErSFDcpAdp2nJMlot4EB1hAmshVQOSOaWqwKiGzrpzkJ RUuQ4AWrAmQFJ5IuVDGIRSUp2OwnngR417qVfo1XNd0PfGYupPprB0UgXF+hISPK 9DfL8q/Wx8FM/AFTCs61McQlYqhkEiKo4CyeSlnESbQlUVqTuFbzXt7S2MPWGFkD zjqhyDiJv/Nl0l8Gynr1oACtPP1fVKxL2I1F3W26on78V9v/Dd8fnVPqz176e88n wc6RSB2VDGFlo1+jvQ/wFjDV4XC76n+vsGd3+copKuAUN3Ilh4Xdf8iyZHhWZP4W lek8xEwC =knea -----END PGP SIGNATURE----- --=_MailMate_0F42F1BB-71F7-416E-88AD-DE441E31633C_=--