From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from aserp2130.oracle.com (aserp2130.oracle.com [141.146.126.79]) by mx.groups.io with SMTP id smtpd.web12.31928.1613978380845059315 for ; Sun, 21 Feb 2021 23:19:40 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=WYHqUsDH; spf=pass (domain: oracle.com, ip: 141.146.126.79, mailfrom: ankur.a.arora@oracle.com) Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 11M7Ef94143270; Mon, 22 Feb 2021 07:19:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=0nV3zfC/UgGXZeUwRNQ97yldwt1uNKkrTlJqStzf+qg=; b=WYHqUsDHVc36Mr5Hur/fN32MgyUewlkPurZiF65TpI6ZmYQqQhfC1d5AX68r3F4WJ32Z RhGUHLQaePEDpIyYpcX5XO3kST1cbPUkDQqi/1+fgy0arSVCf2YyII96Rnzc+ugPbUY5 AsVV2g9mC0dzdZXmmuOxRmKA0c0BBbUhowHn42jgK1INxJRI27t9QB3Ewuhzjp2U1H5T eLOeCWoFNRobBDrqMN80SgMQOxQhXeJn1wn666PCNvNnd3wfCl0cLYAPGZHoJUAqsTjh Bn9mt+f1my0LxgkHPEvcmgjUTKzoSYeGwbmDQx6IKoXjoug7F3tju3uKw0sba2+XEplF yQ== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2130.oracle.com with ESMTP id 36tqxbapqk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Feb 2021 07:19:39 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 11M7EeNb161412; Mon, 22 Feb 2021 07:19:39 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by aserp3030.oracle.com with ESMTP id 36uc0kwq89-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Feb 2021 07:19:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BjDm3yeDNWuqmANqky/rrzqhtfgMnKhiaLy90aYRoYTdy8WCujN2yQMRtC03StVlo4FvRDMR+qLZa9uNr5LuKx4S7jRK9aJwYW89AQKpq+M/idA8bedF1sDfOdsV+9EV+//CLYiP/4K9FClE2SX2LeXyv6EqO04b+EKYSUCsTcogjik5qbZiOWOxUu8oNuEBnM0RfDhlcUvut6OC63ILvOBA5SKErCc8UoOdoJjrTLSGWe9ILoo+P8/TKrcYKOhQ/nSKahNp6NgZ5IFmThGf1GuPNBtR+4W7NaC8REYiygXiIUdDI6GmrxJr7eVRwd0L/WzyyVeQry6pHVBopRFfEA== 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=0nV3zfC/UgGXZeUwRNQ97yldwt1uNKkrTlJqStzf+qg=; b=Iuzy7DvtnBuHRvuqkj3F9+PS8dlM4vLe7j9guha8VdenhCHweM/Fyx1R9Yvdeio7q6IqT4RVKyF4GFtdueWtPUMgmzqaA7a7FFnORjcnxE9ht2Cs+nLF0F0PEqLw2KIRVxPaXfWP474fi25ExmhycCLJyfyeh2beqD59f+P0ums9JZhtFQPQHwzwOosllyqmPO8Rw4+Q4ekdqd+zHY8SvDJwqWdSYcwHtA3jLlXucgxBohAt6Rwxss+mn5vj9JRGUxogzf9kXzauRc1hEBFt3ItGiMrDNedsgGvfYbYYGVQPNxVfdEI+YZ5hwQHSyzqW64JOTZbv/rxn4IEyy+5Lpg== 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=0nV3zfC/UgGXZeUwRNQ97yldwt1uNKkrTlJqStzf+qg=; b=jvz4p0BKo9XpMNR9xOcCnO+Ws5XuGeWfHx1OVbrQC8ef9Qa+Y7cfpvBOT0vuWwkyUi/i8n+dgnb40Ted3OSDCZ5Ca0G9b0sDi9S6c17LdITiCaezGYn8Belz7rWogTlJPCSRi3hSmi3sR6fL1k9H/LE/NPnVgckRiEhb1eMG8IM= 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 SJ0PR10MB4605.namprd10.prod.outlook.com (2603:10b6:a03:2d9::24) by BYAPR10MB3191.namprd10.prod.outlook.com (2603:10b6:a03:14f::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.29; Mon, 22 Feb 2021 07:19:36 +0000 Received: from SJ0PR10MB4605.namprd10.prod.outlook.com ([fe80::a021:790:7ce6:6f16]) by SJ0PR10MB4605.namprd10.prod.outlook.com ([fe80::a021:790:7ce6:6f16%6]) with mapi id 15.20.3868.033; Mon, 22 Feb 2021 07:19:36 +0000 From: "Ankur Arora" To: devel@edk2.groups.io Cc: lersek@redhat.com, imammedo@redhat.com, boris.ostrovsky@oracle.com, Ankur Arora Subject: [PATCH v8 00/10] support CPU hot-unplug Date: Sun, 21 Feb 2021 23:19:18 -0800 Message-Id: <20210222071928.1401820-1-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.29.2 X-Originating-IP: [148.87.23.11] X-ClientProxiedBy: MWHPR17CA0065.namprd17.prod.outlook.com (2603:10b6:300:93::27) To SJ0PR10MB4605.namprd10.prod.outlook.com (2603:10b6:a03:2d9::24) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from prion.us.oracle.com (148.87.23.11) by MWHPR17CA0065.namprd17.prod.outlook.com (2603:10b6:300:93::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.27 via Frontend Transport; Mon, 22 Feb 2021 07:19:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 20614f1a-584e-4424-22aa-08d8d70235d7 X-MS-TrafficTypeDiagnostic: BYAPR10MB3191: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /TEy4TTWLmn+gpKBXTuSWfGLObSKzzjYP9p8jK3CgBb//4CiXoMawydWYqjxEJOqYQdFiXdkUbY7P/3iq6dG35JLqaS/3bI4hfWCnS3B1hc270tAEd3HYUQPIOnvnPJGKVlJe6pVWY99N5IKr9IXz1WqSls7HCU6SAWpomKHLQyWCm+gHxj4gREkMtbWjNhBsbxJETKQ7O5meyhvuyohnOVb9mK4DRVnTpEhScOGQ7rzWGeoWWncMsTcds5bEGchO12QWl15mTtGWWxlabr0OMyqty4cI5epnrS72Sooi6LR2I9cJS1MBcg8xpuuIPJXfUlMKTGUKXBJNWbwT309tYDatXVBKRmyAE01h+esspaHGRcxmyGmpZ0lfFYGOp6W4dUfqd5N5CA06z5M+iUF8eIwegNIQoK9SrbH+3fEeK67W9/V/lkP7irB2emG/yDDVFLrJQV3nLxWHiXeu9K5WC7hfDN13GiwWT8vZbdJYU+zKVvajSG9xFZHSHYkvspJTAEVyLwvnuZ9KIj+RVwsdKag5d0JCGva1LpdIlJNQwMLsOmwQ/KExGImOa8pukcgpRhl5heCptf1lMht3NdpzUkb4WgqTCGXb6dpiUFGH/s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR10MB4605.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(39860400002)(136003)(346002)(376002)(396003)(366004)(2906002)(8936002)(316002)(83380400001)(478600001)(86362001)(8676002)(19627235002)(6916009)(6486002)(2616005)(186003)(16526019)(956004)(26005)(107886003)(5660300002)(7696005)(52116002)(66946007)(6666004)(66476007)(66556008)(36756003)(1076003)(4326008)(966005)(103116003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?s9EZPr3hK3VXFXCSDu4bgTOqb3irt6S6dps8PQ0J0hNw0NQBqoHpouYz7uz3?= =?us-ascii?Q?5eg9qgKhGYURYj07SI/iDSXrdyTstg+a+c5gewoR3chlE+UeLyX8YQVqqFkQ?= =?us-ascii?Q?Fxkc5wxSmxDLuI/2t9gHOX8BKVv/skb8KYdZrQrGfy0zzsgiSFEESEI9uEPD?= =?us-ascii?Q?eLLPPvHQsSs+o6MbbTeNMdGLfhD1f4A5CUqWrjsjoi/Dupo1/oWAjBbi4CUF?= =?us-ascii?Q?G/luNVgE+C8PFtXJrEnZfXtZhjH5ubOGAaX3LliL1hNKYi+dLK6V6QbsxYXj?= =?us-ascii?Q?ZyNlj6rQbLEh7CueulmOzHgM433tP4NIfWNkCEXJ35B8TJUQlpHVaLNTmMG+?= =?us-ascii?Q?Ce0XhX/8gnbqVYb+VLkZCPjgfRDffxjLKuMGArU0LS7F+OloobFYoDHw0GcG?= =?us-ascii?Q?JG5kwCNz7RWEuH79zKkxDTartU3cdXVTHbovUP8LOWgGS46K8K7eQ7AQVSil?= =?us-ascii?Q?TyWHBwx1ssg66rhgsbfwCe3qJAdA2sqra/mWdgCFc2hs7nOGj9ofGQ6hmTfp?= =?us-ascii?Q?ivpyDSaYwtj8OYfALUlIoXeJ+Sj/kl/7mobfj6yC7Pa9z6/DT+3CdUhVV2sN?= =?us-ascii?Q?ZxClOorHRvwyVVEqrBHBeWiAku53v+0xBN+b67lbq6X4QA1B7D7emdQNrj85?= =?us-ascii?Q?CRdq0LtopYelZvPH7oT3eRmqLwrWC/OqMOpsBigX111Ilqei1TycEuSnkQPP?= =?us-ascii?Q?aOvdEGQtMgzgnnEFeYBoHnYSOSlde9mJZrUTqxhwqK+98ZkxRoCb2fAN/yGq?= =?us-ascii?Q?NZkGN+d4/YybWjC97i0xVXjRpHggQqg9uWj/SYcu5u4C0N5JM4g/ONZvDYAt?= =?us-ascii?Q?o+qSlSixkYZk2fPM2p8DtCCbym4LPKZLGSKmrPo0ynOH2QhELgn5euSRdTrf?= =?us-ascii?Q?2odyTQN0uqaFV3Blzqu3sSUplwP4FYn7pGsqtwaSryhVid11mhJDd+TERaNC?= =?us-ascii?Q?IYah9NNxaz9YCydtJr8V2g58agk6AqoI/eHChrMuEmjZ8mBE/5QrIns/ltRs?= =?us-ascii?Q?EiAPeqocLOaxsCWMgWnV5PWiLsb5Q7pYfhsfTz7NI28wjfywbzOBkoFZ+MAw?= =?us-ascii?Q?oSRHcza5tE80jX5LMF+FO1hBsWfWY9o6sMxhgamCd4zltuMoDVfTf04WXQAS?= =?us-ascii?Q?p9fDEm0gINXvrkcdCeYTjWdWcb6wcKXdM9rAEX6MFpy6qj94C8DPxDAsvvi5?= =?us-ascii?Q?gwLqF4NYBaoRMvgK1sADrJFZ8M04hwhOAnpbItEltQpysLJkH1B73Bq3GR+X?= =?us-ascii?Q?Hwn/2yBDzgH1aTlsbZhF4tnqbHcfgCFmVG6ngkvNRih2j1KMghHppeBeOggG?= =?us-ascii?Q?QOf0WdiJM/HqCASIDZ32QQj1?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20614f1a-584e-4424-22aa-08d8d70235d7 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB4605.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Feb 2021 07:19:36.8492 (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: aWa+t5Qlu6uwrU07SytcpT2PxRC0RnLy7tWJvK6hOdYWxb2B5lDSbprLFdx3ZDW1+sHzkgIgy6lhboQ4FwTy0kfly1eeddNtnBtSWyaR2Bk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3191 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9902 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102220064 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9902 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 bulkscore=0 adultscore=0 priorityscore=1501 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102220064 Content-Transfer-Encoding: 8bit Content-Type: text/plain Hi, [ Note, v8 is substantially same as v7, but fixes a couple of CI errors. ] This series adds OVMF support for CPU hot-unplug. QEMU secureboot hot-unplug logic corresponding to this is in upstream. Also posted here: https://lore.kernel.org/qemu-devel/20201207140739.3829993-1-imammedo@redhat.com/ Testing (with QEMU 5.2.50): - Stable with randomized CPU plug/unplug (guest maxcpus=33,128) - Synthetic tests with simultaneous multi CPU hot-unplug Also at: github.com/terminus/edk2/ hot-unplug-v8 Changelog: v8: - Fixes a couple of ECC issues in the code (in patches 7, 9) v7: - Address review comments from v6. - Fix ejection bug where we were using APIC ID to do the ejection rather than the Qemu Selector. - Describes safety properties and ordering needed for concurrent accesses to CPU_HOT_EJECT_DATA->QemuSelectorMap, and CPU_HOT_EJECT_DATA->Handler. URL: https://patchew.org/EDK2/20210219090444.1332380-1-ankur.a.arora@oracle.com/ v6: - addresses v5 review comments. URL: https://patchew.org/EDK2/20210129005950.467638-1-ankur.a.arora@oracle.com/ v5: - fixes ECC errors (all but one in "OvmfPkg/CpuHotplugSmm: add add Qemu Cpu Status helper"). URL: https://patchew.org/EDK2/20210126064440.299596-1-ankur.a.arora@oracle.com/ v4: - Gets rid of unnecessary UefiCpuPkg changes URL: https://patchew.org/EDK2/20210118063457.358581-1-ankur.a.arora@oracle.com/ v3: - Use a saner PCD based interface to share state between PiSmmCpuDxeSmm and OvmfPkg/CpuHotplugSmm - Cleaner split of the hot-unplug code URL: https://patchew.org/EDK2/20210115074533.277448-1-ankur.a.arora@oracle.com/ v2: - Do the ejection via SmmCpuFeaturesRendezvousExit() URL: https://patchew.org/EDK2/20210107195515.106158-1-ankur.a.arora@oracle.com/ RFC: URL: https://patchew.org/EDK2/20201208053432.2690694-1-ankur.a.arora@oracle.com/ Please review. Thanks Ankur Ankur Arora (10): OvmfPkg/CpuHotplugSmm: refactor hotplug logic OvmfPkg/CpuHotplugSmm: collect hot-unplug events OvmfPkg/CpuHotplugSmm: add Qemu Cpu Status helper OvmfPkg/CpuHotplugSmm: introduce UnplugCpus() OvmfPkg/CpuHotplugSmm: define CPU_HOT_EJECT_DATA OvmfPkg/SmmCpuFeaturesLib: init CPU ejection state OvmfPkg/SmmCpuFeaturesLib: call CPU hot-eject handler OvmfPkg/CpuHotplugSmm: add EjectCpu() OvmfPkg/CpuHotplugSmm: do actual CPU hot-eject OvmfPkg/SmmControl2Dxe: negotiate CPU hot-unplug OvmfPkg/OvmfPkg.dec | 4 + OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf | 2 + .../SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf | 4 + OvmfPkg/CpuHotplugSmm/QemuCpuhp.h | 7 + OvmfPkg/Include/IndustryStandard/QemuCpuHotplug.h | 2 + OvmfPkg/Include/Pcd/CpuHotEjectData.h | 52 ++ OvmfPkg/CpuHotplugSmm/CpuHotplug.c | 583 +++++++++++++++++---- OvmfPkg/CpuHotplugSmm/QemuCpuhp.c | 106 +++- .../Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c | 138 +++++ OvmfPkg/SmmControl2Dxe/SmiFeatures.c | 18 +- 10 files changed, 796 insertions(+), 120 deletions(-) create mode 100644 OvmfPkg/Include/Pcd/CpuHotEjectData.h -- 2.9.3