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.web10.4850.1615530443436306720 for ; Thu, 11 Mar 2021 22:27:23 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=hjKkHojq; 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 12C6AP2d178589; Fri, 12 Mar 2021 06:27:20 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=ISCXpDOj5a8zRtidYkvfukmM3hiGm7++3qxBHtTwxe8=; b=hjKkHojqG/RQt4pQEzZxpike459YCYtAgq8VhUM2igFb+DJwajSf2X6LYLGddbIs//Y0 lCvccODEyR8lEhOfh5ovV266XWpQfdLklPaXMYP2u6DhGjXE1aE+27HWj6fvTu97grcR 3Rr00fBum5t11RopAbr2QXLraxqYU2rzb3AsQ9j73Zq1zjoQBQPPmJigmwQKhAjlDlmA gH+lBXiscbzG7SkWxFijzxBKQOzUFJH+QrZz7oBTMd+LgJDcd0RUKOpRtZBBgLnPno/Z 8zyz3geiAVKw4LOyAvXofIEgooEXOsGiQQsA9pOaKPIOdLPVK4Yz5D4Mpef1rKZPJLFX Ug== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 37415rgyes-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 12 Mar 2021 06:27:20 +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 12C6PZJ6028260; Fri, 12 Mar 2021 06:27:19 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2100.outbound.protection.outlook.com [104.47.55.100]) by aserp3030.oracle.com with ESMTP id 374kasv216-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 12 Mar 2021 06:27:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n/m9z3mIfRjH4l/OGXO9p5eJS/tVsycxYRttW1gxn96iNtSZZ/Ba8AGjdTgGsrNMnemQRbVGYXstr288hR7uOyEZar0SLuBFAGPkHytws/JRvzze1C412aaXzTeT+UrOkCHngqNF/NTlW8dRDsxFMJgmgz/ik6si+vWAqtFwcLCIqu3z3/RyC1UiCmoAhlFOoXf/UgkDwTH8br4PL6RxgSaUZZTE4wh2qXDVOCj6e7gv1nLRpwdHs+1p6mWu9QZov6sFV/q8SLD05dpJmLxNClYxYaVR7cuoVn/ckXfln/hndvKfhwXKnTrLhHG7yPDkQYvto13RB4jNrIbC/FD5sA== 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=ISCXpDOj5a8zRtidYkvfukmM3hiGm7++3qxBHtTwxe8=; b=VqzsfMvGqn0XkU72FSuMS6t5BLdJex2K1FXOtmxvJSb57e7PBEwVvIhx4nnLvYJWGFxpH8pUuK8XCQNd9tuT2XO9Dcyu12yp+dp8M13nIV/cq4WQqqIWDM6Q5CRLjXrPv8B9QoA7EiMkXvIe7g1tbQxz2uYGE7qP0UD6pUOUcu9kpylA9ac6nnliBRBOXksO2bqgul3HknH8tcLQspHXbQihyqbfqLamKLkw0/DBqZzvCudzW7JAtVm83UnsYe+p4BbBhF4QExA9+TftdwUSz4UyExfTD0MTX+Ev2KC3xciTma+n5wjlBujj6on7g14K9CiEYlxGzMA9Qq6Ch96n4Q== 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=ISCXpDOj5a8zRtidYkvfukmM3hiGm7++3qxBHtTwxe8=; b=odI+aYif+yoXKg9c/xe2SjaIWSWjq++qe+2AEkQ9A4NvcZzDvKj5KNdRVpik0t8OdIp2PbvlAVPb6miI1/uVii3NnVbMNWEVU3ESVbXOcAmBrnFPJw64zKXrp93yoia6uAg4wJUXZFxhnfHNOJX1yDmZoyxYvq10HtWMfp4Q7Tk= 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 SJ0PR10MB4544.namprd10.prod.outlook.com (2603:10b6:a03:2ad::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.31; Fri, 12 Mar 2021 06:27:17 +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.3912.030; Fri, 12 Mar 2021 06:27:17 +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 v9 10/10] OvmfPkg/SmmControl2Dxe: negotiate CPU hot-unplug Date: Thu, 11 Mar 2021 22:26:56 -0800 Message-Id: <20210312062656.2477515-11-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210312062656.2477515-1-ankur.a.arora@oracle.com> References: <20210312062656.2477515-1-ankur.a.arora@oracle.com> X-Originating-IP: [148.87.23.12] X-ClientProxiedBy: MWHPR02CA0018.namprd02.prod.outlook.com (2603:10b6:300:4b::28) 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.12) by MWHPR02CA0018.namprd02.prod.outlook.com (2603:10b6:300:4b::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Fri, 12 Mar 2021 06:27:16 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0234e88d-4e57-4aa9-987e-08d8e51fe23a X-MS-TrafficTypeDiagnostic: SJ0PR10MB4544: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bchyoEFcvJhYxMjYS0RY/d9FgpELm0+tHevD0rdRk7NmDeMfyCPxdMNtCFvXTq22qinX2Z/M+UcVa9HK/ySLyud6tl/5bG+TCU3a1zrlnSpfyE12AdFfq+NjP92OvuzJ5qRsRbsoxcH5YWnu/N24WocFQzIUW0drixdyPIGiv4CbZNYtGKL7cRzVOaTumvuTbzcpf34HJnqbKRyXHbS2lpE0pExlqa57sWHBgujGHQlDBI+l/hCo+Lr0CxrST1hn8n8zsonGvNTjWpBag+F3Zne78NmGjaeYLIsTFjTCkB0LnTsiB35Y2kh3MgBupsnFIJSwa17EqVp6QUCGjz08N+tpa3jttuSQlMdHURd4pUBljlg5WMUvjSWW+snfvh0HHvBU2hB6qPjGcxrZe1L98grIFMjTaj/l320MSY3c57l+/qYt2SintxG7UD8E2EVGcBRbkw2GwhEiTqWbnWp3qlDN0B8/dIKe/TZrJTJGaBCFNSse3+543xRi3oV4XR9SinUI4yI/WZNrjOqqG83N6Y7cC+fnjdVPhKiuusYKIYcY5Av8TixUixMJpydzCecfnzkhTttQ5f6UGLIYz2l7VoB+V0CMVTCMEvdKHcvTbtIC0DBhUUBdMIB/PvqR/ZnPlA5b/DzbIDD/N7evVwrG/w== 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:(396003)(366004)(39860400002)(136003)(346002)(376002)(956004)(83380400001)(1076003)(26005)(2616005)(6666004)(107886003)(6486002)(6916009)(66946007)(7696005)(4326008)(5660300002)(103116003)(66476007)(86362001)(36756003)(8676002)(19627235002)(66556008)(316002)(2906002)(478600001)(966005)(54906003)(16526019)(8936002)(52116002)(186003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?bMOYh3lS7DWFpxPN2kNyRaaM692WiLzDV3xpnINlJ6hevnLd+JRNTblqwS/9?= =?us-ascii?Q?D7b2SUHJq+Sx7LE7qoX69fWbbPuaLX66AQR/R4cJYnMAMp6qkkNKfLaSUxlO?= =?us-ascii?Q?o1rKbKqbC33QdKGr1EuGX0KNrpFPY5BmFALg2TmhMo9N8IFjngwSzxFOL9nq?= =?us-ascii?Q?WJt0qGaR4PONM+tbfEYr3jPHfIVNUJ802sjBr/b93Lb/BwwFOt10XCV9gBdC?= =?us-ascii?Q?pgzBr9pAfU+vXhBeAtjUgLLX6WmKTrVez+YwKpzG5Z3PUJQG+RwyhXRpWodq?= =?us-ascii?Q?qcXqyCHo+MqLslhxd4aHPbbKqzCRMwCLuUCpS6Qqy5qg5aBfUKUhne5TeEmW?= =?us-ascii?Q?QhkkmtQMbN7bY5H8SXNg6u5SfWlzVs00rxGAxhQr9c64Zu2J1gn93uKiDisa?= =?us-ascii?Q?LSKznqp+TGknHo1jPHDUidpq+6Hh969YUy8ftsxZ1ZvX1hB3KF6jSTU31Z1l?= =?us-ascii?Q?KVdFUWTWw14XFRyVzfgTa+lN7WCQTNpv3A9p8SNkHS1aElKEJ4gDq4o1ur1I?= =?us-ascii?Q?hYh4bHnoV1mWbwzo7FFNNxUQg/UTNcc4skI7P2V9M93SRXjyzocpQz6gyMky?= =?us-ascii?Q?jbClLWWBrGe9ZQnu1oBPRrR0NX0lZCnn530ecvyO7vOkSXBCbN9AGO2lkDio?= =?us-ascii?Q?964TZV3zlEGXefXk7oV2WvhqnUJ5k1k6q0Ja0bBWUgricmCzJzbpz0AnXgyg?= =?us-ascii?Q?n+C7WtzAwVN+P6cfB8CPZxEC/Vcf3ePTab6aEqKEuYNth/7UYKZCggqCKDRB?= =?us-ascii?Q?e2UXCoFdvoJwhjJXmpClkK+hK3c9BMhh2AssomMlGU+nJ3FXfb5bHJsohNAP?= =?us-ascii?Q?UfEzFsmuu6nc+wsXuniqoVMb99MSKV5We6DT3c9hDrPNursy+pfkPhs/S4aL?= =?us-ascii?Q?pbFXLtKgWQ8j045oiAsdCup4luKpTfjYi4QyIjdJFTjK1PcfT6U9EpOh5cha?= =?us-ascii?Q?/Zj+RMyNwGa5FuQ3cx8D2XDwP1OUldT/9N35Vdh8bY+4eh9jK9FMUVmytkNP?= =?us-ascii?Q?YC6A0VvylmoCz1gENKWgZdJzQa+YkhN5gstURCl75t4Qh2eMBbsr4ehTJ7Ve?= =?us-ascii?Q?YYUbGGBxRC6wUjhiUMn7u+cAWz+mQf2oR2CSYRkuAw8EcgLKHv/QemsV7T69?= =?us-ascii?Q?TW3BGRm3R/iXHZOmwbAFeW7x/MZErgb5V4BdLpsxYWzFeftHguK3pFx17o8N?= =?us-ascii?Q?xhh+hxlmmQTE3fBXcWe+jPFzF+ZZ37k8y9LGhad/UI+aqYB/8rhwdntQK0r0?= =?us-ascii?Q?7c9fihutqTPw+zhT2mN/63AsFJbafqHwxP6iFwrtdj7QbRPyIblAYiu8Pzdj?= =?us-ascii?Q?OvkQwuQYPw0ERWyk/OLAzBTK?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0234e88d-4e57-4aa9-987e-08d8e51fe23a X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB4605.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2021 06:27:17.7174 (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: uSavlIv9wnnwZp1toZH59uxhuqgHn16zyGGVpx1TQQ50QU7R0nCs96T/1kdNEeMKaJiOjpEWsxGiv4ax7FVpYde4nIN7KHZ9WP5i2e4duC0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4544 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9920 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103120044 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9920 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 lowpriorityscore=0 impostorscore=0 mlxlogscore=999 malwarescore=0 suspectscore=0 adultscore=0 phishscore=0 spamscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103120043 Content-Transfer-Encoding: 8bit Content-Type: text/plain Advertise OVMF support for CPU hot-unplug and negotiate it if QEMU requests the feature. 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=3132 Signed-off-by: Ankur Arora --- Notes: Addresses the following comments from v8: (1) Remove inconsistent comment style (and stray newline) around the newly added ICH9_LPC_SMI_F_CPU_HOT_UNPLUG. (2) Remove spurious empty line. OvmfPkg/SmmControl2Dxe/SmiFeatures.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/SmmControl2Dxe/SmiFeatures.c b/OvmfPkg/SmmControl2Dxe/SmiFeatures.c index c9d875543205..3e2e61e4dbd0 100644 --- a/OvmfPkg/SmmControl2Dxe/SmiFeatures.c +++ b/OvmfPkg/SmmControl2Dxe/SmiFeatures.c @@ -28,7 +28,12 @@ // "etc/smi/supported-features" and "etc/smi/requested-features" fw_cfg files. // #define ICH9_LPC_SMI_F_CPU_HOTPLUG BIT1 - +// +// The following bit value stands for "enable CPU hot-unplug, and inject an SMI +// with control value ICH9_APM_CNT_CPU_HOTPLUG upon hot-unplug", in the +// "etc/smi/supported-features" and "etc/smi/requested-features" fw_cfg files. +// +#define ICH9_LPC_SMI_F_CPU_HOT_UNPLUG BIT2 // // Provides a scratch buffer (allocated in EfiReservedMemoryType type memory) // for the S3 boot script fragment to write to and read from. @@ -112,7 +117,8 @@ NegotiateSmiFeatures ( QemuFwCfgReadBytes (sizeof mSmiFeatures, &mSmiFeatures); // - // We want broadcast SMI, SMI on CPU hotplug, and nothing else. + // We want broadcast SMI, SMI on CPU hotplug, SMI on CPU hot-unplug + // and nothing else. // RequestedFeaturesMask = ICH9_LPC_SMI_F_BROADCAST; if (!MemEncryptSevIsEnabled ()) { @@ -120,6 +126,7 @@ NegotiateSmiFeatures ( // For now, we only support hotplug with SEV disabled. // RequestedFeaturesMask |= ICH9_LPC_SMI_F_CPU_HOTPLUG; + RequestedFeaturesMask |= ICH9_LPC_SMI_F_CPU_HOT_UNPLUG; } mSmiFeatures &= RequestedFeaturesMask; QemuFwCfgSelectItem (mRequestedFeaturesItem); @@ -166,6 +173,13 @@ NegotiateSmiFeatures ( __FUNCTION__)); } + if ((mSmiFeatures & ICH9_LPC_SMI_F_CPU_HOT_UNPLUG) == 0) { + DEBUG ((DEBUG_INFO, "%a: CPU hot-unplug not negotiated\n", __FUNCTION__)); + } else { + DEBUG ((DEBUG_INFO, "%a: CPU hot-unplug with SMI negotiated\n", + __FUNCTION__)); + } + // // Negotiation successful (although we may not have gotten the optimal // feature set). -- 2.9.3