From nobody Thu Apr 2 18:47: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=reject dis=none) header.from=unpredictable.fr ARC-Seal: i=1; a=rsa-sha256; t=1774550231; cv=none; d=zohomail.com; s=zohoarc; b=YZbgcpWN/n+hTx4ez184NxLuXtT9l9iB/Zbs/oSKyOAKP7ZrUCx2R4WquXcTW5ltMMI3fpCUyPglrNrNvOx6z9NsOINru5TgUPJ0OmMTAs/nTzT80NRfZIw6LyAS5QBNpg6b3+MWVM2BoyZAJHrMRB3PXq3QbPfDnhM8c344alI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774550231; 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=PfxQON8w44n7eCaRZBvOpFJvDIvfkhH04+PoPXS/4ww=; b=Fisoe+HjUm3TvUdLYFITU+7ulEovEdcREh93dawuAGlz/kRXUaIVYmeq2UsB3Avt8i0MGj0GFHd9vmdK7U660yUJAoTzRLblYvl+q8ypzG8g1DbiMRrKVEOjK91Ocb8EEdnB+pSOW5uoDn/V1k26wPp4Gmoy1aITnHf2aQdIYbw= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774550231040985.1972762164819; Thu, 26 Mar 2026 11:37:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5pZV-0001NM-18; Thu, 26 Mar 2026 14:36:45 -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 1w5pZR-0001Md-JM for qemu-devel@nongnu.org; Thu, 26 Mar 2026 14:36:43 -0400 Received: from ci-2005d-snip4-10.eps.apple.com ([57.103.89.170] helo=outbound.ci.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5pZN-0008Sc-L9 for qemu-devel@nongnu.org; Thu, 26 Mar 2026 14:36:39 -0400 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-100-percent-5 (Postfix) with ESMTPS id 8B9F9180017E; Thu, 26 Mar 2026 18:36:34 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-100-percent-5 (Postfix) with ESMTPSA id 7B24918006BB; Thu, 26 Mar 2026 18:36:32 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1774550197; x=1777142197; bh=PfxQON8w44n7eCaRZBvOpFJvDIvfkhH04+PoPXS/4ww=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=f2OnhHumBRauoNjoQ1Kt9IDhAahSQyOiEq+fDUw2anXCMvnEKjXeDSXFx+Ly63Byq/3JhEj79KrN54+aJR8/S2nDQm5mdGyhcXxfixlf57X9oRzPJLoQNXw02RZ0aPAEqvjBdriw6Xm8kEKrPjf2caj58wg+gBYcuOUR3EOrrPf1ZAL5apRfwbBLIpiRMavNGIcx0Ce0T5IDCrhdiGBfrkWmi+vvu0V0auDAZC/KTJZpV2PrBqj67WEg9tHAa29uZjcQMa5fACG8UL133Ct20PTwpS9EBu8QK4peRVZnfSdwci2oJftg3hZcAF5DnFpcN3B70sifjYXPxLjaLwPasQ== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Mohamed Mediouni , Wei Liu , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , Roman Bolshakov , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pedro Barbuda , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini , Phil Dennis-Jordan Subject: [PATCH v3 1/3] docs: add WHPX section with initial info Date: Thu, 26 Mar 2026 19:36:26 +0100 Message-ID: <20260326183628.79281-2-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260326183628.79281-1-mohamed@unpredictable.fr> References: <20260326183628.79281-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: zfxYT8fW9mhP9bDGsls9XwoEOdmn4cIO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDEzMyBTYWx0ZWRfX3Ye1oHlvkvuK lvgqVH37BtkMu6jK7VxCe3lEEa80Azr5ahF+DosS1Ubt4NXY4naYnnkpWaoQ2+8ZNNvMpuMRs+l NWv02W9/JWBgYmlOgwV/eRXtTaE7Z65n3cDEnbwfPR6GQFEj9ymlgxF/aj/az/hJQ0Se+Tb2YO9 hJhrcKQFeR0ZYd4IKCjVxK/BO/dxpe/rGUCHrvjCoeb4KIcXBb8/KEuLY0RgTs8/EqELCt+RHI9 O6jmPadfpRCG5ibzVEDgSGnTIxr6C4MwRRlb4ZhVERIGSGrWekawMKDfjxtlDB44Xt2sT2BMP80 IPkjlzBbCbp1ywxK4gE4DD8N3RSU303zyxxlEyHWibSbziT26IQwRPDZOkU0Po= X-Authority-Info-Out: v=2.4 cv=ffCgCkQF c=1 sm=1 tr=0 ts=69c57cb3 cx=c_apl:c_pps:t_out a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yMhMjlubAAAA:8 a=WaZvilOYPjjn8e_oVx0A:9 X-Proofpoint-GUID: zfxYT8fW9mhP9bDGsls9XwoEOdmn4cIO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-26_03,2026-03-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 clxscore=1030 mlxlogscore=999 mlxscore=0 lowpriorityscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2603260133 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=57.103.89.170; envelope-from=mohamed@unpredictable.fr; helo=outbound.ci.icloud.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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 @unpredictable.fr) X-ZM-MESSAGEID: 1774550236242154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Mohamed Mediouni --- MAINTAINERS | 1 + docs/system/index.rst | 1 + docs/system/whpx.rst | 144 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 docs/system/whpx.rst diff --git a/MAINTAINERS b/MAINTAINERS index cd8ba14450..eb7132e39d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -582,6 +582,7 @@ F: include/system/whpx.h F: include/system/whpx-accel-ops.h F: include/system/whpx-common.h F: include/system/whpx-internal.h +F: docs/system/whpx.rst =20 MSHV M: Magnus Kulke diff --git a/docs/system/index.rst b/docs/system/index.rst index bb948e2993..4509630fa4 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -40,6 +40,7 @@ or Hypervisor.Framework. confidential-guest-support igvm nitro + whpx vm-templating sriov qemu-colo diff --git a/docs/system/whpx.rst b/docs/system/whpx.rst new file mode 100644 index 0000000000..60179dd336 --- /dev/null +++ b/docs/system/whpx.rst @@ -0,0 +1,144 @@ +Windows Hypervisor Platform +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D + +Windows Hypervisor Platform is the Windows API for use of +third-party virtual machine monitors with hardware acceleration +on Hyper-V. + +It's implemented on top of `Vid`, which is itself implemented +on the same set of hypercalls as the `mshv` driver on Linux. + +WHPX is the name of the Windows Hypervisor Platform accelerator +backend in QEMU. It enables using QEMU with hardware acceleration +on both x86_64 and arm64 Windows machines. + +Prerequisites +------------- + +WHPX requires the Windows Hypervisor Platform feature to be installed. + +Installation +^^^^^^^^^^^^ +On client editions of Windows, that means installation through +Windows Features (`optionalfeatures.exe`). On server editions, +feature-based installation in Server Manager can be used. + +Alternatively, command line installation is also possible through: +`DISM /online /Enable-Feature /FeatureName:HypervisorPlatform /All` + +Minimum OS version +^^^^^^^^^^^^^^^^^^ + +On x86_64, QEMU's Windows Hypervisor Platform backend is tested=20 +starting from Windows 10 version 2004. Earlier Windows 10 releases +*might* work but are not tested. + +On arm64, Windows 11 24H2 with the April 2025 optional updates +or May 2025 security updates is the minimum required release.=20 + +Prior releases of Windows 11 version 24H2 on ARM64 shipped=20 +with a pre-release version of the Windows Hypervisor Platform +API, which is not supported in QEMU. + +Quick Start +----------- + +Launching a virtual machine on x86_64 with WHPX acceleration:: + + $ qemu-system-x86_64.exe -accel whpx -M pc \ + -smp cores=3D2 -m 2G -device ich9-usb-ehci1 \ + -device usb-tablet -hda OS.qcow2 + +Launching a virtual machine on arm64 with WHPX acceleration:: + + $ qemu-system-aarch64.exe -accel whpx -M virt \ + -cpu host -smp cores=3D2 -m 2G \ + -bios edk2-aarch64-code.fd \ + -device ramfb -device nec-usb-xhci \ + -device usb-kbd -device usb-tablet \ + -hda OS.qcow2 + +On arm64, for non-Windows guests, `-device virtio-gpu-pci` provides +additional fuctionality compared to `-device ramfb`, but is +incompatible with Windows's UEFI GOP implementation, which +expects a linear framebuffer to be available. + +Some tracing options +-------------------- + +x86_64 +^^^^^^ + +`-trace whpx_unsupported_msr_access` can be used to log accesses +to undocumented MSRs. + +`-trace x86_unhandled_memory_*` allows to trace accesses to unmapped +GPAs. + +Known issues on x86_64 +---------------------- + +Guests using legacy VGA modes +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In guests using VGA modes that QEMU doesn't pass through framebuffer +memory for, performance will be quite suboptimal. + +Workaround: for affected guests, use a more modern graphics mode. +Alternatively, use TCG to run those guests. + +Guests using MMX, SSE or AVX instructions for MMIO +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Currently, `target/i386/emulate` does not support guests that use +MMX, SSE or AVX instructions for access to MMIO memory ranges. + +Attempts to run such guests will result in an `Unimplemented handler` +warning for MMX and a failure to decode for newer instructions. + +`-M isapc` +^^^^^^^^^^ + +`-M isapc` doesn't disable the Hyper-V LAPIC on its own yet. To +be able to use that machine, use `-accel whpx,hyperv=3Doff,kernel-irqchip= =3Doff`. + +However, in QEMU 11.0, the guest will still be a 64-bit x86 +ISA machine with all the corresponding CPUID leaves exposed. + +gdbstub +^^^^^^^ + +As save/restore of xsave state is not currently present, state +exposed through GDB will be incomplete. + +The same also applies to `info registers`. + +-cpu `type` ignored +^^^^^^^^^^^^^^^^^^^ + +In this release, -cpu is an ignored argument.=20 + +PIC interrupts on Windows 10 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +On Windows 10, a legacy PIC interrupt injected does not wake the guest +from an HLT when using the Hyper-V provided interrupt controller. + +This has been addressed in QEMU 11.0 on Windows 11 platforms but +functionality to make it available on Windows 10 isn't present. + +Workaround: for affected use cases, use `-M kernel-irqchip=3Doff`. + +Known issues on Windows 11 +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Nested virtualisation-specific Hyper-V enlightenments are not +currently exposed. + +arm64 +----- + +ISA feature support +^^^^^^^^^^^^^^^^^^^ + +SVE and SME are not currently supported. --=20 2.50.1 (Apple Git-155) From nobody Thu Apr 2 18:47: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=reject dis=none) header.from=unpredictable.fr ARC-Seal: i=1; a=rsa-sha256; t=1774550236; cv=none; d=zohomail.com; s=zohoarc; b=QCzZG2TEGY2d3E2oTHVtIaS81yZsBQRD8t9phyn3ZMqXMerzTnvw9Bd2CYzZ4ffVZmgyz6YPWn80VIIUUmjmIZ8EICVtozkSwsJdrRJPxOODNOgE36CzuCsJ68/7tss4jfr2sIezcj2bJ4NdjKcK49muahQwjeoVb9bLpdUqxQM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774550236; 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=o/R2DGy6ntht8zjLtkax4gwL+IkVrUBZLrFH7yPSkgI=; b=jiS+HlQlX6y2efwP+aqGpyUoZD6RO5p4Sa5oOVPTJesBt0BB3uT5La1TAgd7kio1L5Kg+oCNxf6ZcHKWli2dqXsE+uUK31a6xqpcXQqMTTvr3syfrAv0mVnJHRjnzREbkKubfZpCGy8n/mUJKCcWDfqQ2kn3g5XwlDpmezaATRM= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774550236039589.0103787112764; Thu, 26 Mar 2026 11:37:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5pZW-0001NQ-MR; Thu, 26 Mar 2026 14:36:46 -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 1w5pZS-0001Mj-Ra for qemu-devel@nongnu.org; Thu, 26 Mar 2026 14:36:43 -0400 Received: from ci-2003c-snip4-11.eps.apple.com ([57.103.91.161] helo=outbound.ci.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5pZR-0008Sn-AT for qemu-devel@nongnu.org; Thu, 26 Mar 2026 14:36:42 -0400 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-100-percent-5 (Postfix) with ESMTPS id 1CC761800315; Thu, 26 Mar 2026 18:36:36 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-100-percent-5 (Postfix) with ESMTPSA id 3ABDD1800178; Thu, 26 Mar 2026 18:36:34 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1774550198; x=1777142198; bh=o/R2DGy6ntht8zjLtkax4gwL+IkVrUBZLrFH7yPSkgI=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=SfgrTVplZuaA5YDPt9IUjnITyE0IKtSw+qERxosLHpn1vPCqKK3SIfYe75b41+JqgsAFf4JTOc2h4R2hzJDI+eCv0nAD6mxVaJ7zRWja2orIKHdsVv7MGjO/AQ4AGn2qpz9oqI896MLVs53MNw+pykKDvkMTDTFfyrLawSH+XNscEUtQuwy8A1JiLW/zqt8puEC0xgs5qMAUgh4OuBX0V3m1I15Gph7j5gMb16mKCeFI4iPfrexXvKmBC4uFPYOfn83OKWAILBxT7RVf3P04bX5k6DTbUyRKRbZwWvUl8GZeC8MtI/ElER9/K6jfNb0Ja4pXt86pKjx4GeIVQVk+CQ== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Mohamed Mediouni , Wei Liu , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , Roman Bolshakov , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pedro Barbuda , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini , Phil Dennis-Jordan Subject: [PATCH v3 2/3] target/i386: emulate: make unmapped GPA warnings a trace Date: Thu, 26 Mar 2026 19:36:27 +0100 Message-ID: <20260326183628.79281-3-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260326183628.79281-1-mohamed@unpredictable.fr> References: <20260326183628.79281-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Info-Out: v=2.4 cv=IZeKmGqa c=1 sm=1 tr=0 ts=69c57cb4 cx=c_apl:c_pps:t_out a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=j-Qzp9laiEuN6BHQYxAA:9 X-Proofpoint-ORIG-GUID: vxBcRGldGUQ3IoElZKZ9HFNJT1xHXVeR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDEzMyBTYWx0ZWRfX0Jse/deb3sCd lTsq+7e+XBs066lAXtsCb36+aUiR9ZCqa7qbKt8GQZBVIFpSpjGUS+qfCZim3jm8wIGwDqjRpB5 BNNdyiwXJAp8XHRm0X/TBVlgK24AqzMCNNft5sXsf6jVpmGhswxWySog+lTZUR3MW+5Y3zhAdyL 61RRBXMqszxFchmSalYbsfjRVuC3Mg8TBHJRJ+9gaD+6IvlcyP4FM73YuHsMTNQJGOYBLe0FSaB ECZVevgrhzUVQfATgZN5IhBOp86PmINKaU/TiWUCookzELb0iSa2X0Xi4jd9o04qnbyTbHQlTPU OLT5vL3dV+ofUQdVMX8vYOCfvR01Qbl73EQYtjHq7Dm1/xKDWym0pO0h+ko8Hg= X-Proofpoint-GUID: vxBcRGldGUQ3IoElZKZ9HFNJT1xHXVeR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-26_03,2026-03-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=463 spamscore=0 malwarescore=0 clxscore=1030 suspectscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2603260133 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=57.103.91.161; envelope-from=mohamed@unpredictable.fr; helo=outbound.ci.icloud.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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 @unpredictable.fr) X-ZM-MESSAGEID: 1774550236711158500 Content-Type: text/plain; charset="utf-8" Some guest OSes trigger them way too often. Signed-off-by: Mohamed Mediouni --- meson.build | 1 + target/i386/emulate/trace-events | 2 ++ target/i386/emulate/trace.h | 2 ++ target/i386/emulate/x86_mmu.c | 5 +++-- 4 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 target/i386/emulate/trace-events create mode 100644 target/i386/emulate/trace.h diff --git a/meson.build b/meson.build index e6f17dd5f7..5a2e7a491d 100644 --- a/meson.build +++ b/meson.build @@ -3691,6 +3691,7 @@ if have_system or have_user 'target/arm/hvf', 'target/hppa', 'target/i386', + 'target/i386/emulate', 'target/i386/kvm', 'target/loongarch', 'target/mips/tcg', diff --git a/target/i386/emulate/trace-events b/target/i386/emulate/trace-e= vents new file mode 100644 index 0000000000..e353969661 --- /dev/null +++ b/target/i386/emulate/trace-events @@ -0,0 +1,2 @@ +x86_unhandled_memory_read(uint64_t gpa, int bytes) "read from unmapped mmi= o region gpa=3D0x%" PRIx64 " size=3D%i" +x86_unhandled_memory_write(uint64_t gpa, int bytes) "write to unmapped mmi= o region gpa=3D0x%" PRIx64 " size=3D%i" diff --git a/target/i386/emulate/trace.h b/target/i386/emulate/trace.h new file mode 100644 index 0000000000..8c2317b152 --- /dev/null +++ b/target/i386/emulate/trace.h @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "trace/trace-target_i386_emulate.h" diff --git a/target/i386/emulate/x86_mmu.c b/target/i386/emulate/x86_mmu.c index c69ae96acb..e5f4dd8a65 100644 --- a/target/i386/emulate/x86_mmu.c +++ b/target/i386/emulate/x86_mmu.c @@ -25,6 +25,7 @@ #include "emulate/x86.h" #include "emulate/x86_emu.h" #include "emulate/x86_mmu.h" +#include "trace.h" =20 #define pte_present(pte) (pte & PT_PRESENT) #define pte_write_access(pte) (pte & PT_WRITE) @@ -287,7 +288,7 @@ static MMUTranslateResult x86_write_mem_ex(CPUState *cp= u, void *data, target_ulo MEMTXATTRS_UNSPECIFIED, data, copy); =20 if (mem_tx_res =3D=3D MEMTX_DECODE_ERROR) { - warn_report("write to unmapped mmio region gpa=3D0x%" PRIx64 "= size=3D%i", gpa, bytes); + trace_x86_unhandled_memory_write(gpa, bytes); return MMU_TRANSLATE_GPA_UNMAPPED; } else if (mem_tx_res =3D=3D MEMTX_ACCESS_ERROR) { return MMU_TRANSLATE_GPA_NO_WRITE_ACCESS; @@ -339,7 +340,7 @@ static MMUTranslateResult x86_read_mem_ex(CPUState *cpu= , void *data, target_ulon data, copy); =20 if (mem_tx_res =3D=3D MEMTX_DECODE_ERROR) { - warn_report("read from unmapped mmio region gpa=3D0x%" PRIx64 = " size=3D%i", gpa, bytes); + trace_x86_unhandled_memory_read(gpa, bytes); return MMU_TRANSLATE_GPA_UNMAPPED; } else if (mem_tx_res =3D=3D MEMTX_ACCESS_ERROR) { return MMU_TRANSLATE_GPA_NO_READ_ACCESS; --=20 2.50.1 (Apple Git-155) From nobody Thu Apr 2 18:47: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=reject dis=none) header.from=unpredictable.fr ARC-Seal: i=1; a=rsa-sha256; t=1774550233; cv=none; d=zohomail.com; s=zohoarc; b=NqMFm8HKtT2vcK6o2fxWUsYFM8Y5lcZOxHAD4nfZskUYWxaLYpliNfTHeXPrJx/9ihjY3/o2Isxj0DhZtUNZ/MG0DIpwxYW/XWpemfpI9Lye9FRJ2Li1feIeAjFIrcOb9HV9yTszpmXwU+l0zkGxQRwjEMpDi85DKi96kSCrgFA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774550233; 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=BWXVl5hshoDLx3IxT68wEG5h/cj5C7u/FRFXb/g3yxU=; b=mCqmLT3fyXb/ebQ9csPBGtobpPXw0Q5zodCQt47AZ174QR1etK9peWJwBvbQBJ+6NFG7+XdOl17oN44sebmGF1ThSs4Z4PtF1gatMZHjZcfYy7W1UOBXo9wN08FRFazooHl12SmH/Hwn1mhZoHgyQkF52hebQNvQ6p7CMmt4Qqc= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774550232676439.47590472041054; Thu, 26 Mar 2026 11:37:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5pZW-0001NR-N6; Thu, 26 Mar 2026 14:36:46 -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 1w5pZS-0001Mi-QH for qemu-devel@nongnu.org; Thu, 26 Mar 2026 14:36:43 -0400 Received: from ci-2003f-snip4-5.eps.apple.com ([57.103.91.186] helo=outbound.ci.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w5pZR-0008T4-CL for qemu-devel@nongnu.org; Thu, 26 Mar 2026 14:36:42 -0400 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-100-percent-5 (Postfix) with ESMTPS id 064291800309; Thu, 26 Mar 2026 18:36:37 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-100-percent-5 (Postfix) with ESMTPSA id EAEAE1800171; Thu, 26 Mar 2026 18:36:35 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1774550200; x=1777142200; bh=BWXVl5hshoDLx3IxT68wEG5h/cj5C7u/FRFXb/g3yxU=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=BZcmN0Htqp5y5msyTEcEkojl8YeNx294cwKA6RZee4OZi1Dw6Cm4Mj9GgjpXD/KoFYjTQY0SmW46nOhTiT4HJAKVZr5AA2Jm3I6bcisoY7uXwJeJEQP8fBmh+SEYzHxFqf443UGGo5aay4Mk8AMmUvRT91ogpXo6ljCf6D2HYVZKcUTld5mpZqI4pMnIFnGDPfhFn8TYMtP6nyY7dtO6gONyjzbbZDCb86QCg5NtL/jtn59rRnxXl7N7so7gWhQpoak/mLN3T5ilSFwX5XtStYYGtDS8oZ0i9We+ajHbt6qg6G8M8sOXrpm0vpCpfKrlrcFC3I0RO51BIu+4bcFTmA== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Mohamed Mediouni , Wei Liu , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , Roman Bolshakov , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pedro Barbuda , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini , Phil Dennis-Jordan Subject: [PATCH v3 3/3] whpx: i386: trace unsupported MSR accesses Date: Thu, 26 Mar 2026 19:36:28 +0100 Message-ID: <20260326183628.79281-4-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260326183628.79281-1-mohamed@unpredictable.fr> References: <20260326183628.79281-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 7gwZN35MP819GSmGliL5_DqRnSo5c6DX X-Authority-Info-Out: v=2.4 cv=YdqwJgRf c=1 sm=1 tr=0 ts=69c57cb6 cx=c_apl:c_pps:t_out a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=F72lU19CLR8JNLOIDOYA:9 X-Proofpoint-ORIG-GUID: 7gwZN35MP819GSmGliL5_DqRnSo5c6DX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDEzMyBTYWx0ZWRfX9Y06tU5rTQ0+ v1a06iRYxAjoAcMgX92W8r5RNOteqEWIJyIlD3RHjXmI+uhe7GzY5HIYr4WkZa0VUnrzI9DVXSc +QaTI9drTE3hMOdI6Higo6qoAFTpIsyU+y+dKwnQFhoInZ6FUoBzQrpgHNCiLbhY0Fsh6c+90VG 84hrd9CRKkvAkpMTSnHB58ff1QT11PKkGc7pCfIPWaaBQADuxYsjAOD+uHBNXkO0ma6y3Zff48U CYq7EXmfxPixZdrsPEjXAhDiiEiTrf6DWtNJ5QoCwxp267OAdWlpNgSIjoRaIdopdot5PoPq8G1 FdIXXNc8APoIpghk89WdXVo8p+uIS9C9fD2pkXaXHMxqG/E6SuutEJrfaZt/8k= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-26_03,2026-03-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 bulkscore=0 clxscore=1030 suspectscore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=357 malwarescore=0 spamscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2603260133 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=57.103.91.186; envelope-from=mohamed@unpredictable.fr; helo=outbound.ci.icloud.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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 @unpredictable.fr) X-ZM-MESSAGEID: 1774550235109158501 Content-Type: text/plain; charset="utf-8" Not actionable information for users, so stop having it displayed unconditionally. Signed-off-by: Mohamed Mediouni Reviewed-by: Pierrick Bouvier --- meson.build | 1 + target/i386/whpx/trace-events | 1 + target/i386/whpx/trace.h | 2 ++ target/i386/whpx/whpx-all.c | 5 +++-- 4 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 target/i386/whpx/trace-events create mode 100644 target/i386/whpx/trace.h diff --git a/meson.build b/meson.build index 5a2e7a491d..3f167c6efa 100644 --- a/meson.build +++ b/meson.build @@ -3693,6 +3693,7 @@ if have_system or have_user 'target/i386', 'target/i386/emulate', 'target/i386/kvm', + 'target/i386/whpx', 'target/loongarch', 'target/mips/tcg', 'target/ppc', diff --git a/target/i386/whpx/trace-events b/target/i386/whpx/trace-events new file mode 100644 index 0000000000..ebdfa34b28 --- /dev/null +++ b/target/i386/whpx/trace-events @@ -0,0 +1 @@ +whpx_unsupported_msr_access(uint32_t msr, int is_write) "WHPX: Unsupported= MSR access (0x%x), IsWrite=3D%i" diff --git a/target/i386/whpx/trace.h b/target/i386/whpx/trace.h new file mode 100644 index 0000000000..b7c090deff --- /dev/null +++ b/target/i386/whpx/trace.h @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#include "trace/trace-target_i386_whpx.h" diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index acae61e089..e56ae2b343 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -41,6 +41,7 @@ #include "emulate/x86_emu.h" #include "emulate/x86_flags.h" #include "emulate/x86_mmu.h" +#include "trace.h" =20 #include =20 @@ -1921,8 +1922,8 @@ int whpx_vcpu_run(CPUState *cpu) 1 : 3; =20 if (!is_known_msr) { - warn_report("WHPX: Unsupported MSR access (0x%x), IsWrite= =3D%i",=20 - vcpu->exit_ctx.MsrAccess.MsrNumber, vcpu->exit_ctx.MsrAcce= ss.AccessInfo.IsWrite); + trace_whpx_unsupported_msr_access(vcpu->exit_ctx.MsrAccess= .MsrNumber, + vcpu->exit_ctx.MsrAccess.AccessInfo.IsWrite); } =20 hr =3D whp_dispatch.WHvSetVirtualProcessorRegisters( --=20 2.50.1 (Apple Git-155)