From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from AS8PR08MB9837.eurprd08.prod.outlook.com (2603:10a6:20b:616::21) by PAXPR08MB6942.eurprd08.prod.outlook.com with HTTPS; Mon, 21 Sep 2026 15:44:29 +0000 Received: from GV3P280CA0080.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:a::29) by AS8PR08MB9837.eurprd08.prod.outlook.com (2603:10a6:20b:616::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.13; Mon, 21 Sep 2026 15:44:24 +0000 Received: from WA1PEPF000099CD.eurprd04.prod.outlook.com (2603:10a6:150:a:cafe::1b) by GV3P280CA0080.outlook.office365.com (2603:10a6:150:a::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.16 via Frontend Transport; Mon, 21 Sep 2026 15:44:23 +0000 Authentication-Results: spf=softfail (sender IP is 99.81.216.78) smtp.mailfrom=openvz.org; dkim=pass (signature was verified) header.d=openvz.org;dmarc=pass action=none header.from=openvz.org;compauth=pass reason=100 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning openvz.org discourages use of 99.81.216.78 as permitted sender) Received: from nat.eu.perception-point.io (99.81.216.78) by WA1PEPF000099CD.mail.protection.outlook.com (10.167.242.21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Mon, 21 Sep 2026 15:44:21 +0000 X-PERCEPTION-POINT-VERDICT: CLN X-PERCEPTION-POINT-SPF: X-PERCEPTION-POINT-SPAM: PASS X-PERCEPTION-POINT-SENDER-IP: 2a00:1450:4864:30::f X-PP-Forefront-Antispam-Report: CIP:2a00:1450:4864:30::f;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wr2-x0f.google.com;PTR:mail-wr2-x0f.google.com;CAT:NONE;SFS:(13230040)(3072899012)(82310400026)(2092899012)(260918224100599003)(260918215300599003)(43022699015)(6059299003)(12012899012)(10067099003)(3023799007)(6133799003)(19002099009)(5023799004)(55112099003)(22082099003)(57112099003)(16102099003)(18002099003)(5063699009);DIR:INB; Received: from DUZPR08CU001.outbound.protection.outlook.com (mail-duzpr08cu00104.outbound.protection.outlook.com [40.93.64.68]) by inbound-smtp.eu-west-1.amazonaws.com with SMTP id r85lovpcq8v9g8s5k2emefk373cka3j6pocojdo1; Mon, 21 Sep 2026 15:44:19 +0000 (UTC) X-SES-Spam-Verdict: PASS X-SES-Virus-Verdict: PASS Received-SPF: softfail (spfCheck: transitioning domain of openvz.org does not designate 40.93.64.68 as permitted sender) client-ip=40.93.64.68; envelope-from=den@openvz.org; helo=DUZPR08CU001.outbound.protection.outlook.com; Authentication-Results-Original: amazonses.com; spf=softfail (spfCheck: transitioning domain of openvz.org does not designate 40.93.64.68 as permitted sender) client-ip=40.93.64.68; envelope-from=den@openvz.org; helo=DUZPR08CU001.outbound.protection.outlook.com; dkim=pass header.i=@openvz.org; dmarc=pass header.from=openvz.org; X-SES-RECEIPT: AEFBQUFBQUFBQUFFaXA2WlQySjI5R0kvckxWazRXOFZ6TFhXVGwwMFc5UFdFQkxmbjNzWlhpbnlSaEZaZU16SU1YYnhINzBCTVdaM2ZNRWU4Zjg0Q21TWDZ3UFZhcWp5cmFXMFd2K0ZYeFRBdGt2eCt4MTIyM3ZCdytIWWtSVzAzREtzSzZVTlZaeFBEa1cwYS9CZDBJMkRMblNvNkZYbUlKWmx3SVVWUGJ3cnZHK1VsTzRhUlRvQkJETDI0Z1NUTk9aNGpHbHZ5d01WK1VCMWttNmFHc21DM0pENlE2Sys2K2d4WXBWZmpoNnVBaUpFWkxlQlVWT29LbVMvbE02eCtYYVhWeS9tVW5HZUM5TDU4Ym9nZ2wxcWVBcDFUckN5Y0JIazIralhZMkUvdytQL2RYMGp4SGc9PQ== X-SES-DKIM-SIGNATURE: a=rsa-sha256; q=dns/txt; b=LR3TNQYvTc9o7nWwDLDxrLh3FvFAjCzMZqJ6COiIglglEVRKEJGjLfgvQsa9vkN1qaaICmCRdzbv9/BAV282xvfJsf8eA9T3PlFjEqeAeTKy+VRTFoXwTxloNeD6gaVfhslCPoq04FJHjNiBZ4muApxDMNKrNL6t/wJgSfIzM7s=; c=relaxed/simple; s=shh3fegwg5fppqsuzphvschd53n6ihuv; d=amazonses.com; t=1790005459; v=1; bh=UoKM6HR/Cl+Ls+rucjT/YnxhJiuILArcjlRH+4J4Hhs=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT; Received: from DU6P191CA0016.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:540::10) by AM9PR08MB6194.eurprd08.prod.outlook.com (2603:10a6:20b:2d5::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.13; Mon, 21 Sep 2026 15:44:12 +0000 Received: from DB3PEPF0000885B.eurprd02.prod.outlook.com (2603:10a6:10:540:cafe::20) by DU6P191CA0016.outlook.office365.com (2603:10a6:10:540::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.16 via Frontend Transport; Mon, 21 Sep 2026 15:44:12 +0000 Authentication-Results-Original: spf=pass (sender IP is 2a00:1450:4864:30::f) smtp.mailfrom=openvz.org; dkim=pass (signature was verified) header.d=openvz.org;dmarc=pass action=none header.from=openvz.org;compauth=pass reason=100 Received-SPF: Pass (protection.outlook.com: domain of openvz.org designates 2a00:1450:4864:30::f as permitted sender) receiver=protection.outlook.com; client-ip=2a00:1450:4864:30::f; helo=mail-wr2-x0f.google.com; pr=C Received: from mail-wr2-x0f.google.com (2a00:1450:4864:30::f) by DB3PEPF0000885B.mail.protection.outlook.com (2603:10a6:18:3::606) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Mon, 21 Sep 2026 15:44:11 +0000 Received: by mail-wr2-x0f.google.com with SMTP id ffacd0b85a97d-486e1a044c5so2219681f8f.3 for ; Mon, 21 Sep 2026 08:44:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=google; t=1790005451; x=1790610251; darn=virtuozzo.com; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=WenBypw5IUiW0P3XjemBqzOvzeoG+JWIPFZR75X7XLw=; b=rPqjE5TqPFnwmtwuIEKHgn2ASqF/GCOYQAoc88AYJ2SQhhzhbTDeE7I219QCzkmIgS 0aB/xRcZbd7Gw7GsGGGVJ3M0qPIZbanDpiuy6drv8wz+MtuVeNH8aiPtsEjGpA/rh7IB 1oXGfQ6Q3SYK0+xRu3ZegbHGFv/afJbca0SpqgVmev7qUv2SutZme9PiTFjLpNhZvUQB kkYeXo236ACu1GH0W47al6aX5K0iH71+DDkTT45sz7S0wasVkwVTc3pfkGlCnh1ZXiBl hxpH1ukiJ+sWvnq8l4opk8ltczI7ex/SlYeCus7T4W1/Qj4ok1CJ3lbv6xEdJVvDYNZj AJiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790005451; x=1790610251; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=WenBypw5IUiW0P3XjemBqzOvzeoG+JWIPFZR75X7XLw=; b=gOkducuMTza1O7pZcsL77yXzI5dq5AxUidVGl2AFpvCJuTn/vgiSmlVFR9NRT3Gj5U e7ATRIY/RZk3/8h7I4yRG8RQ5PbilpUt+2h6wXlKBUu3LxbTwXwvipzs+EDPlbzhqpMM VhnVQZzBoFCNv9KOIinXBIOvpGz/tHOk1LrPFQlLGjXQHI72x0wV9j/BL2L2hraAi48B PEpwyM3sVgsjLsKPkfgHR4RFLAU+w398zt5lYQgMEpwV9IvFEPW5zcsmkZajYhcpvvFU 8Pw1egSubvRp+Vh4I26wNwpnCkgVuBiqagcEQwwMeRfrHUOtWn7U35/LWt934jUCYTol n9Wg== X-Gm-Message-State: AFuF++lwV5l8Fp2iSpVKnAbnY4wI2HbhvBMJHB6zYXeu7G3BQTQJrV1s ZOR53sk3nEd1GrRnIgRmBaTNqhvqerGolbSxw7C2VwVDUdtJQqVYpU8oScb/DQG97E4AgUWyndk 58b1lymY= X-Gm-Gg: AYBFou2v7U8zpctLJRZbkXHb68HuRfEbv6ZXvpo4EafDqJpRgNTBsBnY3sPU8SRi2Oo sVSBH5cg546DbUbkA2FXiKla9NBY55HV919g9PklZnY4WpGwjuVzh1KU/F9GGn6PVB+MgLXFAcv K/jHvOiPgFJ7fdLJE80070H1Yw+MTx4FYqyy4vjF8ra3JFmIMBT2hsUN7AkE4NPlgeI/qqt7G8Q QRxN0oy4rnaWZAaZn5DbXcXsuMkFZkcO9jFojaSSyjwpNiJ5cjf2pNYMlfLs86ghFLeSgtd0yfZ TE+620RZ8TjWmQu/V02Q1ignn/dFvk6ILJ6TsGWMYKlpK6fY/wIqNtzhjbJhnRBuQIwVUnKuM7G jyCARZhf269nb40JtdG/S22tC7TVvoFIrwi0tnYZKedFg3ysvmAUQid07CfQu3fayEgj/Dyvv1X G8QpHisGYuk3dYOdZZikKuE1kX3EKuVAsXS63DvSpvGbmKEMxJ6s2NPrSjPt3x2tFBrbE= X-Received: by 2002:a05:6000:38a:b0:487:144:ee60 with SMTP id ffacd0b85a97d-4871e21fd4emr14673914f8f.19.1790005451096; Mon, 21 Sep 2026 08:44:11 -0700 (PDT) Return-Path: den@openvz.org Received: from athena.sw.ru ([2a06:5b06:b600:300:5745:5560:519b:4337]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48724589c02sm23100972f8f.24.2026.09.21.08.44.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:44:10 -0700 (PDT) From: "Denis V. Lunev" To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, "Denis V. Lunev" Subject: [PATCH 2/2] UefiCpuPkg/MpInitLib: resend the Start-up IPI when an AP misses it #VSTOR-146639 Date: Mon, 21 Sep 2026 17:44:06 +0200 Message-ID: <20260921154406.1628753-3-den@openvz.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260921154406.1628753-1-den@openvz.org> References: <20260921154406.1628753-1-den@openvz.org> Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 1 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:1 X-MS-TrafficTypeDiagnostic: DB3PEPF0000885B:EE_|AM9PR08MB6194:EE_|WA1PEPF000099CD:EE_|AS8PR08MB9837:EE_|PAXPR08MB6942:EE_ X-MS-Office365-Filtering-Correlation-Id: fb49404a-61e8-41ee-650b-08df17f73510 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA|SL X-PERCEPTION-POINT-CUSTOM: vzpp X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|3072899012|82310400026|2092899012|260918224100599003|260918215300599003|43022699015|6059299003|12012899012|10067099003|3023799007|6133799003|19002099009|5023799004|55112099003|22082099003|57112099003|16102099003|18002099003|5063699009; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?jNMjMd5JM4iVZPA54EdQzsZAk+r03jzoFOsPuFQRbYRRkvsXm1t7sUHk2a3l?= =?us-ascii?Q?a29M3eTZMVNYDvfGNCdgyDIaQNktZlocShet9RfG2De88FpYPmhvA0nRs9FI?= =?us-ascii?Q?Crav0JPXfihD1rP384cC9D0/fm0x744QaHwR8kUFEquI2YjJkABaulD52F0D?= =?us-ascii?Q?WQ1yjQelCWDr583GN0eNlVJO1GnZE0FLc4vbUyi6SueBXgt9x0LE1sRv8cTs?= =?us-ascii?Q?lEVn4pIYTRIENkUczeFNBU+GBlxGxFSZk8x0mOg3dbQBrMzj2J3sjSDRSoBT?= =?us-ascii?Q?MlsyjXUtuffg4j81Pc4FFzOXOTUJbA7W3mmFOjSjx+ZL1Eu4F1GB6qjLIVx/?= =?us-ascii?Q?lJPXQa5JOy4SEUSK+lvJTvAS9aaeH4egRYWI9fldk4mTRVgqZhpGMzRowQ/B?= =?us-ascii?Q?/Q0NoaiEScaerfu/Us+OD3cuYAV1jonB0Hhd2uo/9STOW5K2I+WYkZUDVp5O?= =?us-ascii?Q?sd1Aud6C88EO4RQA8o3dsZHpU3XITV2YA3AxycOY8mfSFd59BHDbscDI5Oel?= =?us-ascii?Q?TcdxZUY397bWAkoJ7tm0oE9ZM39Esd+ZSSJGzlQc+g1nKviXbSoWhoXBMJtZ?= =?us-ascii?Q?WyX8UjoCADrH45W3xgpYdWNNPuKF9DwqLhgCU0acaKVDxLlO990uM/Wr+FkZ?= =?us-ascii?Q?NEXNaxaIZKQ55gro271W1+JUnmOA6VuwncjTwAtybnKUwrXx7obb+AUMono/?= =?us-ascii?Q?PxmxGhX8JYtveU9PNfzbLDDTbNd3ucv35/WPQ4OTWMs/P3UJPupWx7qhUeg7?= =?us-ascii?Q?wTmv8+i5bP3bIt+icPp3nxvDb73ef/OGa2VVjl6R93p1wEGZDYrWKFC1hwaL?= =?us-ascii?Q?9jfE9MhrI+wkBMxMgT48C6DSdIhh9qAq+Zoi3Vex9TNzH4NbjaB0xqjr4/ug?= =?us-ascii?Q?GixiY4olVAZPO9ZGMIsjXZ/duURwe+wYVXM/IUwNWQdRZmEH9Vb81tQ1uStf?= =?us-ascii?Q?pR7cB75IaSbuyUV6ZmSP605BzCIQmgd9Z4Vo2yptxwxuKFwaeWoJX+S5JKcN?= =?us-ascii?Q?pM5xpAsNgX/JItzWqXij+NJSnYNqQx51TF7Z0Ty0ADXYLZgGz6sdsOso1kIQ?= =?us-ascii?Q?1fvy85pyVD1WaUltGmU5GtQq2urX39zGR+GdBUhvv2Ffb4tbrpDol8psfxOx?= =?us-ascii?Q?ohsFwUlzmyR+cyWF2xXClEk3bYqDvhuZHkjG7xdjsq9+DOdjxE/w8kQkPzHN?= =?us-ascii?Q?ggqE7yuqKHVddejig9OTwFfvtzQuZodlbeeVidLelP2GRxa0EiUiiuja1NaJ?= =?us-ascii?Q?0RaoIu85LN3hsT21ZZNHKNXzO56a+euEKh1q7aU4G0bDuDfM4LuR3un/miaw?= =?us-ascii?Q?walMISaDLO7xx0Da9DR05tq0ZfND+Yv8M7l7Yj2uK9i1R3ef/2PIZTW4Kl7L?= =?us-ascii?Q?ZoZceliEa7tpc7LIvKi5tYez0zO5n42lyTv9R6Df6Fw3D2uKzfFc+CxzMbKK?= =?us-ascii?Q?XIYb7yjHOjlr6dDsHobML0yeOWwuYrVze8fqgSrjqWUzods+PX15OJY7S9+q?= =?us-ascii?Q?Um4VYqfp5AupPZEg+DsFiAsOzALzttGykXFit4H91KIGp9JJPPup8qrtlyB0?= =?us-ascii?Q?BKVe+kjM4zeD5R6PrQ+XPbSw0wkbIpP4wGmwfX6mZSHOeF1q6NcflqfuTtOe?= =?us-ascii?Q?16Vcy1PwcF+FeZVJdEsBj6JS8N233RmA+1L6rW36Ov4oMCj+1kgm76omzKmQ?= =?us-ascii?Q?kc7WVQQg/RYigAL6iigCKrNdA6S1vIQSqxu/LC4EtAPTNK5Z6+5fF3terE9I?= =?us-ascii?Q?hk+8DS3TdMWIKLmWA6s4PtVVpqLLwKwdmwdMgkDEfGd3IWvqLO1HOokrco66?= =?us-ascii?Q?fYhlnuWvUp2hS0xDtYUWRc/zDPJQ63whi4KquyHARR+SWYez+uDkq4iNIP9/?= =?us-ascii?Q?DjHrcqMpkGRDMl2QyRq9wxyKAC1TcKm1dgAujZkK0OU14Ksfujj8rvdUqAzl?= =?us-ascii?Q?20694jzPijJv+J0t6LfyyYW57Aiq7mEb4gIG1Qr99bqwUde49v0qXRGdvu8Y?= =?us-ascii?Q?xqCTVraSTk0kn+MPZhdworwNXN9yvary9QKsWC9b5OwDmaRVZfIfUmycfDHh?= =?us-ascii?Q?UYNkMPOuOTODvRWbGR/tOs99/STYpK2xafkW3dxEfg+5cRnyIEdlZfKdX4e3?= =?us-ascii?Q?PEP7Xs2KwCef2Vte8ur5kEbjSoxKgIaNSvLhNFkXp4b2SGQom933BVISXz2R?= =?us-ascii?Q?oFvqWmGZRUf8R67O?= X-Forefront-Antispam-Report-Untrusted: CIP:2a00:1450:4864:30::f;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wr2-x0f.google.com;PTR:mail-wr2-x0f.google.com;CAT:NONE;SFS:(13230040)(3072899012)(82310400026)(2092899012)(260918224100599003)(260918215300599003)(43022699015)(6059299003)(12012899012)(10067099003)(3023799007)(6133799003)(19002099009)(5023799004)(55112099003)(22082099003)(57112099003)(16102099003)(18002099003)(5063699009);DIR:INB; X-Auto-Response-Suppress: DR, OOF, AutoReply X-Exchange-RoutingPolicyChecked: GoVc4RtVr6/KZaE4ifzpgIBEFYJvyUpC3V7JY+Jj74AyZdS1N7opXBY1aNQPjcnAWBg0FAzGum1+Ehcd94LBTlS4z0G2k0N97ublO1BX2quTVInVDC/Bi7S9kRSNgubm7hdsnx9WV2hRJ+0uiSrS5WzdVgb58ig0BWa5x4daFLezNp5WD9fn/R9hTT+Vb09NKklEv2auKwocvzm2eAh30NZCayuUuZ9RiUzbRHUwa8BtmuJi1t1tKjnlNHLAp8cTajMLnKL2edkS9S8aNwr9O58sZ2qGEWsdKhEL9aNz2lDgp1uZ14eJw0lZjpT0lJCPWekZ9oKLls6ha0r1Q/13VA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6194 X-MS-Exchange-Organization-ExpirationStartTime: 21 Sep 2026 15:44:22.4527 (UTC) X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000 X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit X-MS-Exchange-Organization-Network-Message-Id: fb49404a-61e8-41ee-650b-08df17f73510 X-MS-Exchange-Organization-MessageDirectionality: Incoming X-MS-Exchange-Transport-CrossTenantHeadersStripped: WA1PEPF000099CD.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Exchange-Organization-AuthSource: WA1PEPF000099CD.eurprd04.prod.outlook.com X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Office365-Filtering-Correlation-Id-Prvs: 7a52e548-6354-4b57-6082-08df17f72ebc X-MS-Exchange-Organization-SCL: -1 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|3072899012|2092899012|35042699022|260918215300599003|43022699015|260918224100599003|6059299003|12012899012|10067099003|5023799004|3023799007|18003699003|5133699003|6133799003|19002099009|55112099003|22082099003|16102099003|57112099003|5063699009; X-Forefront-Antispam-Report: CIP:99.81.216.78;CTRY:IE;LANG:en;SCL:-1;SRV:;IPV:CAL;SFV:SKN;H:nat.eu.perception-point.io;PTR:nat2.eu.perception-point.io;CAT:NONE;SFS:(13230040)(82310400026)(3072899012)(2092899012)(35042699022)(260918215300599003)(43022699015)(260918224100599003)(6059299003)(12012899012)(10067099003)(5023799004)(3023799007)(18003699003)(5133699003)(6133799003)(19002099009)(55112099003)(22082099003)(16102099003)(57112099003)(5063699009);DIR:INB; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 15:44:21.7368 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fb49404a-61e8-41ee-650b-08df17f73510 X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: WA1PEPF000099CD.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9837 X-MS-Exchange-Transport-EndToEndLatency: 00:00:07.8638874 X-MS-Exchange-Processed-By-BccFoldering: 15.21.0451.004 Content-Type: text/plain X-Microsoft-Antispam-Mailbox-Delivery: ucf:0;jmr:0;auth:0;dest:I;ENG:(910005)(944506478)(944626604)(920097)(930201)(20251009189)(140003); X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?8x9IzuhQAJ1ur5Xjag6tIZDDqLWORHp3h7ZIXNJPhyrJ6O+1WsvTSk+kMs?= =?iso-8859-1?Q?PDGBXYXIYVdZzThjX2Ym+NKu8M/19dbFVFz9IgLw77e1JZ/H97FqswWWGn?= =?iso-8859-1?Q?+4yveyMzPOWXBfqRApDGviXQ2ZhKrWeEp3TrIVnIhG9nnyddENxlo6iLgJ?= =?iso-8859-1?Q?ueHhiqcRB3v3xRrwCJO45j87jjD5KASYhxuToVmggM+Kw1S+J56siTTtRH?= =?iso-8859-1?Q?qTY2gZKw3seKkRR1qpZX45STAAawo6JbkT/zPbZVf/8oNGW0lqoDbZ3LZQ?= =?iso-8859-1?Q?1u230979hQfgOB3NZ1IfLPZV9/VI13gCVJ7OWo2bC/Qa44se9pjkWr9NEH?= =?iso-8859-1?Q?ouGIrD95BIwEa42vvOH8zf3p0jLE7YwIZb248UdssAJqPvEl/0wamC4Jep?= =?iso-8859-1?Q?inY7gS3NcOBQ4uum7vWmjKSdhWE50ZSpQnTULmkRf0aZ7GmYi7IV8qON09?= =?iso-8859-1?Q?JSDJKbDk3gQhnM44Xr4KsWNqmK7Ux4GrlT0PtQmPWRD3cRKBFt4zLBBEZn?= =?iso-8859-1?Q?8AfjBnrN6ddvDCjtbP05RksujLvwMvQ07C4NoM1oIOuFNmMGKIXXKYViXC?= =?iso-8859-1?Q?rMS8hSIM4lSdfftyREMQWQlK8A0JUIW7ApPsSyW7ZFbU5QOI4FTN4J4Ui0?= =?iso-8859-1?Q?zKB6Uea9rAKAMUC58Dmhq65l5662PtMfavpQ+GaX2oXHuspuWo0EWJYexx?= =?iso-8859-1?Q?3cgnkNYYVrz3QdLi+yNz/jzwAbHxqeqp3PxgcMVYVQbkgvoWENn5S87sai?= =?iso-8859-1?Q?3kWjrZsdQ3gGJ8JcTst9nYHycp63rGCu0PuRaa7xYTkBe7vTyXM5NeFO4L?= =?iso-8859-1?Q?4Uv4pamLzA7yJcBX4dyB/keZxrOTkNZ3onWB0TFU5ubkatidr3UhGIrFyP?= =?iso-8859-1?Q?LKtIqkuSlO46bBqTV5FnzEWTHP9uZFPd0PJ5uPduFvGAkTGg8uz4p7e0+u?= =?iso-8859-1?Q?DTxZ9qqmouhBLrT9VlCqXrFVvl8Rq0XGksa0x6i9hevS/XSnQsxliF1Ey0?= =?iso-8859-1?Q?eDjQPSOSs+tjbLF/Wl4D32xq/IgRoElIGwhijH4mHAcnCNOrkM9MdncdD8?= =?iso-8859-1?Q?JC5eC0ixmgSlN6UFat4mk6A5OUpL1pYCLvE/UVNEjhqHvuPUwU/RPbvGXz?= =?iso-8859-1?Q?YEAJCnhThAE+YW/UkyH4N45fCUUHcCqDMfcV495/Txjyi92oOjGemq2rlc?= =?iso-8859-1?Q?cK0CylgHUho81FbeEroLTdEFhdGVTrgL1noeDOnhCd4kqC11n9IzbssrCp?= =?iso-8859-1?Q?8+F6iN4MHuNBVH12Df85xhwM78rLQLcPDG3oHRML6rzF8uv8QlCHwSWdgj?= =?iso-8859-1?Q?YQ5KhjfR1xccAux1mtJPPXs3kRyx/GYXM3uyn+iZvSdv+9lYqI7gwrUkK7?= =?iso-8859-1?Q?8qzrsZRz6WF6QLGqItZu+m2z5j6bBpVhGNF5YOS3krCjr1kg2EwabIN6Z9?= =?iso-8859-1?Q?HiAgn54RbMFihebWRo5gA7TVs3ntX7o8RGge8M92UfRhQbRjLysLDxvZrd?= =?iso-8859-1?Q?aAzbCEzne6uFeCCRo4uwvjwA+bxTUymFm4BRvcfNDuprXocJn9JllQGcZO?= =?iso-8859-1?Q?Qb5lVuK9NB/SMzZEuksnbH7WDp01YJYiIgw6ZLcuY9PBikg6uOqfzJ9sjJ?= =?iso-8859-1?Q?IujAXVVbvTXGA53E12a73cAv2XIWgjYLuleMAmlgh6UxRAb+hd1GofQ4wl?= =?iso-8859-1?Q?fi3EGOS7a4rmSPhHNth1xeDg/prbIKsRt+LJUfQmK6JbBV/t4bF6ZrU7a9?= =?iso-8859-1?Q?UyQRNMvKIUtgXrlz6QFkokQumyworYaBCmF9qEMxI5w0/zurLwGh4acpku?= =?iso-8859-1?Q?OKsWmfJOJte8OZeIfddTfF1+aMm37xsS+pu5tfU+4lBYN2fZ+zZbHrNLag?= =?iso-8859-1?Q?x4K2NGBVRGPQFBsgY0r1ZmHf7Nsosu5IJSnZvMzcbHv1mnhWvNSeg7MyIS?= =?iso-8859-1?Q?swCObe8xAiJPWra3HpvY+ebavDugWOUFHRNO5zTQIC/drF7tw6Rfz1TNtf?= =?iso-8859-1?Q?f9Pe38vP94GqKUsNR+resOjRSZodv8qoUSKL8fXJPN5rx09nEEPfxnw+d4?= =?iso-8859-1?Q?wqLEU+YZSzrEjNX1FJARlEgypfSyFgCqeJtgY9Sy09MmozBXy3aZKWYcob?= =?iso-8859-1?Q?gL3CuLYtPxN8YTB79uP7H67kz3a+p4CbhVkeU48YxaHGaQo+IZh1KUlvxr?= =?iso-8859-1?Q?FR9nhS5ty1d2cyiLEzFcDyAGzxdDPe15/CY/aYF+tVWcXu87W4sM907lOL?= =?iso-8859-1?Q?tOw0XFRQpkpMLoGntF9ajsgzfEee7sIEIUVe4bCIurY+TPVTGcMQl1nXnn?= =?iso-8859-1?Q?aQOAWQGOT4iHJhX4hEIwFqcLwocAfbng0GlXxZSurQbAualSIJpOhB1HjE?= =?iso-8859-1?Q?wByfKDsUiXcyjMxBDL7ch/NA8NX5Flk4k6wt2agzrdFRkCN9lIkw8BJ6xM?= =?iso-8859-1?Q?3hsv5Do5enMC9fGBGjj3Mws0KZJXHlFwQpEJvqkDQlExK+a5p0guuT6xMo?= =?iso-8859-1?Q?9uCDJPiEVbEY/2OmUDvFKIBgJUlgtExYkA89/3iLjXij+MSOb7ckztc3I8?= =?iso-8859-1?Q?S52gAUsgsS0YLZv6Y0/+cXJQVcpHoCmt75sR/GZUMCy65hUTWOdnaIaW/m?= =?iso-8859-1?Q?kfM/ixMdUki/Xsg7tcxRSE/AXRGanwigqTsZnQK0ZVKnk9/Or8zYCj1tey?= =?iso-8859-1?Q?tzGpGAv7A5OQyoTqTBjQxKV0Y1md3XkVCfT6wJzmhox7y8tkWvo=3D?= MIME-Version: 1.0 List-Id: From: Denis V. Lunev WaitApWakeup spins until the AP clears its wakeup signal, with no timeout and no way out. If the AP never consumes the Start-up IPI, the BSP spins forever and the boot is dead. A hypervisor can lose that IPI. Under KVM, INIT is latched while a vCPU is in SMM but the Start-up IPI is discarded outright, so an AP that takes an SMI just before the BSP broadcasts INIT-SIPI-SIPI is left in wait-for-SIPI with nothing left to start it. The window is the few instructions between an AP releasing the BSP at the end of the SMM rendezvous and its own RSM, which a scheduled vCPU can be preempted inside of. KVM holds that delivering the SIPI is software's job, so the firmware has to cope. Resend rather than spin. Address the AP individually so that APs already running the procedure are not disturbed, and pass the reset vector only on the paths that sent a Start-up IPI in the first place, so the SEV-SNP and hand-off paths keep waiting as before. A Start-up IPI is ignored unless the target is in wait-for-SIPI, so resending costs nothing when the AP is merely slow. The failure this fixes looks like a guest that never boots: firmware starts the boot manager, paints nothing further, and one CPU spins while the other APs sit idle. Signed-off-by: Denis V. Lunev Cc: Andrey Drobyshev --- UefiCpuPkg/Library/MpInitLib/MpLib.c | 85 +++++++++++++++++++++++++--- UefiCpuPkg/Library/MpInitLib/MpLib.h | 2 + 2 files changed, 80 insertions(+), 7 deletions(-) diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpIn= itLib/MpLib.c index 426d998b9a..87e8f824b6 100644 --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c @@ -942,16 +942,63 @@ DxeApEntryPoint ( ApWakeupFunction (CpuMpData, ProcessorNumber);=0D }=0D =0D +/**=0D + Calculate timeout value and return the current performance counter value= .=0D +=0D + @param[in] TimeoutInMicroseconds The timeout value in microseconds.=0D + @param[out] CurrentTime Returns the current value of the perf= ormance counter.=0D +=0D + @return Expected timestamp counter for timeout, or 0 if TimeoutInMicrose= conds is 0.=0D +**/=0D +UINT64=0D +CalculateTimeout (=0D + IN UINTN TimeoutInMicroseconds,=0D + OUT UINT64 *CurrentTime=0D + );=0D +=0D +/**=0D + Checks whether timeout expires.=0D +=0D + @param[in, out] PreviousTime On input, the requested time. On output,= the elapsed time.=0D + @param[in] TotalTime The total amount of elapsed time.=0D + @param[in] Timeout The timeout ticks, 0 means infinity.=0D +=0D + @retval TRUE A timeout occurred.=0D + @retval FALSE No timeout occurred.=0D +**/=0D +BOOLEAN=0D +CheckTimeout (=0D + IN OUT UINT64 *PreviousTime,=0D + IN UINT64 *TotalTime,=0D + IN UINT64 Timeout=0D + );=0D +=0D /**=0D Wait for AP wakeup and write AP start-up signal till AP is waken up.=0D =0D @param[in] ApStartupSignalBuffer Pointer to AP wakeup signal=0D + @param[in] ApicId Local APIC ID of the AP being woken=0D + @param[in] StartupRoutine AP reset vector, or 0 if the AP was no= t=0D + woken by INIT-SIPI-SIPI and no Start-u= p=0D + IPI may be resent=0D **/=0D VOID=0D WaitApWakeup (=0D - IN volatile UINT32 *ApStartupSignalBuffer=0D + IN volatile UINT32 *ApStartupSignalBuffer,=0D + IN UINT32 ApicId,=0D + IN UINT32 StartupRoutine=0D )=0D {=0D + UINT64 CurrentTime;=0D + UINT64 TotalTime;=0D + UINT64 Timeout;=0D +=0D + Timeout =3D CalculateTimeout (=0D + (StartupRoutine !=3D 0) ? AP_SIPI_RESEND_TIMEOUT_US : 0,=0D + &CurrentTime=0D + );=0D + TotalTime =3D 0;=0D +=0D //=0D // If AP is waken up, StartupApSignal should be cleared.=0D // Otherwise, write StartupApSignal again till AP waken up.=0D @@ -962,6 +1009,12 @@ WaitApWakeup ( WAKEUP_AP_SIGNAL=0D ) !=3D 0)=0D {=0D + if (CheckTimeout (&CurrentTime, &TotalTime, Timeout)) {=0D + SendStartupIpi (ApicId, StartupRoutine);=0D + Timeout =3D CalculateTimeout (AP_SIPI_RESEND_TIMEOUT_US, &CurrentT= ime);=0D + TotalTime =3D 0;=0D + }=0D +=0D CpuPause ();=0D }=0D }=0D @@ -1256,8 +1309,10 @@ WakeUpAP ( CPU_AP_DATA *CpuData;=0D BOOLEAN ResetVectorRequired;=0D CPU_INFO_IN_HOB *CpuInfoInHob;=0D + UINT32 SipiVector;=0D =0D CpuMpData->FinishedCount =3D 0;=0D + SipiVector =3D 0;=0D ResetVectorRequired =3D FALSE;=0D =0D if (CpuMpData->WakeUpByInitSipiSipi ||=0D @@ -1320,13 +1375,14 @@ WakeUpAP ( if (CanUseSevSnpCreateAP (CpuMpData)) {=0D SevSnpCreateAP (CpuMpData, -1);=0D } else {=0D + SipiVector =3D (UINT32)ExchangeInfo->BufferStart;=0D if ((CpuMpData->InitFlag =3D=3D ApInitConfig) && FixedPcdGetBool (= PcdFirstTimeWakeUpAPsBySipi)) {=0D //=0D // SIPI can be used for the first time wake up after reset to re= duce boot time.=0D //=0D - SendStartupIpiAllExcludingSelf ((UINT32)ExchangeInfo->BufferStar= t);=0D + SendStartupIpiAllExcludingSelf (SipiVector);=0D } else {=0D - SendInitSipiSipiAllExcludingSelf ((UINT32)ExchangeInfo->BufferSt= art);=0D + SendInitSipiSipiAllExcludingSelf (SipiVector);=0D }=0D }=0D }=0D @@ -1398,10 +1454,15 @@ WakeUpAP ( //=0D // Wait all APs waken up if this is not the 1st broadcast of SIPI=0D //=0D + CpuInfoInHob =3D (CPU_INFO_IN_HOB *)(UINTN)CpuMpData->CpuInfoInHob;= =0D for (Index =3D 0; Index < CpuMpData->CpuCount; Index++) {=0D CpuData =3D &CpuMpData->CpuData[Index];=0D if (Index !=3D CpuMpData->BspNumber) {=0D - WaitApWakeup (CpuData->StartupApSignal);=0D + WaitApWakeup (=0D + CpuData->StartupApSignal,=0D + CpuInfoInHob[Index].ApicId,=0D + SipiVector=0D + );=0D }=0D }=0D }=0D @@ -1430,9 +1491,10 @@ WakeUpAP ( if (CanUseSevSnpCreateAP (CpuMpData)) {=0D SevSnpCreateAP (CpuMpData, (INTN)ProcessorNumber);=0D } else {=0D + SipiVector =3D (UINT32)ExchangeInfo->BufferStart;=0D SendInitSipiSipi (=0D CpuInfoInHob[ProcessorNumber].ApicId,=0D - (UINT32)ExchangeInfo->BufferStart=0D + SipiVector=0D );=0D }=0D }=0D @@ -1440,7 +1502,12 @@ WakeUpAP ( //=0D // Wait specified AP waken up=0D //=0D - WaitApWakeup (CpuData->StartupApSignal);=0D + CpuInfoInHob =3D (CPU_INFO_IN_HOB *)(UINTN)CpuMpData->CpuInfoInHob;=0D + WaitApWakeup (=0D + CpuData->StartupApSignal,=0D + CpuInfoInHob[ProcessorNumber].ApicId,=0D + SipiVector=0D + );=0D }=0D =0D if (ResetVectorRequired) {=0D @@ -2017,7 +2084,11 @@ SwitchApContext ( {=0D for (Index =3D 0; Index < MpHandOff->CpuCount; Index++) {=0D if (MpHandOff->ProcessorIndex + Index !=3D BspNumber) {=0D - WaitApWakeup ((UINT32 *)(UINTN)(MpHandOff->Info[Index].StartupSign= alAddress));=0D + WaitApWakeup (=0D + (UINT32 *)(UINTN)(MpHandOff->Info[Index].StartupSignalAddress),= =0D + 0,=0D + 0=0D + );=0D }=0D }=0D }=0D diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.h b/UefiCpuPkg/Library/MpIn= itLib/MpLib.h index 5d10516cd8..94bda7f1ea 100644 --- a/UefiCpuPkg/Library/MpInitLib/MpLib.h +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.h @@ -44,6 +44,8 @@ #include "MpHandOff.h"=0D =0D #define WAKEUP_AP_SIGNAL SIGNATURE_32 ('S', 'T', 'A', 'P')=0D +=0D +#define AP_SIPI_RESEND_TIMEOUT_US 10000=0D //=0D // To trigger the start-up signal, BSP writes the specified=0D // StartupSignalValue to the StartupSignalAddress of each processor.=0D --=20 2.53.0