From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.76]) by mx.groups.io with SMTP id smtpd.web09.8255.1604586880648249458 for ; Thu, 05 Nov 2020 06:34:40 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=lwqAa5nk; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.223.76, mailfrom: thomas.lendacky@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B2eEXUUQH25wcGoFtjAbzN1+jNrm8DGnGMoGWOU4VUIv/sSV2iGoamIgqh0kZhPfuPFVT3cV6xjshxg8FldiAuqTRolGioyJIs2W1mYlQmpeUT5z8dvlpjTpfgzG1ZxAHoeasZtRMftGDsMadKr5nSzAyUHwqCAgpZvWM0wqzUWkzN5hwgkznS/KNmGX2tr8+3BvXyncnAZGQQC9VYe9Vk0FDjCvd19zyoDxSzFobZCJLVOVWitxejUTBpAuSl/+FkrRkwl4N59amHqIreRjxW5mGPk21dQmRD8M/0CqkG+ZkWkJP5Wuy103IZ1eeJFf/tn8ikfst69R73JhboG1Iw== 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=qmLvFvWiUhPm1Ocyn6aYmecvy8l86zHqbso5DLmSeyQ=; b=Qo0DgHQaZcPPLx87WuRNIpl3dT/t/b2QQooZucEzt/nz4/BRDcarNxADM/Yyk5dKFfHJgxKfonsfzLPTGAm04qV+3ZsK4iRJVYfn63iiitr0Bk+p+hH62/D5/hzZT/W7k4DzjRo/ORLhu3RRM8qr4Gu98JqfJsBd8cSaeqhfBIUZYPeIxnBiPlsftlPb19jsXdFFgHuW0wTj69wkO+6Pslk1ZCDPBLZtSDJbMiSzViLjZsiI3YLf/44d94iHgdURhuYNrwYuEjLXARpuGaA0Kg0Sm9jht8Z8QSeEwTwQgaJ6QGB8ko+zTzCBHplAryLUSHmrF8XNkotS1cjy0duycA== 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=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qmLvFvWiUhPm1Ocyn6aYmecvy8l86zHqbso5DLmSeyQ=; b=lwqAa5nklHtQnyFe7YkFCqRhQYKHQEbq75jlVrIK28m/tTxEAQkUgDnkW3spZxjk7nIHFrdex0Ay3KRXkgnc6bZEheXno0epn3mRsVFJKUKorZVwKJbzR05o7G9RTaVW2BeqnGErPV1AnGspXJ00/h5dj3kdwQma5Bi0fFtdyBU= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=amd.com; Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM5PR1201MB2505.namprd12.prod.outlook.com (2603:10b6:3:ea::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.24; Thu, 5 Nov 2020 14:34:37 +0000 Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::e442:c052:8a2c:5fba]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::e442:c052:8a2c:5fba%6]) with mapi id 15.20.3499.032; Thu, 5 Nov 2020 14:34:37 +0000 Subject: Re: [edk2-devel] [PATCH v3 00/11] SEV-ES guest support fixes and cleanup To: Laszlo Ersek , devel@edk2.groups.io Cc: Brijesh Singh , Ard Biesheuvel , Eric Dong , Liming Gao , Jordan Justen , Michael D Kinney , Rahul Kumar , Zhiguang Liu , Ray Ni References: <41dd8877-4954-e32d-0398-b4f0525bc2de@redhat.com> From: "Lendacky, Thomas" Message-ID: Date: Thu, 5 Nov 2020 08:34:34 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <41dd8877-4954-e32d-0398-b4f0525bc2de@redhat.com> X-Originating-IP: [67.79.209.213] X-ClientProxiedBy: SA9PR13CA0034.namprd13.prod.outlook.com (2603:10b6:806:22::9) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) Return-Path: thomas.lendacky@amd.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from office-linux.texastahm.com (67.79.209.213) by SA9PR13CA0034.namprd13.prod.outlook.com (2603:10b6:806:22::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.10 via Frontend Transport; Thu, 5 Nov 2020 14:34:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5c088c73-6d0d-4377-3c42-08d88197ebc4 X-MS-TrafficTypeDiagnostic: DM5PR1201MB2505: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G8B4ydlUSvRputm832uyhlf14zwgso8urS5xMX5T8V1zZ60DcJTFKOXkCABcA7wJSo2NcnCSS+h2C8GUGcLKBwh74W2RGfZmTp45Fmz1PgQy7dUsOi0MHpbQAN4RmZ6Npe99vG4zNvBv/CXM72SqqVg36Van3v/sknBb941q3Ft4frrO+qWYYujq4xSxFtGdLJ+gHwDY5E4jeayIRn8QxWAsj2zlhX7lhTAkXIUUJSJ0WDuBjNjFlRDgHiMQL6yy3vwGlySNzbaaacp0BgZcMLPr4rt/iuQCJqDUUoR/ex0xtN+ny8jWMdx+Qu5XBMoLBxMG0PSuXvVtMOBarn25ja9vKxsa7ZUt8+AUGfMwyNkRYSDFBAq5Ga8NUjHRDzW2t/qcWilcDRCMANm+pIf2AqOjXziHKp3deJKCosV1yS49Rki4oL5mpvWONYByXjr5tPR561zD1N4O/pCYLbIryw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR12MB1355.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(39860400002)(136003)(346002)(366004)(376002)(4326008)(956004)(19627235002)(966005)(45080400002)(478600001)(2616005)(8936002)(8676002)(83380400001)(186003)(316002)(31686004)(66476007)(66556008)(36756003)(6512007)(31696002)(86362001)(52116002)(54906003)(53546011)(16526019)(26005)(6486002)(66946007)(6506007)(5660300002)(2906002)(7416002)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: dXgtH7itoJ2Co7c0C/USPFABzTgDC7BTnoMODdTL1yJaXP31RBucAQZhSVwOCX05QWe5Nens0ata0nAwq5g/xcd52n/i2zgd7u1GVtBbSX9SP0zeXxT2GqtTehkeIZzO8THPrdyHqr54uMDeZaTP71lk+H0XKrOT2MF3ibMAh8pj6iK/kqi3RtLCFj8VkILosrWoMFJ/ocJR+n0ldMqk/SDi8BuHRCUwJ3XfbLnbctTXJAKnftlt8GG/EOQr92qu9HzN9GUMNnkaa6lIuqsnhFngr945YCjqotB1JJQzXtSyA/rauZIUEaqK1jMjx6IkWc9NubUCPLQom7Gap9BDM3MxtXW3ryBYxlO/MYpH5rLyAPzucLeQR64NC56Ya63rl6126wTy7rEwxWPU96b6q1fMtc4vNkjQZJiXbK6x4+ddEPVhYWP5ZLuL0W6tydQUlpj06vvnJhRIFxOKR7KcaQJByAANSjm7r1wu7SV6d2YJPiU3b8A8ixXNkMF+qSsgtth+bo0LL2U6PD0JWoVcMpDGqI3OI1XD3kUOFgDyF3QbyzdTHfGK4HRfbTWm5LpodOR9kLVXc/N3epFpmeYHEb0uc6F78HMrUK2nPoUha+yffuke4+e0n7xbahHT45mV9f2scJNK7AwfUEidtH2FSA== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c088c73-6d0d-4377-3c42-08d88197ebc4 X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2020 14:34:37.1225 (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: FhjIom/jFcaUy0at9O5WwH/FxvQscTG+HOsvflvY2Pp+IeQAJ7bF9R9MQGNxga8X6Xy9/WbJqUGwT2fh/KCW7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB2505 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit On 11/4/20 9:29 PM, Laszlo Ersek wrote: > On 10/29/20 15:17, Lendacky, Thomas wrote: >> From: Tom Lendacky >> >> This patch series provides some fixes, updates and cleanup to the SEV-ES >> guest support: >> >> - Update the calculation of the qword offset of fields within the GHCB >> by removing the hardcoding of the offsets and using the OFFSET_OF () >> and sizeof () functions to calculate the values. Remove unused values >> and add values that will be used in later patches. >> >> - Set the SwExitCode, SwExitInfo1, SwExitInfo2 and SwScratch valid bits >> in the GHCB ValidBitmap area when these fields are for a VMGEXIT. This >> is done by adding two new interfaces to the VmgExitLib library to set >> and test the bits of the GHCB ValidBitmap. This reduces code duplication >> and keeps access to the ValidBitmap field within the VmgExitLib library. >> >> - Update the Qemu flash drive services support to add SEV-ES support for >> erasing blocks. >> >> - Disable interrupts when using the GHCB. >> >> - Use the processor number for setting the AP stack pointer instead of the >> APIC ID by calling GetProcessorNumber(). >> >> BZ: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3008&data=04%7C01%7Cthomas.lendacky%40amd.com%7C0697eb8b721342b8a39508d8813b1f3c%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637401438219622636%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=7Ox%2FhGWT9GKg9v5gIX2xRjIvKLiGBkeBzT7Via20cZk%3D&reserved=0 >> >> --- >> >> These patches are based on commit: >> 6ad819c1abe3 ("FmpDevicePkg/FmpDeviceLib: Add Last Attempt Status to Check/Set API") >> >> Cc: Ard Biesheuvel >> Cc: Eric Dong >> Cc: Laszlo Ersek >> Cc: Liming Gao >> Cc: Jordan Justen >> Cc: Michael D Kinney >> Cc: Rahul Kumar >> Cc: Zhiguang Liu >> Cc: Ray Ni >> Cc: Tom Lendacky >> Cc: Brijesh Singh >> >> Changes since v2: >> - Don't rename the GHCB_REGISTER enum type. >> >> Changes since v1: >> - For the GHCB savearea changes, create a new reserved area name instead >> of "renumbering" the reserved areas. >> - Rework the ValidBitmap set/test support to be part of the VmgExitLib >> library. Create two new interfaces for setting and testing bits in the >> GHCB ValidBitmap field and adjust all existing code and the new code in >> this series to use these interfaces for the ValidBitmap updates/checks. >> - Don't disable interrupts for just the Qemu flash services support, but >> rather, cover all users of the GHCB by disabling interrupts in VmgInit() >> and restoring them in VmgDone(). This requires changes to those >> interaces. >> >> Tom Lendacky (11): >> MdePkg: Clean up GHCB field offsets and save area >> UefiCpuPkg/VmgExitLib: Add interfaces to set/read GHCB ValidBitmap >> bits >> OvmfPkg/VmgExitLib: Implement new VmgExitLib interfaces >> OvmfPkg/VmgExitLib: Set the SW exit fields when performing VMGEXIT >> OvmfPkg/VmgExitLib: Set the SwScratch valid bit for IOIO events >> OvmfPkg/VmgExitLib: Set the SwScratch valid bit for MMIO events >> UefiCpuPkg/MpInitLib: Set the SW exit fields when performing VMGEXIT >> OvmfPkg/QemuFlashFvbServicesRuntimeDxe: Set the SwScratch valid bit >> OvmfPkg/QemuFlashFvbServicesRuntimeDxe: Fix erase blocks for SEV-ES >> UefiCpuPkg, OvmfPkg: Disable interrupts when using the GHCB >> UefiCpuPkg/MpInitLib: For SEV-ES guest, set stack based on processor >> number >> >> MdePkg/Include/Register/Amd/Ghcb.h | 40 +++--- >> UefiCpuPkg/Include/Library/VmgExitLib.h | 51 +++++++- >> OvmfPkg/Library/VmgExitLib/VmgExitLib.c | 84 ++++++++++++- >> OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 129 ++++++-------------- >> OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c | 4 +- >> OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c | 6 +- >> UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 5 +- >> UefiCpuPkg/Library/MpInitLib/MpLib.c | 14 ++- >> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c | 60 +++++++-- >> UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm | 6 + >> 10 files changed, 258 insertions(+), 141 deletions(-) >> > > I've submitted PR#1086 , > but CI seems slower than usual today, and I really need some sleep, so I > won't wait for CI. Tom, if the PR succeeds, please close TianoCore#3008, > noting the commit range, and please also follow up in this thread with > the commit range. Thanks, Laszlo! It looks like it failed because it doesn't like the use of the "sizeof (UINT64)". I suppose I can change that to just hard code a value of 8. Let me know what you think. Thanks, Tom > > Thanks! > Laszlo >