From nobody Thu Apr 2 18:47:48 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=1774553678; cv=none; d=zohomail.com; s=zohoarc; b=UCeQS9CjQj0Y68beo43hSR34stAysY4mpDDnhj4sPBI49YALeLuChaLD67zwOG3qoHhjWV0KHi0B4fgz1/GWCoCWwBFhrXgbZn53o/CFN1ZaM7xa49lEmoSQD3kEYq/+d0SgBfWZAJk6f9cKV9abLLePRih6fVlJTfRXyeTAFW0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774553678; 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=Z2GXF6JkWnG4bNH3Npk9vxvt+C3D4CCl9HJXD6T5u1s=; b=LCNwMhFkGSBlmKpouY5Fb/06EJsRZ6Jbz4697ZEq0LxvH6bQitb2mfKfd7+rC5QJqKmSXkMz7qN5ej1KtETFPxidX390/BUQCJ5r/iWYfEFGNPKpLkuyPYSMjcpg9jhfbixVVkZM85oYwPY2Jfm8WTboFWJ0AlBy3V6skj98F20= 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 177455367873455.727342553573976; Thu, 26 Mar 2026 12:34:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5qT9-0006cl-MI; Thu, 26 Mar 2026 15:34:16 -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 1w5qT4-0006cF-7u for qemu-devel@nongnu.org; Thu, 26 Mar 2026 15:34:11 -0400 Received: from ci-2007k-snip4-3.eps.apple.com ([57.103.88.106] 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 1w5qT1-0001bq-H7 for qemu-devel@nongnu.org; Thu, 26 Mar 2026 15:34:09 -0400 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-10-percent-2 (Postfix) with ESMTPS id 932341800230; Thu, 26 Mar 2026 19:34:04 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-10-percent-2 (Postfix) with ESMTPSA id 92EA81800096; Thu, 26 Mar 2026 19:34:02 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1774553646; x=1777145646; bh=Z2GXF6JkWnG4bNH3Npk9vxvt+C3D4CCl9HJXD6T5u1s=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=SJUT9OXjtj88EB+3FSh7uvsREo5TbNxmHITGhawGEGnYK0LJo0+2Pmoh2B1tnWdSZM+79w1r86cfM57PMOrDl4I/nmlj34cQI0SUIM4P9OUiUbNVAm1YWO8t6fj4KkaWO/pQfclSd9lfsBTTDiBm144fPu4+49aESk4ST7fs0WEoUibnyIngo4TiRW9xHGkyQ8dkhmXg171HV1KBmRBodAzn1i3v3WDYGsCbbktmdDmgrVExq5C1R9q0xU4bZh4hY7g+XLJevBXYpf+knK6vlD8Ip+dLaaez+yeOyEuzv0EtRt7+CSMteIyznD5N1Uklf26okqfMnqdfywZ8Zy9Mug== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pedro Barbuda , Wei Liu , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Roman Bolshakov , Pierrick Bouvier , Mohamed Mediouni Subject: [PATCH v4 1/3] docs: add WHPX section with initial info Date: Thu, 26 Mar 2026 20:33:56 +0100 Message-ID: <20260326193358.97858-2-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260326193358.97858-1-mohamed@unpredictable.fr> References: <20260326193358.97858-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: ghvpxl_OnPsMTqCONNn9A6CvirZFyJ0D X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDE0MCBTYWx0ZWRfX4Z1C4G2B77V6 P8zueCADY8ePk6Sz/1Fvz6i0u7ptvRUPMKBmxvImXeisxfeve0yeGx7Xn+RYZZXHyV1T8MN7zj+ nfB7g+uEH52WIsFGKZaVVeOmcv4eLOUnC0NPKn1qYcjHFWjvIngyKeQ6r64Uy071WpRb3rcJLYU cgqssULRlnIl6vuV5olY0EJP73Em2i1BECU/cuYDp7HRQ+rDu2+9WEiOs1ULbunD82c65hM0Ivm 41STp4BCcN8Uu6Wvi1eLD8m77LZP83PHLB/xRlqtsrIKkIBrcMIhlAYMRUOOdUT1CtE/CeuCn4e hPogpMSp8gibsiL/Jh6/1usvnbAuyd9ijQBToidyb4QN8PwEqEV8yBvBb17kkE= X-Authority-Info-Out: v=2.4 cv=Y671cxeN c=1 sm=1 tr=0 ts=69c58a2d 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: ghvpxl_OnPsMTqCONNn9A6CvirZFyJ0D 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 mlxlogscore=999 lowpriorityscore=0 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 mlxscore=0 clxscore=1030 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2603260140 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.88.106; 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: 1774553681146154101 Content-Type: text/plain; charset="utf-8" Signed-off-by: Mohamed Mediouni Reviewed-by: Pierrick Bouvier --- 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..16065c4f6c --- /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. + +`-d guest_errors` 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:48 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=1774553687; cv=none; d=zohomail.com; s=zohoarc; b=Z+9YiXbd5GCZlfqS+M+K0bHBzmRSuc06puoG1WRCJmgYvndJLQqBXwn9iEB8QDIUsou5UbNbY1gvc8QQd6Qx8ijej9aTv0HVWg5AjajPV2ZKrJU/xKcXkOMz2PU6aMQU3+M0tO/UMhdd2T5JMAXdD/G6rznu/RCOTIWVh2yEmZs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774553687; 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=FKSxblGBMJN9gDudhiJ4g/hzQy9Cx9uqiZTr40R8kdo=; b=Z6V1kObnDE7NiuUi5PE816cjNSlYrxjuqW+0wEPJZ93AonUXTvv2Ztk4jqTAzZ8cjwjTofIpp9UBRydihLn9wxv4mED66oVOMgUjIz6YdAr9YfbvsIwv0bsIpWY9Ddxj99rwdh37ZkjlShSVUF/O6FXHzs5leOkFE+qzeQbh344= 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 1774553687222311.32356821506016; Thu, 26 Mar 2026 12:34:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5qTM-0006eh-1y; Thu, 26 Mar 2026 15:34:28 -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 1w5qT7-0006cW-03 for qemu-devel@nongnu.org; Thu, 26 Mar 2026 15:34:13 -0400 Received: from ci-2007a-snip4-1.eps.apple.com ([57.103.88.4] 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 1w5qT3-0001c3-RE for qemu-devel@nongnu.org; Thu, 26 Mar 2026 15:34:11 -0400 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-10-percent-2 (Postfix) with ESMTPS id 5FEBE1800307; Thu, 26 Mar 2026 19:34:06 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-10-percent-2 (Postfix) with ESMTPSA id 55894180015D; Thu, 26 Mar 2026 19:34:04 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1774553648; x=1777145648; bh=FKSxblGBMJN9gDudhiJ4g/hzQy9Cx9uqiZTr40R8kdo=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=Ev9AWxQua1X3aYJZv++BjYN4HZCelxQeqSfDBTE1a2mTdi47Te9cuLwYxrKeJlFXIYQFWnvM6WGgdyM/QhUElwckdOvu1tk0dso7dGyixbM85mgcZl3UkoOZL6Bvw5puvg0YVmnSBtZbS9l8TSLt3cSfvZCIThRrHQr5xvyocKXjYYBskOWQUiYfszgUOTAGB8UF2V16BXBBQUP5v9SuG13Nn/sGKEXCUOjPTrrdbVU0JlgV9g1CKhSf7BqA13wyD9yOUDnNdj7Ju4bm5J5sTXRKTPXiLC9rNt+TvoMKINl8bBsdfgvRivYOTRYyk9+yAQXPvUiOt51GIOkeE2tqjw== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pedro Barbuda , Wei Liu , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Roman Bolshakov , Pierrick Bouvier , Mohamed Mediouni Subject: [PATCH v4 2/3] whpx: i386: trace unsupported MSR accesses Date: Thu, 26 Mar 2026 20:33:57 +0100 Message-ID: <20260326193358.97858-3-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260326193358.97858-1-mohamed@unpredictable.fr> References: <20260326193358.97858-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: XlePnXYmxVqhaISepmS5n-giOmGUmiax X-Proofpoint-ORIG-GUID: XlePnXYmxVqhaISepmS5n-giOmGUmiax X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDE0MCBTYWx0ZWRfXyjZLEQIoW9D1 imDtzwCWSBaMXIW7fpud3zj9CcG3MYIcukuKRxIJElZjsoKkQWKONh66DXJHGFmWr5mCDdZYy86 HkphWLqDmMZjp4WfJjfauHHJe/JLLohvGAGvsNITgWsiGreiJz+nkRe0hdCZk9l7JdD0x0pRcYn stVbNuWGbLwu1HJmAVV2zc6WKR4PdlVfo2T7wvY1xPKSKlxLC3exgKi7VFr+tRY5tKzkmeOFcJ0 abHt25M34dW+KaLPInZEheVy/yRo7jwKhcc0yKItenWtvAMIfgqiUmEnRKLuiMS8+t+lkI9iKRl f6D+vzuBI2cigpdNgYZM/eN7D+w/sUwdEeuqdR6BHmG7+c6HP18Ge2776wedX8= X-Authority-Info-Out: v=2.4 cv=K+Av3iWI c=1 sm=1 tr=0 ts=69c58a2f cx=c_apl:c_pps:t_out a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=KKAkSRfTAAAA:8 a=BggPbTrBReIH5vXiFLoA:9 a=cvBusfyB2V15izCimMoJ:22 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 clxscore=1030 malwarescore=0 lowpriorityscore=0 suspectscore=0 mlxlogscore=363 phishscore=0 adultscore=0 mlxscore=0 spamscore=0 bulkscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2603260140 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.88.4; 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: 1774553689900158500 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 e6f17dd5f7..c19c5afa46 100644 --- a/meson.build +++ b/meson.build @@ -3692,6 +3692,7 @@ if have_system or have_user 'target/hppa', 'target/i386', '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) From nobody Thu Apr 2 18:47:48 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=1774553683; cv=none; d=zohomail.com; s=zohoarc; b=M7QArHURSW5ognOR8TvBVP8VFPWRj1aNGeoSmZDiEpHivFeNn0R4p58b4fEQtczhmWP85o0J2PY/G67G+LF4uq7rPwzE1zn0uGr2/WNZgQ9sVYiFe1aAMRMPITcnbECpx7ddfAZe+pc58XCy4BaPxZ2vlGsAjyqdVDv/fwjxfkU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774553683; 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=h0AP0KXJMes1uoIFMhmXcv+JibOYHNrqTSD7Amc8qDo=; b=BgllUfZlb4cy3nzF4k+G1zzARq5nZL+lEmH79xsMrjR4EHY3AGZ64b5rGjYohwmrJ5mT1voKV1semABwEyYa7hp2XiMn42oEiZYJ3RUxna7aYKRu1bRINMsZHhujUwadUtHqTkY/JJhkqxkvX4jfrwJnDF4cVLC24a4YmCYL+Ys= 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 1774553683894691.1689400792709; Thu, 26 Mar 2026 12:34:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w5qTM-0006fh-Ia; Thu, 26 Mar 2026 15:34:29 -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 1w5qTE-0006dm-EA for qemu-devel@nongnu.org; Thu, 26 Mar 2026 15:34:21 -0400 Received: from ci-2007f-snip4-5.eps.apple.com ([57.103.88.58] 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 1w5qT5-0001cF-50 for qemu-devel@nongnu.org; Thu, 26 Mar 2026 15:34:15 -0400 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-10-percent-2 (Postfix) with ESMTPS id 21F7F1800200; Thu, 26 Mar 2026 19:34:07 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-10-percent-2 (Postfix) with ESMTPSA id 1850B180023C; Thu, 26 Mar 2026 19:34:05 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1774553650; x=1777145650; bh=h0AP0KXJMes1uoIFMhmXcv+JibOYHNrqTSD7Amc8qDo=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=Eafj8EdQq18krVUsHscDtBmU1WRtB2dw1pfrveO2PjfbSfLis/A8nPxc8Bt5OSlC5VWpy5nbHGxhkkWGbHEWEa++nVMazM5b48YCRDMIkuDNIg8t3VKDHLDeNqTEU9yXTacMYETpvGwTwEcFQQxOdVb71eYE5dI9zJgRrQH/tbWyU+O7NEMo9QT3vwmS0Z2kBEMhcwXOxXskX7Nkr30VKHdSgHalRwqkISBMXkPbZtWdJYeTDne4xniBUbJXBAZgl1eFjMK/8Yw0+6h/jdvfAT5XdevMMaJa7zk1QfCCOpFXhZWdx3tmYa2NDGlREXG6lTGldhV3EcxDTvql0QrboA== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pedro Barbuda , Wei Liu , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Roman Bolshakov , Pierrick Bouvier , Mohamed Mediouni Subject: [PATCH v4 3/3] target/i386: emulate: LOG_GUEST_ERROR for read/write from unmapped MMIO Date: Thu, 26 Mar 2026 20:33:58 +0100 Message-ID: <20260326193358.97858-4-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260326193358.97858-1-mohamed@unpredictable.fr> References: <20260326193358.97858-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDE0MCBTYWx0ZWRfX7bkJg4KJjHqx Y2UlP036K545eB8QDnYsUn4X061uokenZrUHFhVW2J++l2O+mvmLqzSh/hrBMpsZPNSKv769DE1 n2SrCRIcKVpBya0fhvgutaRbY+KC4or3Qr7jF5LYlQgnnorlQ2trvbrFcGEXfU5lWSZvK6tRb3W 9r4KEVC0fYdJ4UL5sAq27yI3UWPaF86Ack8BDdWSwCwC1gzsNkfhEj+5DSeBY0PwElOG9e0RQuH DeBDf+Kp7s1MxXq5Le4ROZuDsjv3WI5FibNsncaBWqSeXq0+57AhlFdDB9FoKyHobvxqkbNUKWI 9bc9LLe4cyhk7w+AWdJEY+uEy5jul1ilJm4dsq3lUAeE67Xz7oeSxs3XCxxYQQ= X-Proofpoint-GUID: DflkSL2ILQZBND7uvsv4YPtxxvZ1pa8Q X-Proofpoint-ORIG-GUID: DflkSL2ILQZBND7uvsv4YPtxxvZ1pa8Q X-Authority-Info-Out: v=2.4 cv=QuJTHFyd c=1 sm=1 tr=0 ts=69c58a30 cx=c_apl:c_pps:t_out a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=nKRBnGPCAAAA:8 a=Sxs32ympW3d1JLnkQCIA:9 a=JhrwjW1jOIvqYJKOqOMI:22 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 clxscore=1030 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 mlxscore=0 lowpriorityscore=0 mlxlogscore=989 phishscore=0 bulkscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2603260140 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.88.58; 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: 1774553684830154100 Content-Type: text/plain; charset="utf-8" ReactOS's install ISO does a bunch of 4-byte accesses to 0xffdff124. This doesn't happen for the boot ISO. It looks to be an access relative to the Windows KPCR which is at 0xffdff000 but mistakenly done prior to paging being on... https://geoffchappell.com/studies/windows/km/ntoskrnl/inc/ntos/i386_x/kpcr.= htm Signed-off-by: Mohamed Mediouni Reviewed-by: Pierrick Bouvier --- target/i386/emulate/x86_mmu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/i386/emulate/x86_mmu.c b/target/i386/emulate/x86_mmu.c index c69ae96acb..815d01d97f 100644 --- a/target/i386/emulate/x86_mmu.c +++ b/target/i386/emulate/x86_mmu.c @@ -21,7 +21,7 @@ #include "cpu.h" #include "system/address-spaces.h" #include "system/memory.h" -#include "qemu/error-report.h" +#include "qemu/log.h" #include "emulate/x86.h" #include "emulate/x86_emu.h" #include "emulate/x86_mmu.h" @@ -287,7 +287,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); + qemu_log_mask(LOG_GUEST_ERROR, "write to unmapped mmio region = gpa=3D0x%" PRIx64 " size=3D%i", 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 +339,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); + qemu_log_mask(LOG_GUEST_ERROR, "read from unmapped mmio region= gpa=3D0x%" PRIx64 " size=3D%i", 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)