From nobody Mon Mar 2 08:45:01 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=1772130047; cv=none; d=zohomail.com; s=zohoarc; b=LLNPT2vrtD2VpVikcNng+ZDDFiQt6eqged/ktNGH+SX5SXXU6r88Wi7b7Mig0IB8sXiGHiSkPjAgdXAfuoAn/k43JG0HXSWaQSGWwziCCvFO1KAXntLRFK2ZhWsK1Qe4i1aCrTm61Ah0xAEcO71z68XrPncpWR0qs2c/0Lgzzac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772130047; 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=3hz+2ZbkV//CV7dGJNInNfCP5pRpi758BYB1c4SIE5I=; b=gWXDpd+wEWM3cDnEVILOQDZLGomEiev7685+slb/M/qrtKhjb+etQEqRFUv07uTepWbwmm9oIxR1Mmy2HJ6hWhtLddRxHnoQWXHBuvgul3P4JTAmOqWgxDZFPA0qh8En/9zdILe8JcmhYaTYnOVtOPGJjDi0vdFT3rpVsobhDvI= 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 1772130047496170.22481398389868; Thu, 26 Feb 2026 10:20:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vvfxd-00005K-IV; Thu, 26 Feb 2026 13:19:41 -0500 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 1vvfxb-0008WM-9J for qemu-devel@nongnu.org; Thu, 26 Feb 2026 13:19:39 -0500 Received: from ci-2002c-snip4-5.eps.apple.com ([57.103.88.156] 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 1vvfxZ-0005aR-L8 for qemu-devel@nongnu.org; Thu, 26 Feb 2026 13:19:39 -0500 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-10-percent-3 (Postfix) with ESMTPS id 820021801802; Thu, 26 Feb 2026 18:19:35 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-10-percent-3 (Postfix) with ESMTPSA id 124CB1801811; Thu, 26 Feb 2026 18:19:33 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772129976; x=1774721976; bh=3hz+2ZbkV//CV7dGJNInNfCP5pRpi758BYB1c4SIE5I=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=ZBd13PKkFLWsRMPe7HcwiFQOPN/h8NIQCwz3Ak9aq4ax84gEAL4A4/U8+Nyhj8f5YoC1D0AHzSQbrxdlbAx6kLBiY4GAy3IDTvqjExWe1VPvTX/HnixVMOGIliQATcLrb6wp/X+8EdghRI85NBmFTXOgBvFLrqrL2CmCaKwkVOubcYeAHD8zThSs6pZfZPI02U+UQ9l0gFZ83avFH9PN+Dt5n4QuFFKECkp0wLEsEFiwcGxKP2VrVAqc04GaCgluMUVSQx6Rk3d5NV4E6mIAUtpRt69uEkY4LRrDg2RQy51DLTEvtng6bwey4yIfIm0ROvvAGO+FxBNVhliIRQ5Y6Q== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Marcel Apfelbaum , Mohamed Mediouni , "Michael S. Tsirkin" , Eduardo Habkost , Pedro Barbuda , Richard Henderson Subject: [PATCH 1/3] whpx: x86: remove inaccurate comment Date: Thu, 26 Feb 2026 19:19:28 +0100 Message-ID: <20260226181930.53170-2-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260226181930.53170-1-mohamed@unpredictable.fr> References: <20260226181930.53170-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI2MDE2NyBTYWx0ZWRfX4yIB0jCuptNY ITe5cG/4okWo/PxIM1+QCcfvLZqaIKrxTlhIR3/z9rnU7ukrX6VHEqIyKznWsSmR6aCVjjOR8TN Y7YBH7VxTUBADboipacENfluUJMR8H40ZS9J3Xaoa5cO29NJbrxzTYNMh88KPWyvnfIrlNSCZzF IW8HyZ0t5i2TkimFblmYEVOZ4ss/DZ+xfI5QfoRwkeaDp+DEyj8bg0R7MLaxUHvG+LZVpQGNG6Q /n01yR/xdUrZX4mO2k8R7KCDpX5Lch66huA6B7obee53x99w0ljdJQCcfhHVqsAjL58PzDqXN2x 2vUGkxkgn/FwIrxRvhUXJG7dpINue/8s9cFT8+KWE6IPMo+r3n6Sik2Lj34nRk= X-Proofpoint-ORIG-GUID: Osd76zlfPEdFQpraLHbQyIbnb6Zbpl2N X-Proofpoint-GUID: Osd76zlfPEdFQpraLHbQyIbnb6Zbpl2N X-Authority-Info-Out: v=2.4 cv=MspfKmae c=1 sm=1 tr=0 ts=69a08eb7 cx=c_apl:c_apl_out:c_pps a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=u3u7fs_Vgx2Jn5GsYsQA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-26_02,2026-02-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 clxscore=1030 mlxscore=0 mlxlogscore=743 suspectscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602260167 X-JNJ: AAAAAAABCWNJcFRbBYzrbio8ky+5FP2YmWudnRH2zjMUbKtHSBcm7izPdqpWZicQCj0zGYYR2xjrNdZX4oOhTeE+NPdwTevyoq5MgSu2+6MxZaVxIsnUhg3hou6UIeBYq8p24Qcxo8IJt+t8RM1RJee7JTip93ojbjtHV2FJO7qJA+Z4yt9NmjihrEi8/XXkiLrsy34o3FsRuCngKkxeWhMfhXW0t838zzu8zsSQy8lumXUoRFpGZrZktUfLY8eb7SgqnemhWH2vMkEcUJedEITvexVpl77+sExb2p0JQtM5s7tCCRuyclkQTBBbl0iND1+m1WIrHDlmFYCTx2ECP+raNBh1om1wx6k8GIfwBP1dskbUcNplaBL18GeOo2ku/sdoJh/uHzVWx2iU55Z51dCXzQZkl4kO5wIoeT7ci1J0CGDUA1aAenDkWOM5HNwkPLfd5/JL1uFwNf4SED6/23esCqhz1Mz2LO4iGscilPDwxhMvGnNj3PplTR8iENTcAf6qBM46cJkvGXgKjnXwZXvPDbM8ZwVz97HrVpUKVh3nUWdmn26ek5Z1kmIuak6JGfVPvQRcG+OtG9KL4h1+/JKHssw/UaGclZ2pIvF2LGoksWTo4AMBrNftwgVgZevhqXxzFjyxCA/+y0IJEdfwXqG8x05RuLD6lruDOXbx67yFIqMpPOZRJJx28foc 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.156; envelope-from=mohamed@unpredictable.fr; helo=outbound.ci.icloud.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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.306, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.668, 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 @unpredictable.fr) X-ZM-MESSAGEID: 1772130048584158500 Content-Type: text/plain; charset="utf-8" WHvRunVpExitReasonX64Halt _is_ triggered on halt with kernel-irqchip=3Doff = as of Windows 11 version 25H2. Signed-off-by: Mohamed Mediouni --- target/i386/whpx/whpx-all.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 8210250dc3..bd3a1c49c6 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -1648,8 +1648,7 @@ int whpx_vcpu_run(CPUState *cpu) =20 case WHvRunVpExitReasonX64Halt: /* - * WARNING: as of build 19043.1526 (21H1), this exit reason is= no - * longer used. + * Used for kernel-irqchip=3Doff */ ret =3D whpx_handle_halt(cpu); break; --=20 2.50.1 (Apple Git-155) From nobody Mon Mar 2 08:45:01 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=1772130027; cv=none; d=zohomail.com; s=zohoarc; b=mrxmj3nj/IEWA2ATgvycKZeyLdEhndAHTncHB+HfeIy4ysMtazf2BPrloiZQLWQtqyK2++6iYidsfPTifJLIXmwvTIduVE8qhBo5zBblZ/3SOrLAfABOYrnNpM9tR74R+UQLiprzwPxhhE09jwoH8ZBg3xM0COrKpsK+ZhpMtWw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772130027; 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=7qA4BCLQMN4XS1FXGbMF13eb+LsIV/MEtTwRy2sZzuQ=; b=AQibGvc2NZokbv5OYlHx8mmfrWxopkxSGnHV2iO3zH5Jc5k8v2DDEDaMtlHPh8TQjDp+3wD4ByUEpLpr1XgBpCkJouTPXpuE2i+1A66mT7fsNEj6tdVhlQhT8rnwdPoMVykZvHdkoe6mDCc6aqTX/dK5nvN98+XPZ9RMIpiFD+w= 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 1772130027593105.55243768186665; Thu, 26 Feb 2026 10:20:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vvfxg-000061-3O; Thu, 26 Feb 2026 13:19:44 -0500 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 1vvfxd-00005M-Vd for qemu-devel@nongnu.org; Thu, 26 Feb 2026 13:19:41 -0500 Received: from ci-2002j-snip4-2.eps.apple.com ([57.103.88.223] 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 1vvfxc-0005av-FU for qemu-devel@nongnu.org; Thu, 26 Feb 2026 13:19:41 -0500 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-10-percent-3 (Postfix) with ESMTPS id 4F4A01801811; Thu, 26 Feb 2026 18:19:37 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-10-percent-3 (Postfix) with ESMTPSA id 7900A18000BA; Thu, 26 Feb 2026 18:19:35 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772129979; x=1774721979; bh=7qA4BCLQMN4XS1FXGbMF13eb+LsIV/MEtTwRy2sZzuQ=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=Zq7TNp48IsZuUijwJfRHZrjJR/ToZdUEaKY03FgmhDiX1iTXnkUUwiwSgxiMK8YLwJcIJXxgPH14bu9ULBuqxMlIEl3PGVAh56QR//MHb0k3R1gZ2yahPLFrynGShPCyYjvg5dJHt4bxL6vH2Dczc74IkF/r5nPzc4MpJQ/ZuekpYxVfys6/1FGm6PYtTIrbwStY71kpy3VCYCfCAE/bB3Jd7gP6oBqGJ0Ya44eZVpJDlWhLTjPS0Ortb/DAupNxKmHymaVaM6t9PrnJEdT4FUcdVky104xeEUftlDWv3bCp2eYEuHjHBQJ01llmTdY6WxwUoISRCPM+by/DuMQ7ug== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Marcel Apfelbaum , Mohamed Mediouni , "Michael S. Tsirkin" , Eduardo Habkost , Pedro Barbuda , Richard Henderson Subject: [PATCH 2/3] whpx: x86: kick out of HLT manually when using the kernel-irqchip Date: Thu, 26 Feb 2026 19:19:29 +0100 Message-ID: <20260226181930.53170-3-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260226181930.53170-1-mohamed@unpredictable.fr> References: <20260226181930.53170-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: Qlom6O-qW0uBbvC88L4ilTJnHcPeICJ2 X-Proofpoint-ORIG-GUID: Qlom6O-qW0uBbvC88L4ilTJnHcPeICJ2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI2MDE2NyBTYWx0ZWRfXyrtgCEj7yAFF I6oe4pa9L+jxsP9/iXtgbcd4od5O9vqrwyrbGcpHhvvnLl8cc4F1WExvV135xzFCskzGkkcnBWI oSdD//43aPXruxKihia0PlwLu3nAoGetFVsOixI1KDdjMWjh1o3tQJXPrdEV96fkRvCXrImkTa5 5eiDzJrvQfDEFVvGhx83IxDc18skWdsCxgoltwjl9BMFno4fc0jJZNLqVxsydIl8LJIoVq3VmDD XgcDwQ5lZ8MhoteEEQgRfvymhxPzZ0i2mTun4w8YPlyRjTrkTeu7CeMRFc+/4sK1qdpSD3A9VLz Dkt3x6/WTJF3anbBqsqUFccHgXcCQdkWbKMGpwOSrKMLnlD1LPWXYxKT3nHQN0= X-Authority-Info-Out: v=2.4 cv=C7jkCAP+ c=1 sm=1 tr=0 ts=69a08eba cx=c_apl:c_apl_out:c_pps a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=fIeqQ3EAThi7b9p0I9QA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-26_02,2026-02-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 mlxscore=0 bulkscore=0 spamscore=0 phishscore=0 clxscore=1030 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602260167 X-JNJ: AAAAAAABUvHMqQ+uCmRRZ4AlElLHjh8SKqxo6l5m7eqJBCMgVC/bctFYo9Q1kZEyevZIuJJ9+xXYYNl5hVUt2J9rSkwvf2gP5W14gBYvgqfpU0zJc8O6IF3nPOljJWEpzXr1uoy1Rs867h3bDk9JzJuzRatkLgbmsBl9VAP/k9oU8tWLR+9422YMQFmX511fa/FdYcUIeDKxkunSkdNLoXYW1qS/hWINjMYEq1FeZrcWCiO5JatesMdsiei07Q3Cl4cGQlU87qoBUXj30aai9gXnnSQXTosGBlXrixXGGDYuFEvV1pI897a/qAi23Y01P13FAWkOLJ9x68oR9NGSSJZnu0YW1P4VXzcV7kpwoVjx4Qb1t61Ja1wGwRUe/H/Pcy1BCK0j5R+sVYoM0acgokvCnKoceSMGZJauz1M4I3p0p2sQWz0YF5jcClpv4PB/AqTnU/KXMx1emO+YDBmlqvHgXrF1wYRnvTsnlcYQmdTfbvPXs8rsJ56B8o8gp5w9MztWzjirDmE5sCQ6eWhxX24UWCpyawsoHkUZM3TgAb6AST+JMxqWR8h6k6jWDfNe7Zn/cb1HNXHyw4vuglQDYLyUIZFONA1LofenP0aBpFDqtP/DIXm+fGtTP759XWgpAQdCCHvZ4cUu9dOSTIry+ULnqCQKBylT4e3h30198fK7bPAUIisheypXDXXxZJhLthP/TJVligDw81Y= 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.223; envelope-from=mohamed@unpredictable.fr; helo=outbound.ci.icloud.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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.306, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.668, 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 @unpredictable.fr) X-ZM-MESSAGEID: 1772130030617158500 Content-Type: text/plain; charset="utf-8" Otherwise, interrupts processed through the cancel vCPU and inject path wil= l not cause the vCPU to go out of its halt state. Signed-off-by: Mohamed Mediouni --- target/i386/whpx/whpx-all.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index bd3a1c49c6..650d65c61e 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -1475,6 +1475,16 @@ static void whpx_vcpu_post_run(CPUState *cpu) !vcpu->exit_ctx.VpContext.ExecutionState.InterruptShadow; } =20 +static void whpx_vcpu_kick_out_of_hlt(CPUState *cpu)=20 +{ + WHV_REGISTER_VALUE reg; + whpx_get_reg(cpu, WHvRegisterInternalActivityState, ®); + if (reg.InternalActivity.HaltSuspend) { + reg.InternalActivity.HaltSuspend =3D 0; + whpx_set_reg(cpu, WHvRegisterInternalActivityState, reg); + } +} + static void whpx_vcpu_process_async_events(CPUState *cpu) { X86CPU *x86_cpu =3D X86_CPU(cpu); @@ -1760,6 +1770,25 @@ int whpx_vcpu_run(CPUState *cpu) cpu->exception_index =3D EXCP_INTERRUPT; ret =3D 1; } + /*=20 + * When the Hyper-V APIC is enabled, to get out of HLT we + * either have to request an interrupt or manually get it away + * from HLT. + * + * We also manually do inject some interrupts via WHvRegisterP= endingEvent + * instead of WHVRequestInterrupt, which does not reset the HL= T state. + * + * However, even with this done, if the guest does an HLT with= out + * interrupts enabled (which the test_sti_inhibit KVM unit tes= t does) + * then the guest will stay in HLT forever. + * + * Keep it this way for now, with perhaps adding a heartbeat l= ater + * so that we get the CPU time savings from having Hyper-V han= dle HLT + * instead of going away from it as soon as possible. + */ + if (whpx_irqchip_in_kernel()) { + whpx_vcpu_kick_out_of_hlt(cpu); + } break; case WHvRunVpExitReasonX64MsrAccess: { WHV_REGISTER_VALUE reg_values[3] =3D {0}; --=20 2.50.1 (Apple Git-155) From nobody Mon Mar 2 08:45:01 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=1772130034; cv=none; d=zohomail.com; s=zohoarc; b=TRxOQE9KLeKsfl4KrS5Dz7AhvKxgCZVvdUdPZNupDMEE907OIh/25zMBYDvpxi7eTbe0TSFFSFK7s1NDz47dfjo2X3vCr836S2MavgoKSeT1KwRjz4f87pMNuFkZPUKeCNq7nPVYjmOZ62vWKpdlGSST/tn6dcLf+FVEAbYMIBY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772130034; 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=agiXw2nrucHe1hKwJE/S0tKqgc/AlRiSaLAhW6W+4JE=; b=dV2Tbzq5lmoBLmSk+5AJRevmxoTvAoBq9LbENY0A2Tm33vlODu6HHXeZVUr7R+AIl2HYALH0BxiJvRKvLJCt17xjqrtsnoNFC20vysAdFOVUkPrhiUEw0Y5lkRkqVyMhWQ//+fSDnnmNweynKwdkQUyBM+w/U7cbSlBIGKOF8gg= 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 1772130033695984.7326077477738; Thu, 26 Feb 2026 10:20:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vvfxg-00006G-In; Thu, 26 Feb 2026 13:19:44 -0500 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 1vvfxe-00005N-1x for qemu-devel@nongnu.org; Thu, 26 Feb 2026 13:19:42 -0500 Received: from ci-2002a-snip4-11.eps.apple.com ([57.103.88.141] 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 1vvfxc-0005at-FG for qemu-devel@nongnu.org; Thu, 26 Feb 2026 13:19:41 -0500 Received: from outbound.ci.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-central-1k-10-percent-3 (Postfix) with ESMTPS id 4CC37180182A; Thu, 26 Feb 2026 18:19:38 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.156.36]) by p00-icloudmta-asmtp-us-central-1k-10-percent-3 (Postfix) with ESMTPSA id D4F55180093F; Thu, 26 Feb 2026 18:19:36 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772129979; x=1774721979; bh=agiXw2nrucHe1hKwJE/S0tKqgc/AlRiSaLAhW6W+4JE=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=EbCQ5x842PbOi6+udmw82lZNbE8VB5VU2QlnEnJKv8DM1ZlzmRbgXrvVreap07kUdBpWU2nYWruF1uRKEqHuq1IQGUIN+KA5CaG5jvytRr3ZfTgxrCyyfcRiz34uPjLFdGRdRPykgccLpOtwm2FueB1McqlqX6cpJ1k/5fO/ebrQR84zw2CBmaBboxRbqor3nSdpD7L8o3tFLHWwvcLWFJR5460QHNuVocwVk/68N6s9K9Jc2QvkJLpXd+Gbh+Y7E6RmEWH4E6hJqfGq293dqzD29n1ywvjwoil/EOm+tvbqDxLH/mGlJ4IcmezmuebkutYU4MPceGLKSeKFQHMvpw== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Marcel Apfelbaum , Mohamed Mediouni , "Michael S. Tsirkin" , Eduardo Habkost , Pedro Barbuda , Richard Henderson Subject: [PATCH 3/3] hw: i386: vapic: enable on WHPX with user-mode irqchip Date: Thu, 26 Feb 2026 19:19:30 +0100 Message-ID: <20260226181930.53170-4-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260226181930.53170-1-mohamed@unpredictable.fr> References: <20260226181930.53170-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 7J_OxssxhAKlIjFKhaDR3HEZqNGmdDy3 X-Authority-Info-Out: v=2.4 cv=WMlyn3sR c=1 sm=1 tr=0 ts=69a08eba cx=c_apl:c_apl_out:c_pps a=2G65uMN5HjSv0sBfM2Yj2w==:117 a=2G65uMN5HjSv0sBfM2Yj2w==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=SuDxGJzo5uN7fQlDX74A:9 X-Proofpoint-GUID: 7J_OxssxhAKlIjFKhaDR3HEZqNGmdDy3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI2MDE2NyBTYWx0ZWRfX0DophRzOg8e6 KIFr7YF5UABZLEpoRzDlc1mCXF9dXATAUS96tWzYtbsC/ptnP/ynKMm/bQL85qfcoACFrhR3VIe wwXA3oZp8jyX0qGuASG2WutdmLJHLa2Zx5gwR7tRKfRC/xxtjbB35kMDAR3LvXAdkGxdBcwg5jG qIrurqdmhLaZ3agnv9ZzwKZPhg870nWkZ8A0GcDV+ZSf70UENgKNTKueJTnW596SERY/xhVKQcM Ad5d4hH7D8i7WfN3qw/0XdS5k/dItt/6kqMBgvPtv8H3TVsqQcD71ovzG9FewTaLd2NaaWGQImy qCtDnTLemD0lgYGSVJ18AWHIL32jOu87b2ZVyqHI4h2/UwTjLyO0mAampY7FkM= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-26_02,2026-02-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 clxscore=1030 suspectscore=0 mlxlogscore=916 phishscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 mlxscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602260167 X-JNJ: AAAAAAABjCzhRupQRV6oJPJE1kGdTlHDGXNUI7hUXVHkUlRl/aFRYUn1/gbMutdMQpH1lJc13GGrYX7mKQ3jPC2dnCaxVa1IsXIF1TO4vLwXHD1N9lq57Esha76DS7u6yIOGjecOkJ+IquByqznGI+DyRE7hl81Z7utX+OHMxcThrzXLe84kNqZxkng89AZHKx9Y0YtRuBYwKrjZa5cjxlMyuf8rAY68PEQZCCDrgP/sWwcJ1BQH6ezGdp+kB1x8xXed69ca4cZMrKotIDkisXl0d2I36n0HwQYZEPV7SH1TWQYhwfsRU9K/z75s/z3LlwR2R3ZBpTSsRyb5g1xAkuWs58kWDdxdjbSpzV6DCfJe8qSFYC+F2NwMLg4Nvz31o85aNHiddhxG8kbG7BhgOSKaCDKiOhS7KgXVwecGV60whgPNgRwojAx72+VQUkxE+C9xjZxg/DtnET4WS70XstLNyYxP5GCnmMKU9gvQNV6SrYInrbUyc6SWerOAw6wzW1sNjqTyiMp3y7TfODA6X7ZB9n1TmVePfVtv09KWMaixoKu1PM9z7J0qpJeoN/t8UHPMxfXSxRkceavKZ2uQkE2P/zvKPvOKJtpRI8fv60YzUocd+srlp+EwCkmKBFnUS31jPksUldevukn1mH5U3BLfl1cbVFxcJYUo6BwgfxN3BkfwaWnrfIId3yv2JghnSu1W4kfrxxqj9jhQ3lZy3wiMplRkPIaGsmb1PA== 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.141; envelope-from=mohamed@unpredictable.fr; helo=outbound.ci.icloud.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.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.306, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.668, 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: 1772130036832158500 Content-Type: text/plain; charset="utf-8" Alleviate a performance bottleneck on legacy Windows guests. In my test setup, this makes Windows XP boot times be 20x faster than they're otherwise. Signed-off-by: Mohamed Mediouni --- hw/i386/vapic.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/hw/i386/vapic.c b/hw/i386/vapic.c index 670a50524d..35e28428ff 100644 --- a/hw/i386/vapic.c +++ b/hw/i386/vapic.c @@ -16,6 +16,7 @@ #include "system/cpus.h" #include "system/hw_accel.h" #include "system/kvm.h" +#include "system/whpx.h" #include "system/runstate.h" #include "system/address-spaces.h" #include "hw/i386/apic_internal.h" @@ -229,7 +230,8 @@ static int evaluate_tpr_instruction(VAPICROMState *s, X= 86CPU *cpu, return -1; } =20 - if (kvm_enabled() && !kvm_irqchip_in_kernel()) { + if ((kvm_enabled() && !kvm_irqchip_in_kernel()) + || (whpx_enabled() && !whpx_irqchip_in_kernel())) { /* * KVM without kernel-based TPR access reporting will pass an IP t= hat * points after the accessing instruction. So we need to look back= ward @@ -549,7 +551,7 @@ static int patch_hypercalls(VAPICROMState *s) cpu_physical_memory_read(rom_paddr, rom, s->rom_size); =20 for (pos =3D 0; pos < s->rom_size - sizeof(vmcall_pattern); pos++) { - if (kvm_irqchip_in_kernel()) { + if (kvm_enabled() && kvm_irqchip_in_kernel()) { pattern =3D outl_pattern; alternates[0] =3D outl_pattern[7]; alternates[1] =3D outl_pattern[7]; @@ -679,16 +681,26 @@ static void vapic_write(void *opaque, hwaddr addr, ui= nt64_t data, } break; case 1: - if (kvm_enabled()) { + if (kvm_enabled() || (whpx_enabled() && !whpx_irqchip_in_kernel())= ) { /* * Disable triggering instruction in ROM by writing a NOP. * * We cannot do this in TCG mode as the reported IP is not * accurate. + * + * Oddly enough, KVM increments EIP _before_ the execution + * of the instruction is finished. */ pause_all_vcpus(); - patch_byte(cpu, env->eip - 2, 0x66); - patch_byte(cpu, env->eip - 1, 0x90); + if (!kvm_enabled()) { + patch_byte(cpu, env->eip, 0x66); + patch_byte(cpu, env->eip + 1, 0x90); + } + else { + patch_byte(cpu, env->eip - 2, 0x66); + patch_byte(cpu, env->eip - 1, 0x90); + + } resume_all_vcpus(); } =20 @@ -705,7 +717,8 @@ static void vapic_write(void *opaque, hwaddr addr, uint= 64_t data, break; default: case 4: - if (!kvm_irqchip_in_kernel()) { + if ((kvm_enabled() && !kvm_irqchip_in_kernel()) + || (whpx_enabled() && !whpx_irqchip_in_kernel())) { apic_poll_irq(cpu->apic_state); } break; --=20 2.50.1 (Apple Git-155)