From nobody Mon Feb 9 09:28:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+68295+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+68295+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one); dmarc=fail(p=none dis=none) header.from=amd.com Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1607039797678221.21736647754346; Thu, 3 Dec 2020 15:56:37 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id s8y4YY1788612xgIlUJHmly3; Thu, 03 Dec 2020 15:56:37 -0800 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.63]) by mx.groups.io with SMTP id smtpd.web12.5236.1607034439424739402 for ; Thu, 03 Dec 2020 14:27:19 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c58EGtbtiMvEIxxr5gHs/GI9W5dj/lPW6qOJzxhcZoFNUOekjVmkxUscSPD/Sd5z6kMTqEAoEldcEjuRyJQxAbycsx6ZRuJiklZu4Gn1mQEpbRbxw0qO3+ovQ56A4JWNwiSWyM2RIUup4qHynqVmalcaGJviE+R/YwHlbn2QWlTzQZ/E5Fsa2sEk7Tjm8IJ5UUdAFOyhG5yoTcPRinlYJZ4Z82uZgDPC3G8HXfyqxS3LUQ6HxiZ0NieKt/o6KZfCACoE9wRPxsbGojfkFv2SZO1TFLonLqe9olTgEFwZebTmHIpaREZE7bPfVCclR5k4YYYEvbGNewNb8ivUPTXzEg== 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=p3E/A7M3DwEfsOb1I+VpU+KO/a7vwmEBAoBN+RmnkOU=; b=AxkrvoeA6g6BZr3blkQMWG+ec+9wiOxZH0+O51jEq2wQOh3DhI+zBlBsPwdGJk02U9NGm5qgv5w6hO2QVaWr5oedw5GLwUkTGijYnAHOvjIELzLTuRFPKKfqWQgMOxoh34khG0BV4b3W0QwAvBP/AJK8ZgLBg9n0O4b7B5Bcu3pSUu2riKnR8wUlrm2gm7ml64QsH+zL2c4nPabZSI7wgBL45GoQ54pwJwuCWB0UwuW4caFudL1gF13IHgzm3IoEhysHqNQPTPWHPt7A83jVUnUNnTCYSPBhC9vTskXx0kt3pV4tshtL4pOrND+j7eWk3RQcg8NmwTRP8i6SQ3iuiQ== 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 X-Received: from SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) by SN1PR12MB2446.namprd12.prod.outlook.com (2603:10b6:802:26::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.20; Thu, 3 Dec 2020 22:27:16 +0000 X-Received: from SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::d8f2:fde4:5e1d:afec]) by SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::d8f2:fde4:5e1d:afec%3]) with mapi id 15.20.3611.025; Thu, 3 Dec 2020 22:27:16 +0000 From: "Ashish Kalra" To: devel@edk2.groups.io Cc: dovmurik@linux.vnet.ibm.com, brijesh.singh@amd.com, tobin@ibm.com, Jon.Grimm@amd.com, Thomas.Lendacky@amd.com, jejb@linux.ibm.com, frankeh@us.ibm.com, dgilbert@redhat.com, lersek@redhat.com, jordan.l.justen@intel.com, ard.biesheuvel@arm.com Subject: [edk2-devel] [PATCH v2 2/3] OvmfPkg/BaseMemEncryptLib: Support to issue unencrypted hypercall Date: Thu, 3 Dec 2020 22:27:05 +0000 Message-Id: <2ebeb0332fa0a077e10fa93a50f9de7ef3029249.1607032888.git.ashish.kalra@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR22CA0016.namprd22.prod.outlook.com (2603:10b6:3:101::26) To SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from ashkalra_ubuntu_server.amd.com (165.204.77.1) by DM5PR22CA0016.namprd22.prod.outlook.com (2603:10b6:3:101::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.18 via Frontend Transport; Thu, 3 Dec 2020 22:27:15 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: dc51016b-ee65-418d-bcb3-08d897da96fc X-MS-TrafficTypeDiagnostic: SN1PR12MB2446: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: 1LwqeoG8wYMg29AtzCq17opaHAjquc4thIT1sVn3u8HVy8YETrda4DBayQTNXqdbWuzRgDLxHqfbhZSy8ZqBNDXN/WrHt+nxktUy41xQNyFbyZ6sn1bAIQusfMARKhtjWZvke863c3tiyghfniczQh0s2/onCHL6+hi05lvmZD6wrmUXZe6dQJfYjEeaDi6Gd+cy3Hchq8yvjRElu3kAu6bEAARZbReBV6EiOXrGhTOvP///uTlx8Gj+CF0bHyVO3vcw6/BEG4lwEZs4Qvwv1OFCl1SBbkx7PNXCRbkBX62/h35nl+e1BiHOgWtp5guWtV55fug1v38r+SCGEIPmAw== X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?NgvLerNb6qRsVPUKk7hSrctvnTTK2M42c7OdCRZfHy0RmGA04gO2O3GGxqd6?= =?us-ascii?Q?ukmad5bJR2KJbrBQPTCh8n8nI/D0ycwPbysTyg1oTzn89cQK/gEE8bA6C5zb?= =?us-ascii?Q?xvakSeVOm+BfaFppbjap6SeCq6Qn4Sl4lbl5051xtjKnA7FBxUpE9V0pKN6/?= =?us-ascii?Q?cS+oqkh84EuYlqceIyhdgEkvQwEvfLla8Ba22Evdy/gI76ET0CCaVqLHKZqw?= =?us-ascii?Q?sNQtiO6DBljmkEwvBRqW+1vv3KW9kJi2w02+dvW5DbYGGRp5dbBTXLiS/0TB?= =?us-ascii?Q?xjUNhWstCAw4xsxkgs2vXNlsoc+5uR1d5b2APVB3FL2geUFTZBnCWBannhmF?= =?us-ascii?Q?dhtaCdtbam4+PAXi64XAw1UnMH1jERdQyqYQaUmkytKTQ/dXaNKhCvRBYsk+?= =?us-ascii?Q?3wkpoMdVcuXtZE7yui18AfWRk2jxbAat99uu+QajJHeajYj1KBRNG/3Kh5IW?= =?us-ascii?Q?SmSL/7nQbfLYMx2rehgpnjjuQ5ck29hlFIAvCXlSmxgQ5tL6uA2QMKKrrw8s?= =?us-ascii?Q?s7MHnphGbdDfu93Fu1Y7hf49ogYsKuYZQQMS0bACe8+vwKRrsiqLUSslCQCx?= =?us-ascii?Q?nfMfl8KgQMAF/Dv1ywE9x/8N9Dmqs+mAu5l9AyCmDIt5IceH0rg8yGwuKROr?= =?us-ascii?Q?/OFaaZH2GBpCwl0tXVSdxbXYHC10jlYQzTcqq2iLoa8rSIww0+nKitfyoCvr?= =?us-ascii?Q?QQTnxuBzqah60l8uMqUkbyw+bi8QXnafif4AbyAyBdAedOiX6tr9mb1DHMy6?= =?us-ascii?Q?VVY+8kwTpduXTsEZmI7wj0bhKKbptoaC0/XOsnbn+wV8rHHdNSU0YQZuvZ+t?= =?us-ascii?Q?XL0cq0k4JwWbHpRSjbyEmWQb7t6Kax7HN8rfzawgIkXGGdxE/vCKRykD85wo?= =?us-ascii?Q?Hu490HAwmDCS6Lg0kaW1skK+l7njtg+VyjkGaxcHnYa60+/DM6m/TFhIileS?= =?us-ascii?Q?iTAENovDKQ4vd3bSk8RdznV+kJ6HB+kC8uMvSaARdO8=3D?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc51016b-ee65-418d-bcb3-08d897da96fc X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2020 22:27:16.6224 (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: gYojb35bdg6JyTYxN9t6EpZ+ZPZp4fJzn1vT0wB4Vznbp53Bg5Qgs3mvu1bbY+OGIFdYQcUTcmZzG/DAL6V3BA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2446 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ashish.kalra@amd.com X-Gm-Message-State: 5bG8JY9DVneQENPtPl41MRrEx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1607039797; bh=J4hE+5rfkWTVKDwfDZ+1oKiQbGPw+5dtmyJp7ZUozVY=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=EgQOr01bMHx7o41s2/KTnZT1amnIHxLvN5RxB9fNNxMnsvG4Va8EhWJcAS5FCvfgyJ3 CtbesfK14nV/DTIuIsTj4Qu0YangkoXBCiAp9bTfovF3S+yelcOaMpbinrtCNckt4sJV1 NgoaTUqZnjIbtJafMNPZ40RcY0m6fFbBhig= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Brijesh Singh By default all the SEV guest memory regions are considered encrypted, if a guest changes the encryption attribute of the page (e.g mark a page as decrypted) then notify hypervisor. Hypervisor will need to track the unencrypted pages. The information will be used during guest live migration, guest page migration and guest debugging. Invoke hypercall via the new hypercall library. This hypercall is used to notify hypervisor when a page is marked as 'decrypted' (i.e C-bit removed). Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Brijesh Singh Signed-off-by: Ashish Kalra --- OvmfPkg/Library/BaseMemEncryptSevLib/BaseMemEncryptSevLib.inf | 1 + OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c | 18 +++++++= +++++++++++ 2 files changed, 19 insertions(+) diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/BaseMemEncryptSevLib.inf = b/OvmfPkg/Library/BaseMemEncryptSevLib/BaseMemEncryptSevLib.inf index 7c44d09528..95ee707918 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/BaseMemEncryptSevLib.inf +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/BaseMemEncryptSevLib.inf @@ -46,6 +46,7 @@ DebugLib MemoryAllocationLib PcdLib + MemEncryptHypercallLib =20 [FeaturePcd] gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c b/Ovm= fPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c index 5e110c84ff..1e670b6200 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c @@ -14,6 +14,7 @@ #include #include #include +#include =20 #include "VirtualMemory.h" =20 @@ -589,6 +590,9 @@ SetMemoryEncDec ( UINT64 AddressEncMask; BOOLEAN IsWpEnabled; RETURN_STATUS Status; + UINTN Size; + BOOLEAN CBitChanged; + PHYSICAL_ADDRESS OrigPhysicalAddress; =20 // // Set PageMapLevel4Entry to suppress incorrect compiler/analyzer warnin= gs. @@ -640,6 +644,10 @@ SetMemoryEncDec ( =20 Status =3D EFI_SUCCESS; =20 + Size =3D Length; + CBitChanged =3D FALSE; + OrigPhysicalAddress =3D PhysicalAddress; + while (Length) { // @@ -699,6 +707,7 @@ SetMemoryEncDec ( )); PhysicalAddress +=3D BIT30; Length -=3D BIT30; + CBitChanged =3D TRUE; } else { // // We must split the page @@ -753,6 +762,7 @@ SetMemoryEncDec ( SetOrClearCBit (&PageDirectory2MEntry->Uint64, Mode); PhysicalAddress +=3D BIT21; Length -=3D BIT21; + CBitChanged =3D TRUE; } else { // // We must split up this page into 4K pages @@ -795,6 +805,7 @@ SetMemoryEncDec ( SetOrClearCBit (&PageTableEntry->Uint64, Mode); PhysicalAddress +=3D EFI_PAGE_SIZE; Length -=3D EFI_PAGE_SIZE; + CBitChanged =3D TRUE; } } } @@ -812,6 +823,13 @@ SetMemoryEncDec ( // CpuFlushTlb(); =20 + // + // Notify Hypervisor on C-bit status + // + if (CBitChanged) { + SetMemoryEncDecHypercall3 (OrigPhysicalAddress, EFI_SIZE_TO_PAGES(Size= ), !Mode); + } + Done: // // Restore page table write protection, if any. --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#68295): https://edk2.groups.io/g/devel/message/68295 Mute This Topic: https://groups.io/mt/78698661/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-