From nobody Thu Apr 9 12:08:46 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.microsoft.com ARC-Seal: i=1; a=rsa-sha256; t=1773229000; cv=none; d=zohomail.com; s=zohoarc; b=MVdROLqNYJimolbAdsoyRZMoz21Mrxae59Ai9/iTmDcW/zAgXg2wmICUoD0Ly6zTMdktSEvFVpfbB4HHXfhiapNiBv31Ui/vEKsaEcawsJ7TxG9rHo/R7ED2Xf1zLR5NX6c0riK5PDZ6DkwVJ+Q9yuR1Fouxqdx0efveHMDcTr0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773229000; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4iI8uPVaZVzJqf/NvuPF4mDlwdEptSA/TCfKpkW4+Pg=; b=SDDJSljclLfI/v7YkzELaL7S4jqDeRw7Xpi/2qYzUy/CVZ/ehx+3tF9NU3kfo2M9Dez+uGGffW7wgDnieTs8qyHUL13Q6Ai3YwecvfoyToxM1xFBxg19dCYuwrJnq+am1E5GC9koZqD+WiCDXMtiBeK9TaCPLavpkGeVF9daqtg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773229000524776.2289173324745; Wed, 11 Mar 2026 04:36:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Hql-0006k8-HY; Wed, 11 Mar 2026 07:35:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Hqj-0006jw-SL for qemu-devel@nongnu.org; Wed, 11 Mar 2026 07:35:37 -0400 Received: from linux.microsoft.com ([13.77.154.182]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Hqi-0006HW-Ap for qemu-devel@nongnu.org; Wed, 11 Mar 2026 07:35:37 -0400 Received: from DESKTOP-TUU1E5L.localdomain (unknown [167.220.208.53]) by linux.microsoft.com (Postfix) with ESMTPSA id E789220B7128; Wed, 11 Mar 2026 04:35:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E789220B7128 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1773228935; bh=4iI8uPVaZVzJqf/NvuPF4mDlwdEptSA/TCfKpkW4+Pg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D61KMKo37FEOuVoOgHdvVQSMMRJ4JSoVBIcV227QTeRZMAbxLqtyRcNB9+z57r5ys T83tgZLNaumyStx9q9FMUhRlG4RBDDNiv91lcPEdMzfaeDQ52/fkflyXsi3PNs9FEL oa8KR0pwKEG8x25JuV8PlW34aU4t7ieb5Lu2ptX0= From: Magnus Kulke To: qemu-devel@nongnu.org Cc: Zhao Liu , Magnus Kulke , Paolo Bonzini , Wei Liu , Magnus Kulke , Wei Liu Subject: [PATCH v2 9/9] accel/mshv: disable la57 (5lvl paging) Date: Wed, 11 Mar 2026 12:35:05 +0100 Message-Id: <20260311113505.1177878-10-magnuskulke@linux.microsoft.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311113505.1177878-1-magnuskulke@linux.microsoft.com> References: <20260311113505.1177878-1-magnuskulke@linux.microsoft.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=13.77.154.182; envelope-from=magnuskulke@linux.microsoft.com; helo=linux.microsoft.com X-Spam_score_int: -9 X-Spam_score: -1.0 X-Spam_bar: - X-Spam_report: (-1.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linux.microsoft.com) X-ZM-MESSAGEID: 1773229002877154100 Content-Type: text/plain; charset="utf-8" This change disable la57 paging on the mshv hypervisor on both the mshv processor feature bitmap and mask the cpuid feature leaf to the guest. Since the removal of hypervisor-assisted gva=3D>gpa translation in 1c85a4a3d7 we have seen MMIO errors in guests on la57-enabled hw. We will have to investigate and test this further. Signed-off-by: Magnus Kulke --- accel/mshv/mshv-all.c | 7 +++++++ target/i386/mshv/mshv-cpu.c | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/accel/mshv/mshv-all.c b/accel/mshv/mshv-all.c index eab967ff07..ea3aacf6e0 100644 --- a/accel/mshv/mshv-all.c +++ b/accel/mshv/mshv-all.c @@ -142,6 +142,8 @@ static int create_partition(int mshv_fd, int *vm_fd) int ret; uint64_t pt_flags, host_proc_features; union hv_partition_processor_xsave_features disabled_xsave_features; + union hv_partition_processor_features disabled_proc_features =3D {0}; + struct mshv_create_partition_v2 args =3D {0}; uint32_t feature_banks[] =3D { HV_PARTITION_PROPERTY_PROCESSOR_FEATURES0, @@ -181,6 +183,11 @@ static int create_partition(int mshv_fd, int *vm_fd) } args.pt_cpu_fbanks[1] =3D ~host_proc_features; =20 + /* features we disable regardless of host support */ + disabled_proc_features.la57_support =3D 1; + args.pt_cpu_fbanks[0] |=3D disabled_proc_features.as_uint64[0]; + args.pt_cpu_fbanks[1] |=3D disabled_proc_features.as_uint64[1]; + /* populate args structure */ args.pt_flags =3D pt_flags; args.pt_isolation =3D MSHV_PT_ISOLATION_NONE; diff --git a/target/i386/mshv/mshv-cpu.c b/target/i386/mshv/mshv-cpu.c index 2c66a52709..31fb788657 100644 --- a/target/i386/mshv/mshv-cpu.c +++ b/target/i386/mshv/mshv-cpu.c @@ -1677,6 +1677,12 @@ uint32_t mshv_get_supported_cpuid(uint32_t func, uin= t32_t idx, int reg) */ if (func =3D=3D 0x07 && idx =3D=3D 0 && reg =3D=3D R_ECX) { ret &=3D ~CPUID_7_0_ECX_CET_SHSTK; + /* + * LA57 (5-level paging) causes incorrect GVA=3D>GPA translations + * in the instruction decoder/emulator. Disable until page table + * walk in x86_mmu.c works w/ 5-level paging. + */ + ret &=3D ~CPUID_7_0_ECX_LA57; } if (func =3D=3D 0x07 && idx =3D=3D 0 && reg =3D=3D R_EDX) { ret &=3D ~CPUID_7_0_EDX_CET_IBT; --=20 2.34.1