From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11021127.outbound.protection.outlook.com [40.107.130.127]) by lore.virtuozzo.com (Postfix) with ESMTPS id B7E4A8017D for ; Mon, 2 Nov 2026 15:25:31 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Lp4freI46g1n2myzqQJUgP01w+Kiukoj4e0fYJJyqN1T2Xt/uahEPTUudA8iJzZmAVfpnQMtIWEYVNdO/EYo0U2zRyMRUUhwfmrtGAKh+yrnEm6aRm5rieoWJY2/PAQHQwJefFJnn+PxDwHt9UOBARfl0PTrOQDld5fG9EA+fTRuWbDWONVH0Ed9RJaB+yNqeiYP+w3nmnEsJfqGDmOK803X6ueyrwwo0xZz0UkQp4P2IgVM9P8vTphwJHsgnBOCxieLagfwhy5w/51QTPqPoH8dfUPkVdux/Lx9aW2EdKpcdtkVghNgx/csebalFVocE21ssm2WghIxsgI88BY5ZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KtwEFZKJp+74bMqTXdY0XBXXLVW0R+vGI0+uIyNp68E=; b=zTEMLkOgKgz9g90UpKNqdM39cQdq06T5AFTwSvtrcXJNWziPYWtVelUSRUI7anCqJCpDZcBPgrx7SZRNTYKdNqzZDR51N8PfqiKv+hzXTyMbc0SRlliyNNN65lrd3vP5jBa05iLY68Q+4ihMONVjh+YNuTSsX6LM+MLl80dT3MWhQKQImNtJLG6Z+CHje5sYBrfD5PW71x2/XI+kPKSTR5P3bOXsbuNh2UY5T86ODVyJoN6fdw8GZB6wKTxlv/lNOJILNINCfPU5eDX3vp390hcw1sV29d/35VArT0MLAsFq970hf6erD+/T2b9EaXnkF/i6iyhHJLbp/mm45sXApw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KtwEFZKJp+74bMqTXdY0XBXXLVW0R+vGI0+uIyNp68E=; b=Lbmre2B7b5D5TA70tVW2kZ4vjRQlPL4RZo6s2C2Z0+xuU3YT5scrM7HK6s+S5rKlagzc7nf8Yz37f7mNgKbaurKgGjP7xx2EWxKRN76P0maW/L1TuoUiyjTMIbR/A+/Zvdnz5mfrYXrJmg2+fkvRUln4mrEwHSP1x/UAPm3aftZrJUTvypbN4ams4EcJ6YYS0mn7mljhAUxd/jFS5ppXXGjzyItfgbrk13YR5hA24a42invenO9C65QRNWt8ntntNqHnpHAAIltrlkeH7FGXZxZBGaUrigbwkVw4QGGZVCJOMzVvZMQAERY/8pUawza3Ot4sJu4wW4MVF+LfZaYzkA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by PR3PR08MB5788.eurprd08.prod.outlook.com (2603:10a6:102:8b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Mon, 2 Nov 2026 15:25:29 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0569.011; Mon, 2 Nov 2026 15:25:28 +0000 From: Andrey Drobyshev To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org Subject: [PATCH edk2 hci-8.1] OvmfPkg/PlatformInitLib: switch to 5-level paging only above 16TB #VSTOR-152672 #VSTOR-152405 Date: Mon, 2 Nov 2026 17:25:20 +0200 Message-ID: <20261102152520.61693-1-andrey.drobyshev@virtuozzo.com> X-Mailer: git-send-email 2.47.1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-ClientProxiedBy: VIUP296CA0088.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:35c::12) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|PR3PR08MB5788:EE_ X-MS-Office365-Filtering-Correlation-Id: 4f7eab2f-7e64-4ee0-33a7-08df38f586a0 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|52116014|1800799024|366016|261026140227099003|261021123027099003|38350700014|261026121527099003|5023799004|56012099006|261009223027099003|261028144727099003|261022105027099003|261021121427099003|261022075727099003|10067099003|261102123227099003|18002099003|6133799003|5113699003|3023799007; X-Microsoft-Antispam-Message-Info: qeWjn1Ve463J/QTvp953WZL2OD9PabvCcoGFLtGbBs+GUgDyP/v51Kr5VPr2LTjkz8u6oOQ4NPfl2C4PGjPu9ty32SZkTN7c/vmlEFKCm5m1KL++me1M2yegFQH0TZT+Ea9Dmu4STV5DZ5dk1+9EZLD9HsswyzKJq7u4y4mOpRYiom9SIORCQNGCm2bSrEuKdBdoGuiHN1vXHBG9+wxfiyb5LFRnlHmcZLvwxq+29XR+MByeJY2uVdT7FjXnn5WvbrrLej9hU0VnmhcdpV5TY2jBdvVRKOCdiqK/x9IdYWnXat5W4Sz8J1bHUw7GT62Udrm2RfYnnrByBmoOivDDnneHhamp2XmdPwPVVWA1Qk+mUR5egcJifUZ7WVsAeRQTmQqt9nSxgZBf0P3+g8EmW5XlxhomCRa02STNjgXL6+dISuJAMAuoejhnORJ84kyEGf3lRMJ8YvwH5Aiepi7PaImNcaM6Fvb6mtdsNHkxBCdUZ95on7y9duB2ORhQgCe/dmspWKwHfbq5hhYD74mmq5uguErehmVNsmtODdsUN553TlyZinGKyx6BBzXQjGmXMtc/ceXZpz8CdHdg0AAE8R+RljmSG91x3jfFr0dFlKVHSVkkVKd7nth5mGlRoOH52mNQWw6wRAyYOJ3CQqk+Sa2wqgPZvE4098NlMykZjuychKaxSa+qNXhMG+U3cvRhWNRzz8XV2WnjsIHmByCQOACzjT9javSfRlVtGSkxfIo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(52116014)(1800799024)(366016)(261026140227099003)(261021123027099003)(38350700014)(261026121527099003)(5023799004)(56012099006)(261009223027099003)(261028144727099003)(261022105027099003)(261021121427099003)(261022075727099003)(10067099003)(261102123227099003)(18002099003)(6133799003)(5113699003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r2TMvLg6ZuZSnKjvyFjDdyClSuTYI3IEzdcNE0iDbkZ0vB+19B73GlPv/dCJ?= =?us-ascii?Q?LACO5xAWgN+q9APViVOR/nckFP+xyDeDLXmRl+64sEQqsy8g+tmy+Ndxj/9g?= =?us-ascii?Q?g0Y7j6wXyuiHhofzH5SZopDe7YqYcOjRy3KSLWx/RNBXbIKx+31UgxSTrmnK?= =?us-ascii?Q?EaBk736DKNA0uN01nJ4yX9oi4/UNKY58kOo9QbG4ZrzlzBhs+n57dLjtpEIY?= =?us-ascii?Q?zAXIihS29XvPXAArddnG362UXmQq+d44H+sNAssYB4iJKwpc5AhVe+zoViUl?= =?us-ascii?Q?TWVBK4vrvrbW3gN6El9tc7KSLEouLmbMLp0vwyLns2PBxQD5aTGnSjAffpDL?= =?us-ascii?Q?HSKKxPmJn5bLTj6q15cdMjES3nHg3Z1zNIn/HFKBE8J8s3OPqro6ATe9vxAO?= =?us-ascii?Q?AikZOa7ok5c5rKq97jFPW90Oync9j3BY5D/ptxCYUmLWNADy0BbQJG9c9pJZ?= =?us-ascii?Q?JPZCDYEDCs61qq3Z7SfrsYS1WDjZbZBUXuHoO5KKAK21+0xBLGc1BsujdgNX?= =?us-ascii?Q?QZuhc7/hMqJHctJRQ2AieFKMoRshPJ7A9RZ5Yk64LNxUlPqizKStSchir9Fx?= =?us-ascii?Q?A3g8evVzjOVlyr+XW7fcuQSIXQghKuM0RKZaewmvf0CGt2RHXhALTlL7AdJ1?= =?us-ascii?Q?iudRiGvhZSy2WXdLSYpPpJa9iBxm8TzMAUAQkAqN4UDZuURNpONZ7uEcDfz0?= =?us-ascii?Q?XZINbW3Tm/kfDzIr6MZ+uwbmYTynRb1ivAdyQKYocZiYATCdjQ9tUZH36x9Y?= =?us-ascii?Q?EDyE3RpPEWkSDIC7A2x6386ys8OexWpGvwHm9EsqVBd0QGeOIK3M8xV3EYX+?= =?us-ascii?Q?JqShFESPSJTs4T3WwoQ2A1eyobWEsmz2p9M7Jr4y4+3PfNQZhILulqtpvN2z?= =?us-ascii?Q?ZAu1rwS/63htEwUEh8OcLGk3Hq7LMNJYbRcOA/SEaZ7RvYiSH+hIIRCK/OOx?= =?us-ascii?Q?XBV1m6VIL6Me8s6+dmIMD4+UFdbfy+VCPFyzxpSkbSBIbfjK6C+6nVYMP282?= =?us-ascii?Q?5tTyBBGN3GkkXdjI+FpyeN/fop4okI9Odi3Wud2OVmd2mDoMf5BGI+/zAe8k?= =?us-ascii?Q?peVuh/6WhcGKVegqW76giPlrw7U1u8tk63yCCF+77Bj8VOKEtt+Ca0g1/2ej?= =?us-ascii?Q?qw8Eq4kZYeuoCUv3HsS3WfAA+TcVgD+QPGt2ApE7KZuxUbAoKXzgNJ89lmAk?= =?us-ascii?Q?mnBszbmgp5UoDlDeKRTtoQP+Na+G27S9rqt0lmR9Q0UlujvXh8MpOdl/iF7w?= =?us-ascii?Q?i8yQ0ad+k/zubyHl4wWqPAAHYa5tYLDfUEBtuUAua0uBmsitIANzF769KM5u?= =?us-ascii?Q?vc/ptWDnZgWeQcbEmAq+J69Ajnv6MYYuJHFqooTc/Cw+Z4xHHMqYuOteL4/m?= =?us-ascii?Q?2FUsT2VtRaFV1bvAf/JYViULoEiTOPpiS6ab152r3AlYvp+j/NWPPWkKWWbf?= =?us-ascii?Q?v/hNN1J+4bA3660514DQrcL4hOkdeXnxO4LhLTOYru0bAIQXvJIbEqe2qWs5?= =?us-ascii?Q?bcfe7Dx1oxwUCmGOtKrm9qFXiMQwooeVj4MehX3I6ZwStM3UZkTaw1Jdmadm?= =?us-ascii?Q?m6pDCyluGardUXT7vndi2jRJFsF6rpbCB2CIrza4TWoD6e+TLUuGRd6aca2q?= =?us-ascii?Q?b7amlFzGry/Pc7+MhdNcou6xk+3/PcgPk1CaBrGLAx32TQ3326HeZdcIRKzB?= =?us-ascii?Q?mGdoo4WT/chQUoh5hUQ4RHGlBqdRjnezk0vD6nnsOc89Hhnge16m6PDFfCNN?= =?us-ascii?Q?DHcYkp3W3dvumRdfY9VqpaxZlHTFk/o=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f7eab2f-7e64-4ee0-33a7-08df38f586a0 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 15:25:28.7957 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RsXo1ObVLqfhDT+qXOHjRi6m93T8iqC5rLEnQQunybFkerNIMQkqaQDhwYsXRbOORknA+VoVCtWiLlXTqhY8z1pgUNvzIsyXD8I+MRZNG7g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5788 With PcdUse5LevelPageTable the 64-bit PEI decides per guest whether to=0D hand the OS over in 4- or 5-level paging mode. Without a fw_cfg=0D override it uses 5-level paging as soon as the guest address space=0D (RAM plus the memory hotplug window) reaches 1TB.=0D =0D That threshold is too low for us:=0D =0D * 4-level firmware paging already covers 64TB of address space, so=0D 5-level paging below that buys nothing and only changes what the OS=0D sees at ExitBootServices;=0D * on Windows that means booting the LA57 kernel (ntkrla57.exe), which=0D bugchecks on AMD guests exposed to the ARCH_CAPABILITIES MSR=0D (VSTOR-152405) and breaks Windows Setup. QEMU since the commit=0D 7fc0e1c9f577 ("i386: hide la57 at fresh start on vz machine types=0D that show ARCH_CAPABILITIES #VSTOR-152405") now hides la57 on the=0D VZ machine types that expose the MSR, but the firmware shouldn't=0D depend on that.=0D =0D Raise the threshold to 16TB. Ordinary guests, including those with a=0D large hotplug window, stay in 4-level paging.=0D =0D Signed-off-by: Andrey Drobyshev =0D ---=0D OvmfPkg/Library/PlatformInitLib/MemDetect.c | 6 +++---=0D OvmfPkg/RUNTIME_CONFIG.md | 2 +-=0D 2 files changed, 4 insertions(+), 4 deletions(-)=0D =0D diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/= PlatformInitLib/MemDetect.c=0D index 937e2b77a5..7220db8ef9 100644=0D --- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c=0D +++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c=0D @@ -967,7 +967,7 @@ Switch4Level (=0D Should that not be the case the function checks the size of the address= space=0D=0D needed, which is the RAM installed plus fw_cfg reservations. The downg= rade=0D=0D to 4-level paging will happen for small guests where the address space = needed=0D=0D - is lower than 1TB.=0D=0D + is lower than 16TB.=0D=0D =0D=0D =0D=0D This function will also log the paging level used and the reason for th= at.=0D=0D @@ -1002,9 +1002,9 @@ PlatformSetupPagingLevel (=0D );=0D=0D switch (Status) {=0D=0D case EFI_NOT_FOUND:=0D=0D - if (PlatformInfoHob->FirstNonAddress < (1ll << 40)) {=0D=0D + if (PlatformInfoHob->FirstNonAddress < (1ll << 44)) {=0D=0D //=0D=0D - // If the highest address actually used is below 1TB switch back i= nto=0D=0D + // If the highest address actually used is below 16TB switch back = into=0D=0D // 4-level paging mode for better compatibility with older guests.= =0D=0D //=0D=0D DEBUG ((DEBUG_INFO, "%a: using 4-level paging (default for small g= uest)\n", __func__));=0D=0D diff --git a/OvmfPkg/RUNTIME_CONFIG.md b/OvmfPkg/RUNTIME_CONFIG.md=0D index b75a5dacad..3bef1e6e4a 100644=0D --- a/OvmfPkg/RUNTIME_CONFIG.md=0D +++ b/OvmfPkg/RUNTIME_CONFIG.md=0D @@ -228,7 +228,7 @@ paging levels are better for compatibility, not all OSe= s can handle=0D levels are better for huge VMs, the address space managed by OVMF can=0D=0D be larger.=0D=0D =0D=0D -Default: Use 5-level paging in case more than 1TB of memory is=0D=0D +Default: Use 5-level paging in case more than 16TB of memory is=0D=0D present, 4-level paging otherwise.=0D=0D =0D=0D Usage:=0D=0D -- =0D 2.47.1=0D =0D