From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) by mx.groups.io with SMTP id smtpd.web12.8816.1611643503257729971 for ; Mon, 25 Jan 2021 22:45:03 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=KB0uqCuH; spf=pass (domain: oracle.com, ip: 156.151.31.86, mailfrom: ankur.a.arora@oracle.com) Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 10Q6Z238054252; Tue, 26 Jan 2021 06:44:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=KruchKDVRnQGahXUBntvFG5pwlD4Eboc4HOu3NfliRc=; b=KB0uqCuH+wn+0wTRwXvaw2KJCgte+k/MJqlsI030qZok45zMtzYJ0T/Z3mstsO4VIyWf dvIkfsS/zZapPEGRgfoUdd3mEPFLWeoTfSbtejSasmFybQIQSNGDG5SK+eZHHFYNnSWF 66a3qqRF9ebid+ZscoANqhNr63Vu4ofPKjFfEdF7b5KZCe5G1rGVVp4iGFwuodILw7Y8 v/mvkRu8vuo/mbaAOLph5cl1eD07yz1bNlxmFkEWrv0MrlX7bcnX5q18aPx8kE/8ZVQn u1AXI8ZrMHvJ1ZxigW9TcXBJe7ctY9Yf6F7RrigNu4RfClcpqXW2B2+lZk5AhI+XSXL3 VQ== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2130.oracle.com with ESMTP id 368b7qrnuh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Jan 2021 06:44:59 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 10Q6a686097113; Tue, 26 Jan 2021 06:44:59 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2177.outbound.protection.outlook.com [104.47.59.177]) by userp3030.oracle.com with ESMTP id 368wqw1qcn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Jan 2021 06:44:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V4Cyc0J4mUNMerKfeCLzQLRA7pJ8doppWvAn5BGsuPNSZfC2kFyQ3FDQzHUjV0XyLGQtoyW470fPvnOqCmZtktGi3x1E1TGyPFhbFFCEiTV3kelG1DKfb9y7Fy/oq7S+ljL3tvVkJP99kWJArPyajUBzjOT+LQY84LAeLSiNZQpyKkjLrL6asNOJKY4MlvWbryXj1yGjYPDQXBey+2L8pRLMGgTAS0L+TMZNZ+09fYKCgMzfLVhmi2S1JTCuFpMRh1CRiKyzKyg4VBEedgCaGxI7DcSFqXRQF50mswk6qMBhycbnMAztjNB9xgNU7YLeV9Bt1zAUXLJWOVdKmQbmnw== 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=KruchKDVRnQGahXUBntvFG5pwlD4Eboc4HOu3NfliRc=; b=nKxx1Ycshp7fZWBvXWuNKsMcPAhnZ+owwF+9KO5hrPJyDeY5dDgzXk1sJs5Okq8uRS2cxfICaPQy1fqPWF8st5kQRlxi7mNysHoiZ2xGWnDWyf8IXaHR/Dt4b+ZFv2pLmeX5O5sygyXTRe62P01nvzaamcm6VTVL/e2RqqQyN1V3f70u63pJ5OS0lWYEpTNCDGUpSh0/HRqW1r7CnwsGQ53NXrVLAZIgKmu5E/BgED6/RVikQ42bQt7OEEvLJXRJlEUUZkKXkD6rRfF6T5rQswdQoCIzwoRjgQwSX6Zg4TQAoU5BGnXv5NCGM4AV952qTdDyAmlvfedXpaPRZcduow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KruchKDVRnQGahXUBntvFG5pwlD4Eboc4HOu3NfliRc=; b=I2sftro1EedJDxRuppOIy99wZvdH83LryPAjy1B00C0qsQMQ8R01XqNnKSWeRlVOk1C67ln9ukJjTghxQqJV7HF9ltiz4bdUXekkswTEWNW7MCbgm59HiNLkSdpXG394+RSgQc0Q7hjKRMwZ+wA6CIwoz4ZP+5g4/NHnRJDV+II= Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=oracle.com; Received: from CY4PR10MB1718.namprd10.prod.outlook.com (2603:10b6:910:9::17) by CY4PR1001MB2184.namprd10.prod.outlook.com (2603:10b6:910:45::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.14; Tue, 26 Jan 2021 06:44:53 +0000 Received: from CY4PR10MB1718.namprd10.prod.outlook.com ([fe80::39dc:6ba7:9397:cb6]) by CY4PR10MB1718.namprd10.prod.outlook.com ([fe80::39dc:6ba7:9397:cb6%6]) with mapi id 15.20.3784.019; Tue, 26 Jan 2021 06:44:53 +0000 From: "Ankur Arora" To: devel@edk2.groups.io Cc: lersek@redhat.com, imammedo@redhat.com, boris.ostrovsky@oracle.com, Ankur Arora , Jordan Justen , Ard Biesheuvel , Aaron Young Subject: [PATCH v5 5/9] OvmfPkg/CpuHotplugSmm: define CPU_HOT_EJECT_DATA Date: Mon, 25 Jan 2021 22:44:36 -0800 Message-Id: <20210126064440.299596-6-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210126064440.299596-1-ankur.a.arora@oracle.com> References: <20210126064440.299596-1-ankur.a.arora@oracle.com> X-Originating-IP: [70.36.60.91] X-ClientProxiedBy: MWHPR18CA0061.namprd18.prod.outlook.com (2603:10b6:300:39::23) To CY4PR10MB1718.namprd10.prod.outlook.com (2603:10b6:910:9::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (70.36.60.91) by MWHPR18CA0061.namprd18.prod.outlook.com (2603:10b6:300:39::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12 via Frontend Transport; Tue, 26 Jan 2021 06:44:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c43cfe29-780c-4395-92aa-08d8c1c5e2eb X-MS-TrafficTypeDiagnostic: CY4PR1001MB2184: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EagMOm5Ayu/aB496+OXcWJr3F6mfzbkuJTdiGfD7q9rmtqzfrl0Dihn4kUPXisInIdiGzi624eF11QPBJVVZ2G6DcpDzpLzWK4mYKtVO3OtOgf9onQETiwQrvPnPmuY7KWrSX0UhamlZ1qTIBoX4gun+M8VyBKlxl4x1m1Mt7bwUwC1PzLJwBt+NnLzPzEBLDSkabaJ3gMM7P7T6vlEJ/SsLEWArU0B4T3THk64KYzDEHHxa3+oPYnSdm+Z500ty+QLqcWGEC6d7QIcWk3NFnZxG9WzPPBhoobN4ALji6hLnHRnKqs92qkXr69zVRspyQwuKd7GaSyS0f38wr98bheq3FqyZU18C4v8C+iTh24FokZJRTuSrLON+9r1xWIEc+k9BqEC5Gds01F3rX9R0kMLoxvW2+GfBibmIejf0bkw454zicYimh+wYvgxuzvCb2eaMmpIfF3CLrnAE82B1V1atZCwtojlr03Vv6xvgTJ201Gimuo/o/5xwKYgblhSUQsghWx7je9vVG0ru+KZJLA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR10MB1718.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(396003)(39860400002)(376002)(346002)(136003)(69590400011)(6916009)(2616005)(4326008)(6512007)(52116002)(956004)(66556008)(6486002)(36756003)(186003)(6506007)(26005)(66476007)(6666004)(478600001)(8676002)(8936002)(83380400001)(966005)(1076003)(2906002)(86362001)(5660300002)(66946007)(103116003)(316002)(54906003)(16526019)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?pEn+beZ8Hh77S1+QI9QvCE7dDwVFEf1uOlHmBxvOV/8h2DeN9duBj1LLzyNS?= =?us-ascii?Q?Kb2ZDk/Ab40q2S/R2v2FFYWVxAbbElnM75X+erjW3m3pQo6nR0cENLCScz8v?= =?us-ascii?Q?O/mQ1txuSm6fdc67zzv7hQ7JdqzsNOU8pvM+UC2XQlUy+CUjiR3BuipDYFkX?= =?us-ascii?Q?PVyXS0mTPXfAkltG+b/YL58MLzZ/wmMS7GX/ly75E/CvA3s3G8Kix8GjZAnR?= =?us-ascii?Q?kfgjYbURlq13yOfDj1jFp9Ped8vx5ZF6BudZmdBj8LXX3VUxsFSlf+jHeOs8?= =?us-ascii?Q?C3Hx/IbjQqezZrSkVIdYBRZ8hOSRsCF97vcBxtenhyui2nascqkTSl3K9cDo?= =?us-ascii?Q?Nr/S4BQEBFhpWa2dDr11snDkhM+WxZsULPzfnFMZgnCPe8fuf8otq+m+STBJ?= =?us-ascii?Q?ucXCPe7V6RVvSaB9h0RLsJBfy+49aQCdUkxG908lUlvhLKBcOMiatgjOYYq8?= =?us-ascii?Q?mx/A5vlNG8Fy4xuCwBcyz/iQpnm5ZDKd5NBo3M/O6XeHZNhpoZgyd31htwUr?= =?us-ascii?Q?fx+PzzoEERWfLtEFFV6kzv8iagXIociuRMKntxbQcyx+YeQHaeXax1rt+AoU?= =?us-ascii?Q?uDzS3hOPxW/idZcOWzgEqyOMpeMT/v9Yn6M7X4PhdWr/i0FQj//A1slsl+ln?= =?us-ascii?Q?FkRMMMEHydw2dETxMl0VLUemGVty3rzeG3prEcd8nl9OLAeMi8HKEKodd7SR?= =?us-ascii?Q?m/D1PZHmHo/wADIzNK7VsX51lj3hAnWVvK80BHwTegsnyR+biE39i/YxUhye?= =?us-ascii?Q?xM2peMFPfbGtzyQdWJqtHEqz166TUHTHH1MIjTGidLjojTP4cZI5O9eSOkCU?= =?us-ascii?Q?44vrp/clYJM8pP014k+oyMHADFGkaaxwN1eFyaY3ob5HRYMioPzYBZWu/KDK?= =?us-ascii?Q?+jjKEvuwtSLIPitKgV/ym87EmZkM4GvjR4eYVbMCS/Oyuxr+63Wg1JBGw0A8?= =?us-ascii?Q?C95OQUKJ2N2kmcoJM7rnKgTu5vVAmiPq0+gyo8NUI6r5zngHDO8k5LrZctRd?= =?us-ascii?Q?YdiY8kaA3LmZCiRuRnvD0gvn+SZmtd//gzBsoHmT48Xqp86Fs0ylQfzqPG14?= =?us-ascii?Q?tLudD7n2?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c43cfe29-780c-4395-92aa-08d8c1c5e2eb X-MS-Exchange-CrossTenant-AuthSource: CY4PR10MB1718.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2021 06:44:53.4961 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 80Fh+uvPvUSy1g0U1RxcQPfmMopROv/4FyRnly7dTYHUr24rOVTKUPB0tqHw+wiazrLY18XAu/vFVWIJQhe+fI6sGS92XiTCy7mf+2PuR+M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1001MB2184 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9875 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2101260035 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9875 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 phishscore=0 adultscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 bulkscore=0 priorityscore=1501 mlxscore=0 clxscore=1015 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2101260035 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Define CPU_HOT_EJECT_DATA and add PCD PcdCpuHotEjectDataAddress, which will be used to share CPU ejection state between OvmfPkg/CpuHotPlugSmm and PiSmmCpuDxeSmm. Cc: Laszlo Ersek Cc: Jordan Justen Cc: Ard Biesheuvel Cc: Igor Mammedov Cc: Boris Ostrovsky Cc: Aaron Young Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3132 Signed-off-by: Ankur Arora --- OvmfPkg/OvmfPkg.dec | 10 ++++++++++ OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf | 1 + OvmfPkg/Include/Library/CpuHotEjectData.h | 32 +++++++++++++++++++++++++++= ++++ 3 files changed, 43 insertions(+) create mode 100644 OvmfPkg/Include/Library/CpuHotEjectData.h diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec index 4348bb45c64a..e79ff28465e3 100644 --- a/OvmfPkg/OvmfPkg.dec +++ b/OvmfPkg/OvmfPkg.dec @@ -106,6 +106,10 @@ [LibraryClasses] #=0D XenPlatformLib|Include/Library/XenPlatformLib.h=0D =0D + ## @libraryclass Share CPU hot-eject state=0D + #=0D + CpuHotEjectData|Include/Library/CpuHotEjectData.h=0D +=0D [Guids]=0D gUefiOvmfPkgTokenSpaceGuid =3D {0x93bb96af, 0xb9f2, 0x4eb8, {= 0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}}=0D gEfiXenInfoGuid =3D {0xd3b46f3b, 0xd441, 0x1244, {= 0x9a, 0x12, 0x0, 0x12, 0x27, 0x3f, 0xc1, 0x4d}}=0D @@ -352,6 +356,12 @@ [PcdsDynamic, PcdsDynamicEx] # This PCD is only accessed if PcdSmmSmramRequire is TRUE (see below).= =0D gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE|BOOLEAN|0x34= =0D =0D + ## This PCD adds a communication channel between PiSmmCpuDxe and=0D + # CpuHotplugSmm.=0D + #=0D + # Only accessed if PcdCpuHotPlugSupport is TRUE=0D + gUefiOvmfPkgTokenSpaceGuid.PcdCpuHotEjectDataAddress|0|UINT64|0x46=0D +=0D [PcdsFeatureFlag]=0D gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation|TRUE|BOOLEAN|0= x1c=0D gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation|FALSE|BOOLEAN= |0x1d=0D diff --git a/OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf b/OvmfPkg/CpuHotplugSm= m/CpuHotplugSmm.inf index 04322b0d7855..e08b572ef169 100644 --- a/OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf +++ b/OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf @@ -54,6 +54,7 @@ [Protocols] =0D [Pcd]=0D gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugDataAddress ## CON= SUMES=0D + gUefiOvmfPkgTokenSpaceGuid.PcdCpuHotEjectDataAddress ## CON= SUMES=0D gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase ## CON= SUMES=0D =0D [FeaturePcd]=0D diff --git a/OvmfPkg/Include/Library/CpuHotEjectData.h b/OvmfPkg/Include/Li= brary/CpuHotEjectData.h new file mode 100644 index 000000000000..839ddad6d8f8 --- /dev/null +++ b/OvmfPkg/Include/Library/CpuHotEjectData.h @@ -0,0 +1,32 @@ +/** @file=0D + Definition for a structure sharing state for CPU hot-eject.=0D +=0D + Copyright (C) 2021, Oracle Corporation.=0D +=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +**/=0D +=0D +#ifndef _CPU_HOT_EJECT_DATA_H_=0D +#define _CPU_HOT_EJECT_DATA_H_=0D +=0D +typedef=0D +VOID=0D +(EFIAPI *CPU_HOT_EJECT_FN)(=0D + IN UINTN ProcessorNum=0D + );=0D +=0D +#define CPU_EJECT_INVALID (MAX_UINT64)=0D +#define CPU_EJECT_WORKER (MAX_UINT64-1)=0D +=0D +#define CPU_HOT_EJECT_DATA_REVISION_1 0x00000001=0D +=0D +typedef struct {=0D + UINT32 Revision; // Used for version identification f= or this structure=0D + UINT32 ArrayLength; // Number of entries for the ApicIdM= ap array=0D +=0D + UINT64 *ApicIdMap; // Pointer to CpuIndex->ApicId map f= or pending ejects=0D + CPU_HOT_EJECT_FN Handler; // Handler to do the CPU ejection=0D + UINT64 Reserved;=0D +} CPU_HOT_EJECT_DATA;=0D +=0D +#endif /* _CPU_HOT_EJECT_DATA_H_ */=0D --=20 2.9.3