From nobody Mon Mar 2 08:45:03 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=1772315305; cv=none; d=zohomail.com; s=zohoarc; b=TNW9fu6k9+EQBA2ZOAXRC1bhlXxBZvKE4E1okUu54E556IPxY7aNFclmsR97vhB4/7mfduXHbDpfiHENLUJrhIDRTVh/yxAtYOXg3B5oa4igtGJS1PbC7CNSHJdCgYJNocqLsAQJbvsFO9ZmH6D425g8MD0XjRCrIs2v8hmFuAA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772315305; 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=4n4xIy8i5xV9kHLwKpAQhwfVxRJH3sNm66Cv+vgl914=; b=hru6SkBMisjIy/FBkLcoWJWqTOHkXdc1D/QJH6k1U6L6PgsnyRxGix00L2RPdVd0VDp7Z48W4Jzdc48sI+mqFLMRk1J1KCugez6Q2EewnITLNDXc66Wsnixx6AIVYbPYm3FTy05XcAcTfcEtih1sM7fo3t7vcTFATqcuW/v09DU= 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 1772315305714762.9923782064219; Sat, 28 Feb 2026 13:48:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vwS9h-0004C8-Aw; Sat, 28 Feb 2026 16:47:21 -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 1vwS9d-0004Aj-J1 for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:18 -0500 Received: from qs-2005k-snip4-11.eps.apple.com ([57.103.86.241] helo=outbound.qs.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vwS9c-0002Tf-10 for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:17 -0500 Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPS id 51617180013D; Sat, 28 Feb 2026 21:47:10 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPSA id 6D9B71800133; Sat, 28 Feb 2026 21:47:08 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772315233; x=1774907233; bh=4n4xIy8i5xV9kHLwKpAQhwfVxRJH3sNm66Cv+vgl914=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=YuaT5ygCgean+2UWg47mKBfS0P+RAXSXsNNU8JNNaaIYPMQMw5ylfBKoULRlipESpDiqLXgRgFfBp5FrS+EbjJPkw9eIWw+P4CZhAGi0/EqO5Waa1Nvzna0ZjfJUdkBYBsy17cs6itEGCFKkCSVtJ/hsrnQwPtNAlO7FeJwtpO/dCVqIItuWdm6h9y66E0Hd/AfYlwhSyhUwUmNE3CEadWHJRX7nnDsbKGpNAUJN12XfKoNuAkYCHXJL1tt8cCLEKV95h/ODueEb/6q7ugWe0HTBc8m+3gTAx2R/AxpCpXFlfFAMKiagU8dyuLkKJiKGIue78K+/OoJOufWOi7E/FQ== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Cameron Esfahani , Wei Liu , Pedro Barbuda , Phil Dennis-Jordan , Roman Bolshakov , Mohamed Mediouni Subject: [PATCH v2 1/8] whpx: i386: move whpx_vcpu_kick_out_of_hlt() invocation to interrupt raise time Date: Sat, 28 Feb 2026 22:46:57 +0100 Message-ID: <20260228214704.19048-2-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260228214704.19048-1-mohamed@unpredictable.fr> References: <20260228214704.19048-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: foUfAYin6i1JFG5tPM5l9Ei3QA42NHFh X-Proofpoint-GUID: foUfAYin6i1JFG5tPM5l9Ei3QA42NHFh X-Authority-Info-Out: v=2.4 cv=NoDcssdJ c=1 sm=1 tr=0 ts=69a3625f cx=c_apl:c_apl_out:c_pps a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=o8I7T96M5UCSVa1h564A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI4MDIwMyBTYWx0ZWRfXxnJjRW6IWaK5 JHFJEhuwnxLpMF67MRTiYR/P6oweJB7c8MBdHry2DjDgcL3+9nkIEamhk2PkEQerYomqvoPknVr +Zx8MqcG//WI+J7xeXndxONRo3n9VWEKxcoUrSida0HxVpMynUOHHFOxA6Bg5h/twajuxpW5tH/ wOgn9AbNX7pvn0bwA2EVOpu9m9YVgSZJj8XuAyNCNMDik+xh+8qKu98cObpeL4Z6spQ4oB+5dMn zcOxAU6UaRvdLWJ4YXlvb9chM3tyLE40zU6rKuZOKhzeii4rjuoEev3CIMs8dsEXPcT+9EtjAr1 h2cwObxaTeWmI3xbfAJtuz2miFifkWa+AuKkto5usMsz2UgN8BD6zf3lSw0unU= 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-28_07,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 clxscore=1030 suspectscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602280203 X-JNJ: AAAAAAABIlm5tePjv4X9vt2D+fTviVk+nmZ2x4HMaiXGPvkG1SpCGCnsYmI9uATfxPzc6aKotZQiBOnJKTgaUaqLTScmlFPpFc2pQNPv8sKBYqnjIUH5LBqtZBB/wx4QjB5oaUS5RNQdaeUnDC+B3A9U9GaNli581Qh/Cqugus1kyqIiRpTYSt8HDbQoGFZaVXAMuMthTYXS8Ge2JCpRp0tf26dGeJbHojPwYlkRdNeDIJAlawBUTzhl0ZgjSLaHb6DMwy0LADYJ0s+lFgwh45c1WNcV4/vA4IykgjpjAV3HIdtcza4Hn1PeRUrdcQawiFKHjQAU88i0Qnra0AzH+1cObMy+I4d4gWRlSB2E/02s46tNdAThOlieYJKq8+FDrh67O/GiAn+cDaA5+gvlRa6R/tDzPOlOSgE1v7WwOrpRE6eQnjPTa3VRhvhP4BDOAwpvZ7IdKyzvnODxBWUO02GWy9Pb3psUnGN03/VfNremlswZeFklsBtl46cz7217PLh0wBHf4rTNUfsVzFuqO/kA0LdE9TcGlp338QOcdiamlqWdWOxUdL2UVP2D7efA/bmK6OThrGklLJUA6QdzPoxK1BttB4J5GDmY5j+T6xjcQWUUP4aScoM0LLOTAHeNCvFWQDWVyH2uttYneIDt0eCJmObxAdXpj7rD6g7ZUTehD02NHWRpHlWsmdyDdz5tRSmOIs8S 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.86.241; envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.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_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.966, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.722, 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: 1772315306933158500 Content-Type: text/plain; charset="utf-8" This fixes the sti followed by hlt kvm_unit_tests. Signed-off-by: Mohamed Mediouni --- target/i386/whpx/whpx-all.c | 49 ++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 6d2771a98a..90f51fc4dd 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -1308,6 +1308,16 @@ static int whpx_handle_halt(CPUState *cpu) return ret; } =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_pre_run(CPUState *cpu) { HRESULT hr; @@ -1391,6 +1401,17 @@ static void whpx_vcpu_pre_run(CPUState *cpu) .Vector =3D irq, }; reg_count +=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. + */ + if (whpx_irqchip_in_kernel()) { + whpx_vcpu_kick_out_of_hlt(cpu); + } } } =20 @@ -1453,15 +1474,6 @@ 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); - } -} =20 static void whpx_vcpu_process_async_events(CPUState *cpu) { @@ -1770,25 +1782,6 @@ 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:03 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=1772315296; cv=none; d=zohomail.com; s=zohoarc; b=EZMhxayZS5Y1nXEN47+X0D74x+Pdfi4ClDgkqnA58fo99N40qfjh1yfPwtjl+SAk6QneOMugwSl5z6m+cV7rTPW0veoU6XfJIzZp0/G+YdkemYWkGzPLRXzqhHoWGCxq8xcHVt130RluLDB5HpZIM4DgQOTQpV2Czs+nO5Wheok= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772315296; 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=x5vmcSdYHKQ1byZOmRZeGIdImPo+Cp8DSOTH0Tm5/x8=; b=muOAejcYN4VzBi0Rpe6+J2cLFrWUnWc/FZpZHENYr4bIhd06pFnnTf+rxajLjqdJgvp3/vZR3o86GLpJhb9AhFgLrD6cT9HGpW1wPaOTX4VXG7dbVMvh1V68WqGiw/7SWUWHnP06vRD5lqHgRogHQ/rvZAxa+PnH93Hn+2sltWo= 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 1772315296325743.8472665805803; Sat, 28 Feb 2026 13:48:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vwS9j-0004CU-1K; Sat, 28 Feb 2026 16:47:23 -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 1vwS9d-0004Ai-GU for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:17 -0500 Received: from qs-2005b-snip4-7.eps.apple.com ([57.103.86.148] helo=outbound.qs.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vwS9a-0002To-OC for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:17 -0500 Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPS id 61D5518000BB; Sat, 28 Feb 2026 21:47:11 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPSA id 871731800194; Sat, 28 Feb 2026 21:47:09 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772315234; x=1774907234; bh=x5vmcSdYHKQ1byZOmRZeGIdImPo+Cp8DSOTH0Tm5/x8=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=U09EEvdooAeDDUH+0xUiw58D3P0YOSUqw8gdeWPaCBnftX8xSBCiidRDQC2Ahx7lXmd56qy2yZPbcRRbLB5K4rslPRaxftov9WeK9j+bE5I1FhYkFDHp3B6ugLG9TARG7OFU2PTOzrujHLgraOK1m4mf1whwWALa6y9WrhFZQ8U2h2P7rshwgixTtVZ04CD14POBGUxz3tloJ7uYtG0c71bMXgyp70xako1ApYfGLQRiCayL7LRiTkG1IjKVdCipUCZNNQh8lomYy/z+y95gFNhSfMpHazGUWOMWaIW240inPak+aydAVDbfEPigySbhgGIk1lS+4U940BzTNs03gQ== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Cameron Esfahani , Wei Liu , Pedro Barbuda , Phil Dennis-Jordan , Roman Bolshakov , Mohamed Mediouni Subject: [PATCH v2 2/8] whpx: i386: enable all supported host features Date: Sat, 28 Feb 2026 22:46:58 +0100 Message-ID: <20260228214704.19048-3-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260228214704.19048-1-mohamed@unpredictable.fr> References: <20260228214704.19048-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Info-Out: v=2.4 cv=J9GnLQnS c=1 sm=1 tr=0 ts=69a36260 cx=c_apl:c_apl_out:c_pps a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=268zvHjo1I8v1SDp_XwA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI4MDIwMyBTYWx0ZWRfXxw/xQmOOt2pF fOoaSQb4F/CUljlJMwACTBBs0QA+CCfvB1DFoVOtXkQUO1fM2JCCimCfChGSRqA3c4JQak2zgxt Wz++xa2ol5iLYKDK762xT+sc1qQpOJpyKF68bbl5YPreLKK9cPj0fq0JdybcMI/AxPdq0ZKh2Jb i8yHtj3v40zLeSpmRlhtq2PMQ4DuttU9iLuFGnsX9GTc3t5pSTEszMIFzB9X58Rgr21yXoeTZf8 CMYPYrcprrsZ8ApTwhHFDPp45ntc3POK3r6lIEoBwv86v3Sru4LmlPENJfL2AFV7A0j7r8GcVMc BTspBAjC8kdK66c4q/vArTzWOAiwvKVLGXR+uaEeLLnnG1+VJTI6oMxuFBSVLk= X-Proofpoint-GUID: BtXkmyHs4GLoq2dBFJ4MR-Twp9Yh8Gfw X-Proofpoint-ORIG-GUID: BtXkmyHs4GLoq2dBFJ4MR-Twp9Yh8Gfw 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-28_07,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1030 spamscore=0 lowpriorityscore=0 suspectscore=0 mlxscore=0 phishscore=0 malwarescore=0 bulkscore=0 adultscore=0 mlxlogscore=760 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602280203 X-JNJ: AAAAAAABUTq6UU5bAjYLgeH+Y2D+ACx9BtFLNXrH8c2TG3KXrBitNHpwv8UmE5sdJaACQoDFaQAOmeSWFQzp+IuNv7tDdIzs2uUB4lcq4lHrUlhBSmhazQu4/+leadFjYdIpwTtkzPpsCGTPTkokmb3FurgVM81L5gy05p//ET8pzbfT1TIkhg0hXpPpkLBezPbsy3tnhDSOg4Jvr6GMKYgHJvXtTzLO6dElivmE1QuREXQLkbd26JuwWKEwIHpVXVOLTKW/w2ghAzhh9eNNA+IFzLRiaFmuipiKhcdp9Fg9fgTL8z/smNgX/HRhlSp4wv3IfuUzKhPgxyP4OxUnNdmXTc6zTdQU2+aDYi4QeDpm9UDJhSNyq+1UGQUERg5bUBpIDE5NLMdQBE32Rndaa0Kzw9rbdvfJpLzEoYkldnR/uJt6NhtTuwh4KlUpzxNi1sfh4byU4W58vVzxqg6LjQZy74xvnID/MW6NpmTV/cxUdvZvyL03hYOaykkGewQK8pvzay2/dKHfViipCUfwRNTFAf8E+9fCADuP849VBiElaIxU1Sp1vqvDdq2WEKbrtOYZ4AO1oviaLCkdIMdOuhr1WHKb/upD7l+6WbYbEACFmTcdED6CL76zF4bwErgNmYN0LR+I5Bjj5VXlbWK2sV5qKefMtAczJ/2Vx3OVZjmmiQ2l3te95Aj4T+WhWg== 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.86.148; envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.icloud.com X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 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.966, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.722, 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: 1772315298601158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Mohamed Mediouni --- target/i386/whpx/whpx-all.c | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 90f51fc4dd..ccc52d1f96 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -2007,6 +2007,7 @@ int whpx_accel_init(AccelState *as, MachineState *ms) UINT32 whpx_cap_size; WHV_PARTITION_PROPERTY prop; WHV_CAPABILITY_FEATURES features =3D {0}; + WHV_PROCESSOR_FEATURES_BANKS processor_features; =20 whpx =3D &whpx_global; =20 @@ -2112,6 +2113,45 @@ int whpx_accel_init(AccelState *as, MachineState *ms) } } =20 + /* Set all the supported features, to follow the MSHV example */ + memset(&processor_features, 0, sizeof(WHV_PROCESSOR_FEATURES_BANKS)); + processor_features.BanksCount =3D 2; + + hr =3D whp_dispatch.WHvGetCapability( + WHvCapabilityCodeProcessorFeaturesBanks, &processor_features, + sizeof(WHV_PROCESSOR_FEATURES_BANKS), &whpx_cap_size); + if (FAILED(hr)) { + error_report("WHPX: Failed to get processor features, hr=3D%08lx",= hr); + ret =3D -ENOSPC; + goto error; + } + + if (processor_features.Bank1.NestedVirtSupport) { + memset(&prop, 0, sizeof(WHV_PARTITION_PROPERTY)); + prop.NestedVirtualization =3D 1; + hr =3D whp_dispatch.WHvSetPartitionProperty( + whpx->partition, + WHvPartitionPropertyCodeNestedVirtualization, + &prop, + sizeof(WHV_PARTITION_PROPERTY)); + if (FAILED(hr)) { + error_report("WHPX: Failed to enable nested virtualization= , hr=3D%08lx", hr); + ret =3D -EINVAL; + goto error; + } + } + + hr =3D whp_dispatch.WHvSetPartitionProperty( + whpx->partition, + WHvPartitionPropertyCodeProcessorFeaturesBanks, + &processor_features, + sizeof(WHV_PROCESSOR_FEATURES_BANKS)); + if (FAILED(hr)) { + error_report("WHPX: Failed to set processor features, hr=3D%08lx",= hr); + ret =3D -EINVAL; + goto error; + } + /* Register for MSR and CPUID exits */ memset(&prop, 0, sizeof(WHV_PARTITION_PROPERTY)); prop.ExtendedVmExits.X64MsrExit =3D 1; --=20 2.50.1 (Apple Git-155) From nobody Mon Mar 2 08:45:03 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=1772315295; cv=none; d=zohomail.com; s=zohoarc; b=DMs8grM3zY0eL3/OXR0PyTnAl9s7E6fl1FOPI/kJLOsDXgd3Akwb4GxUC4c2GrwuCMY3UN9BPXK1U5aNsNlsFfvqP3UZSMVcFk8pLHK8KChj2nS3mUNHd+e7np0AvtRcsC5a7BtWOzdPrGvgbus85PQcDE5woutGfaq2LnaxWiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772315295; 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=LjzGrhEn0ykJAOrChlujow4EMgIqhCxyPavUws3eZDg=; b=ffAZvaMHU+aInh1jP71Nhwo0D42bc5oooNBOCgQ7hZU1KNmZO4oh/XbjHknDRE2oQJq7J6nTmpb7tJ9s1bQ9sjfsXvtJ6kcv9RR37hLjX8pVE2LcqFLUY/cRMvbXt+ElTQARDn+q2cK5h8KvZZhf2trHzNzRIkyIuCiyGqGkwV0= 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 1772315294699429.00266685411304; Sat, 28 Feb 2026 13:48:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vwS9e-0004Ah-PK; Sat, 28 Feb 2026 16:47:18 -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 1vwS9c-0004AO-8t for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:16 -0500 Received: from qs-2005k-snip4-1.eps.apple.com ([57.103.86.232] helo=outbound.qs.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vwS9a-0002Tj-93 for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:15 -0500 Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPS id 3502E18001A9; Sat, 28 Feb 2026 21:47:12 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPSA id 9F0AC1800121; Sat, 28 Feb 2026 21:47:10 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772315233; x=1774907233; bh=LjzGrhEn0ykJAOrChlujow4EMgIqhCxyPavUws3eZDg=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=EfEVqr2PLTNRlJCHm49sFxU6s1DbRhx2Zu+U6OgGC/KQr+K+2DukQHSBQsGKY6Rt80LNriY4AP73MN9mkXiLBET7I3V3a4gmt5aP6qMT/D1+7ne7vX/LMWG/cAOY6T9GSz5na7POCnhk2l9xGtTm80SsINWAHSkYC18389QYGm61K2S22iTLFrDlRX3M567A0Pp3ODIhkQYZd0PiHxXP2qkmnvzqssCcPjLCk1IgBkLskVTQaGm4wckX3PI2jJiXhkcgb+SlmM1c7CS5JUXjv+zoJRlCO+tWHBLy0CIpV2Y0yAodOLXcPjvDxDTG8/x7fxNjCMQd30RQ5Y4pOjzYZA== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Cameron Esfahani , Wei Liu , Pedro Barbuda , Phil Dennis-Jordan , Roman Bolshakov , Mohamed Mediouni Subject: [PATCH v2 3/8] whpx: i386: enable synthetic processor features Date: Sat, 28 Feb 2026 22:46:59 +0100 Message-ID: <20260228214704.19048-4-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260228214704.19048-1-mohamed@unpredictable.fr> References: <20260228214704.19048-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 9TGchPliEnsy24kq-Fm6YUSrXMORdcJ7 X-Proofpoint-GUID: 9TGchPliEnsy24kq-Fm6YUSrXMORdcJ7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI4MDIwMyBTYWx0ZWRfX7YIu+EobIagd C9HfzvwOfmdM8pCiqwYBCSSWdtSwhlT8+FBTtg9Rj/xbgdnoEtuaAK/RtsxOsR/NrlxL2AHviaC 75F02Fe1RAKHFj8T1t3ryWFO+g9sTU1phqYFQu4M17u2FJJe8Eu+CwPk+SajNM5fLF2xrCavuxo ypjs1zDFnU+J8ZzsWo5Alk3BDeYP1XkHh1n00b4X9f3DrodmuAvkPmAlY0BlIgTZwKSWxwzWFhe pZHoL+8Ok7EaMWD4RhtFWiSIcs+EZDvXIczx6XKS8AkglMJqNvIEtym4b5MtwvV1SXTUGo437sj Zn4Lr7JmTHGvFpzT3araUXpdMNvMwiuEQwN1lauFAiSnRplRohbhnLnmOXW1xw= X-Authority-Info-Out: v=2.4 cv=ArDjHe9P c=1 sm=1 tr=0 ts=69a36260 cx=c_apl:c_apl_out:c_pps a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=zrTx395S4Ej948ve6SYA: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-28_07,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1030 spamscore=0 mlxlogscore=812 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602280203 X-JNJ: AAAAAAABozOBi5JSX3fGrhzryL5KidU6I1MXvNRYamalN/HEGtMr2kzhIgQvBuuLHU2n1I1S1sHVMkl3gapallDtd/4nG2t58ON53EQ/xd0Bcr96j0mMWuBuKJuLmEPEH1MUKP7ZOWAz0PTzO6Q9wBwtbydWj0hySwa1ZMSXiY89MZNdhRzY/LYq4JFTAAw/Spg3FelsM0eV9rJ4umljRYClp6QjTu9pPvZnRfOxfVShsjJNhGQeTn1GE9EXsetxYNkFhFTt8ayujAB3hPocoe6DEAo5QWbGOiOlImEhQjhDJZWuDpCKst6ktxfJmTIrtpZHHw+Kn/6OxF5NTEDFT2oCZnz2puvAQkXXzXrmnwoO3G0rlsYY8VMNhbxZ/gZ8gDkR5hsU2s/NTURl4tJ7atZRx7NfjWiCWFS5kzxG5yPA8Kf0dS5kkx64N7IkOSfQCXIkl2jjfEvjXyaT9VNY3Jdm878TIH02gS4g1y8qN9u0DE2hQbxjjCeKnm9AxSpZ7b1fKXRsuiya3Fuomrd3e+zi/xV54pm92TDClQvbJWIvXV2vwH/HzdY08+V1DktP9KMq8/o6CdzDOufsmHtMC6MwHc5oIMy1YW7LEa9nMBZ8nuYYlEWOsSXN3AiKOvHnTG2QLQQTWcgRZxO04ttmACYz1RxYbGp1vIG0ZSc8TAgtZXPE9Xk= 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.86.232; envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.icloud.com X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 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.966, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.722, 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: 1772315318177158500 Content-Type: text/plain; charset="utf-8" At the point in time in which we setup the partition, the vCPUs aren't available yet. So enable them by default for now like what the MSHV backend does. AccessFrequencyRegs is shared for both the LAPIC frequency reporting and th= e TSC frequency. To still benefit from the fixed TSC frequency reporting when kernel-irqchip= =3Doff, still enable AccessFrequencyRegs anyway. Signed-off-by: Mohamed Mediouni --- target/i386/whpx/whpx-all.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index ccc52d1f96..e7e0a50da6 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -2152,6 +2152,40 @@ int whpx_accel_init(AccelState *as, MachineState *ms) goto error; } =20 + /* Enable synthetic processor features */ + WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS synthetic_features; + memset(&synthetic_features, 0, sizeof(WHV_SYNTHETIC_PROCESSOR_FEATURES= _BANKS)); + synthetic_features.BanksCount =3D 1; + + synthetic_features.Bank0.HypervisorPresent =3D 1; + synthetic_features.Bank0.Hv1 =3D 1; + synthetic_features.Bank0.AccessPartitionReferenceCounter =3D 1; + synthetic_features.Bank0.AccessPartitionReferenceTsc =3D 1; + /* if kernel-irqchip=3Doff, HV_X64_MSR_APIC_FREQUENCY =3D 0. */ + synthetic_features.Bank0.AccessFrequencyRegs =3D 1; + synthetic_features.Bank0.AccessVpIndex =3D 1; + synthetic_features.Bank0.AccessHypercallRegs =3D 1; + synthetic_features.Bank0.TbFlushHypercalls =3D 1; + + if (whpx_irqchip_in_kernel()) { + synthetic_features.Bank0.AccessSynicRegs =3D 1; + synthetic_features.Bank0.AccessSyntheticTimerRegs =3D 1; + synthetic_features.Bank0.AccessIntrCtrlRegs =3D 1; + synthetic_features.Bank0.SyntheticClusterIpi =3D 1; + synthetic_features.Bank0.DirectSyntheticTimers =3D 1; + } + + hr =3D whp_dispatch.WHvSetPartitionProperty( + whpx->partition, + WHvPartitionPropertyCodeSyntheticProcessorFeaturesBanks, + &synthetic_features, + sizeof(WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS)); + if (FAILED(hr)) { + error_report("WHPX: Failed to set synthetic features, hr=3D%08lx",= hr); + ret =3D -EINVAL; + goto error; + } + /* Register for MSR and CPUID exits */ memset(&prop, 0, sizeof(WHV_PARTITION_PROPERTY)); prop.ExtendedVmExits.X64MsrExit =3D 1; --=20 2.50.1 (Apple Git-155) From nobody Mon Mar 2 08:45:03 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=1772315296; cv=none; d=zohomail.com; s=zohoarc; b=hpWR1mfL4gTAR13UkiNa3R2UOXuG2v6RjPhsUSailjxWaixSjUhfO8y2LlBxf14cytgJfeK1tdcMEQ3mFJkZJsrLCLQrJBAnJKdge9l3moj0ymlc/37g1Spu8qkCd4V5weBLddNzGOtc8ncz86Hx6jVmV2VHokd07XiozFFe5fE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772315296; 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=gWqREj2PmGRoTAKiY4qI6uX1E9aTXQTeVV/xFA3kCyI=; b=KrJIzi6G4hiAZRKeZZ6zWtF8xIDzEigWoYm+6XNPvRSLYJ6YMptB9FYaMzNDNZwx23vP/pVDGIngZuj6jofOFKqmfhiI1Vf0kuCiobqibB9wvwKVBGkc/5XCO1kl0z86u0QAnr3St5Ec6TlIN6Pop/qz7RNFshlWEdLAIYeDae8= 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 1772315296269150.24737641181196; Sat, 28 Feb 2026 13:48:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vwS9l-0004D8-2F; Sat, 28 Feb 2026 16:47:25 -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 1vwS9d-0004Ak-KA for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:18 -0500 Received: from qs-2005d-snip4-11.eps.apple.com ([57.103.86.171] helo=outbound.qs.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vwS9c-0002Tv-5G for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:17 -0500 Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPS id 3D9BC1800133; Sat, 28 Feb 2026 21:47:13 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPSA id B7B001800195; Sat, 28 Feb 2026 21:47:11 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772315235; x=1774907235; bh=gWqREj2PmGRoTAKiY4qI6uX1E9aTXQTeVV/xFA3kCyI=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=WMRNYrOtqWt68rKvbN9nHLNLlGfoh7zFOBjCt+vNZx4rzUJp8wE7FLI0byFZo1pCcZcWi+7sPm7zLOZ3Ahv79S6NX3pFW14MoCx0P4PrZJxyGomdKbjx718ygEWzS3SOOnVdgfUUl2NURnb3DAjLh7adCLAeXWyMrqW5UFTDc9yuvdQZHC9BHoF4hl28J/aSAVqu90hbCixJLuDiFFumqzszo2hrMgqmFoQeo3dw+xQ9huS1Seh90ZbdksycIHhMhQNIQWbr6QlG7DmOMXvCiCTMGABXe/IzNj3p/5aSc8XJpXb3YKDoB3LcQ82sMbB1rg9Bqy//yfwRSPjhV7hr8g== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Cameron Esfahani , Wei Liu , Pedro Barbuda , Phil Dennis-Jordan , Roman Bolshakov , Mohamed Mediouni Subject: [PATCH v2 4/8] whpx: i386: warn on unsupported MSR access instead of failing silently Date: Sat, 28 Feb 2026 22:47:00 +0100 Message-ID: <20260228214704.19048-5-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260228214704.19048-1-mohamed@unpredictable.fr> References: <20260228214704.19048-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: PtqXedeKtml2sL2rEx6S8IIp3zLmpsJ9 X-Proofpoint-ORIG-GUID: PtqXedeKtml2sL2rEx6S8IIp3zLmpsJ9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI4MDIwMyBTYWx0ZWRfXw3Gouq/bC27/ ls069K7AFcsJkRYgY8mpdPw9IP7oFWz7g8NcARItYbRDlW8cpGiuwxacCZcydiZFFOjIvkyiMKg hWRKJ0FpMj0n+seTpYsDVk1BEEzkbv4wCcczJRxOZA3VvQdPMK8uAcooz4TaGPdW2P6rNbwkE3u seLY+xFTGoEdEPHkc7g93I9he8nk1TCSkHG+/ozZS/wEhZ0j08+Y2yKUz+tClODGr7+1jq+qbi5 0Es4s7rau6MDMAWHNDt2XruLWO4BsH/BKcuU73lmRTJMt/wzBvp0aBH7f4/dXaDDNZmqDAgaj6h sIex1l64IwMFEQuXXZQhNCPVFiLiHZTcMsyR3cRt0t86VXgfTwzHmZme192HyM= X-Authority-Info-Out: v=2.4 cv=Rs3I7SmK c=1 sm=1 tr=0 ts=69a36261 cx=c_apl:c_apl_out:c_pps a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=qc3z_Y1wnV_HfSY8uEAA:9 a=zZCYzV9kfG8A:10 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-28_07,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 suspectscore=0 mlxlogscore=643 lowpriorityscore=0 clxscore=1030 adultscore=0 mlxscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602280203 X-JNJ: AAAAAAAB2a6drLWsSTWK+d2ycSEC91tutEgetwWbbWOO70nGU8H+c22LkIY8pTv8rmAKXwtWK4214k1I1xqSaiUvpqKWuovxMa6KZFiywqcjko/I/k3SAS0PgQkg7fw2WxH0/wqu0KwbWCCDYUseqG2dodepkHEw2fyD7f+lAw10Y+pxn/UmLc3MVZb2J5PwlHjOlZMHl9RwUm56dOzDgwQRF3gqxClGjQaxcSn8/1cDZy+09xQJt65d7LsAomeYy7HjXJ4UqOIFza6vKK9Bjps+fEgj41qBP8rLrkKurd8KqInD+86g44eL/dXEPiguoegSew+kaDKwRzrbT8GFVpZ6l7IbjFPgQrGkQDW0RA/If3FAWOLBDlIGgRSAw5kBmsUkEutAEsERSKn30W5/ewbKYogcHml1GY7NTXXi0FrdZB51fud/Mi49F0qynAsXIOLfl4XTb63caUxlqoJjhs4P1k7X9kjUEXrj3ljWVqoExVMdswJE1VeKx7fj4YcFHRyygR2sSvUAB2gmtkDBxjZnlWYCo4zJscxvZq4VHr1NjKh1XskPiKj41H8poG+y3EIhtgB8CqQcEkM5+d72G5FNs2Buh67w/wLGSv975qm90Jax3AYKg6v1v4MTPIvnU5GpCCvCxWlj+mPt2uZJJk09GESZfL463NHvefIIsiYWSydtkUku3MGrueMKLo/GQZ8ba7ehlCKGGZ0HonHb6MlGSw== 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.86.171; envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.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_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.966, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.722, 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: 1772315298795158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Mohamed Mediouni --- target/i386/whpx/whpx-all.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index e7e0a50da6..5aa8baa4a2 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -1804,6 +1804,9 @@ int whpx_vcpu_run(CPUState *cpu) reg_count =3D vcpu->exit_ctx.MsrAccess.AccessInfo.IsWrite ? 1 : 3; =20 + warn_report("WHPX: Unsupported MSR access (0x%x), IsWrite=3D%i= ",=20 + vcpu->exit_ctx.MsrAccess.MsrNumber, vcpu->exit_ctx.MsrAcce= ss.AccessInfo.IsWrite); + hr =3D whp_dispatch.WHvSetVirtualProcessorRegisters( whpx->partition, cpu->cpu_index, --=20 2.50.1 (Apple Git-155) From nobody Mon Mar 2 08:45:03 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=1772315297; cv=none; d=zohomail.com; s=zohoarc; b=mdld4mUxQCYOyFp0UzCWa3y7a1SS9xb6hkKFg0dl22dI+2/6B8HK6jvUY5jptFdhzCBILR9BlUz2qJ7r0jj+w7Ao0p2aOFsYfuao6r8GUX+y2ZqDoNzq/A+svHVf8ugs+6eCGNxXDdhVyg3dMPqMXxEoJx48KZZEGMjjiH1wIGI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772315297; 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=yu7x8lpmTBFPKXdTa9gwDbLuLb/7CfSjIGSs46mmW0w=; b=XrCsVEIihgwcee61/crKIEh7X4urgmWiTJyGe/rI5rZt19q0QH/uw/3Gml50s1Svu/mpttUnePJbR/Q8dbkGT0C12Ph+7o8lWVr0eCDaoTo4pB7dz6bGmm2V+x0c769p1DVudOYOZqg8pDX+iczngjCHjAEAsc61HMVY9jh+RGY= 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 1772315296447559.6702569323704; Sat, 28 Feb 2026 13:48:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vwS9k-0004Ce-SR; Sat, 28 Feb 2026 16:47:24 -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 1vwS9e-0004Ar-Pf for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:18 -0500 Received: from qs-2005c-snip4-7.eps.apple.com ([57.103.86.158] helo=outbound.qs.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vwS9c-0002U2-Q5 for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:18 -0500 Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPS id 6956218000BF; Sat, 28 Feb 2026 21:47:14 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPSA id D8991180018D; Sat, 28 Feb 2026 21:47:12 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772315235; x=1774907235; bh=yu7x8lpmTBFPKXdTa9gwDbLuLb/7CfSjIGSs46mmW0w=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=X2AHMeb6Vb9+JWgI0xb6Zjv93I6eTULpq2IG0j3DA1wLjhZ7xCDZPFi+sKiivAQlDbJU8+6QsS/oeiDN0ukXXM8CVW3SmiwgFtxR3Suolo6X6QSCYe3o42LW1DV3QCxjGA4N09tAP9/qxxbd0YnOYrv4zDeOOSsBskjmOC7OKi8Zt9rWnOIxcLjoPgZduZdCvPugQx78D9VyY6ldBgg3ngR1VV3GSLiHdNSX2PF5KoZe2IjhlhNxvru2detNf/Loc3lVWVeIGcuxQ+WZ6b9u2QR0F10Yn7k0KB0vnGAWtpI1i94gT0feaYilJckULajZy5t5jCNd6mZvYJm7Loc8Qg== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Cameron Esfahani , Wei Liu , Pedro Barbuda , Phil Dennis-Jordan , Roman Bolshakov , Mohamed Mediouni Subject: [PATCH v2 5/8] target/i386: emulate: more 64-bit register handling Date: Sat, 28 Feb 2026 22:47:01 +0100 Message-ID: <20260228214704.19048-6-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260228214704.19048-1-mohamed@unpredictable.fr> References: <20260228214704.19048-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 9Dv67PjySwdX18J6pWoM2kfNhC5syaH7 X-Authority-Info-Out: v=2.4 cv=YsgChoYX c=1 sm=1 tr=0 ts=69a36263 cx=c_apl:c_apl_out:c_pps a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=_1DnBmLJiPlmecJZ0XgA:9 X-Proofpoint-ORIG-GUID: 9Dv67PjySwdX18J6pWoM2kfNhC5syaH7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI4MDIwMyBTYWx0ZWRfX+8noJ1JPCWUn +eQk4gmnBum/ivrBGylICeg/P7kSHeILWF6JD6j++xJF23vPbvc+PZJjqs9dcNwU7Jvpoj5dzbm OQl22TxSh9RitJ4mpF0R1qbboo2PPTSvfuFmK8waeM+WNwIyOccBqTlRY11KdFRbgT6eypqPBux EWR487KPdNtVUkRfcrHLk4UWnu5ML5QnwWLvIplATUK9EmLfxHmVNvbw1TQRnNwjjxhiRUpfFBA PMFSaCLCmm7qVdv8CRMMsT2pIRCRQljEPwNH3QjUv0KOcDOB339pydvB49CwRNtudZvZFQWhdZL 9PCFHwSgNwVgWsu5aqbnNdrQTCNr4da3omNvoOD9AVLqIqXMtInYukWhBvDI6A= 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-28_07,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 clxscore=1030 spamscore=0 phishscore=0 mlxlogscore=766 suspectscore=0 lowpriorityscore=0 mlxscore=0 adultscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602280203 X-JNJ: AAAAAAABcs2/G4p28nM8yXxNFvzcFScr0/vpL9S0EHkXY3qlyUeeThwX8nFiing3mNF5C75tMmIH6kMuKy3pCPuOO4wnVwhnvDPgwDxebijCqSfLfBoIea3LFmNRc/jBts6CKRuytxHOLKWBBeJeuYZOpYR/xR/zOhqqGugJ2E6ktjHl1GK7VdtcZmUyRHpWP5LDhM0896tRED4Mr30PMFZBIZGrB8Zjp/5d0JGiXA+mADdkSBtWU9M+Ws742ThhY7PrkVtWTOHvefgmmRic8tgRfMPShq+deEC2LWn1lOTF40Ac76tSCLM2Z9AMnLToq09rcQx3244gicT8S/ikvnezIAUXBJ0bHHyscsttO1zZrS6dhHkSQcswmKhmVpAqQUQRJbYFvWsA2LyEW4FF6zRhrXI9UYfNVGDeJSHB1T/PW15BVuq0p+VLxQcYTSUkcT0GarbLbCKsMhj3ZbDIsGg484Ns2ZAoB2KJtFqS4my2/YRPTbs3ylGAfA/+Oh4DIYoiAYcuaNn8B35oGTqpqh4kIEzzR6k4/c9sTRexXNeNEw19qIGvB6xCUnTqz/pOsRVRwBHq5Ql0Ae+/xFyd6dtS+hm9rErrjDcR1e8+KxylN/tX0dzh92ZKWYiICTbYuJpB0C+DpPzk6vuUSuTtZ05UrsgNJvTuz8AhhvKIHUSZ 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.86.158; envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.icloud.com X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 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.966, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.722, 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: 1772315298857158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Mohamed Mediouni --- target/i386/emulate/x86_emu.c | 17 ++++++++++++ target/i386/emulate/x86_flags.c | 47 +++++++++++++++++++++++++++++++++ target/i386/emulate/x86_flags.h | 20 ++++++++++++++ 3 files changed, 84 insertions(+) diff --git a/target/i386/emulate/x86_emu.c b/target/i386/emulate/x86_emu.c index 8d35f3338c..6c4ccc4538 100644 --- a/target/i386/emulate/x86_emu.c +++ b/target/i386/emulate/x86_emu.c @@ -45,6 +45,22 @@ #include "x86_mmu.h" =20 =20 +#ifdef TARGET_X86_64 +#define EXEC_2OP_FLAGS_CMD_64(env, decode, cmd, FLAGS_FUNC, save_res) \ + case 8: \ + { \ + uint64_t v1 =3D (uint64_t)decode->op[0].val; \ + uint64_t v2 =3D (uint64_t)decode->op[1].val; \ + uint64_t diff =3D v1 cmd v2; \ + if (save_res) { \ + if (write_val_ext(env, &decode->op[0], diff, 8)) { return 1; }= \ + } \ + FLAGS_FUNC##64(env, v1, v2, diff); \ + break; \ + } +#else +#define EXEC_2OP_FLAGS_CMD_64(env, decode, cmd, FLAGS_FUNC, save_res) +#endif #define EXEC_2OP_FLAGS_CMD(env, decode, cmd, FLAGS_FUNC, save_res) \ { \ if (fetch_operands(env, decode, 2, true, true, false)) {\ @@ -84,6 +100,7 @@ FLAGS_FUNC##32(env, v1, v2, diff); \ break; \ } \ + EXEC_2OP_FLAGS_CMD_64(env, decode, cmd, FLAGS_FUNC, save_res) \ default: \ VM_PANIC("bad size\n"); \ } \ diff --git a/target/i386/emulate/x86_flags.c b/target/i386/emulate/x86_flag= s.c index 6592193b5e..3c4270a14c 100644 --- a/target/i386/emulate/x86_flags.c +++ b/target/i386/emulate/x86_flags.c @@ -82,6 +82,10 @@ SET_FLAGS_OSZAPC_SIZE(16, carries, result) #define SET_FLAGS_OSZAPC_32(carries, result) \ SET_FLAGS_OSZAPC_SIZE(32, carries, result) +#ifdef TARGET_X86_64 +#define SET_FLAGS_OSZAPC_64(carries, result) \ + SET_FLAGS_OSZAPC_SIZE(64, carries, result) +#endif =20 /* ******************* */ /* OSZAP */ @@ -107,6 +111,10 @@ SET_FLAGS_OSZAP_SIZE(16, carries, result) #define SET_FLAGS_OSZAP_32(carries, result) \ SET_FLAGS_OSZAP_SIZE(32, carries, result) +#ifdef TARGET_X86_64 +#define SET_FLAGS_OSZAP_64(carries, result) \ + SET_FLAGS_OSZAP_SIZE(64, carries, result) +#endif =20 void SET_FLAGS_OxxxxC(CPUX86State *env, bool new_of, bool new_cf) { @@ -115,6 +123,14 @@ void SET_FLAGS_OxxxxC(CPUX86State *env, bool new_of, b= ool new_cf) env->cc_src ^=3D ((target_ulong)new_of << LF_BIT_PO); } =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAPC_SUB64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff) +{ + SET_FLAGS_OSZAPC_64(SUB_COUT_VEC(v1, v2, diff), diff); +} +#endif + void SET_FLAGS_OSZAPC_SUB32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff) { @@ -133,6 +149,14 @@ void SET_FLAGS_OSZAPC_SUB8(CPUX86State *env, uint8_t v= 1, uint8_t v2, SET_FLAGS_OSZAPC_8(SUB_COUT_VEC(v1, v2, diff), diff); } =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAPC_ADD64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff) +{ + SET_FLAGS_OSZAPC_64(ADD_COUT_VEC(v1, v2, diff), diff); +} +#endif + void SET_FLAGS_OSZAPC_ADD32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff) { @@ -151,6 +175,14 @@ void SET_FLAGS_OSZAPC_ADD8(CPUX86State *env, uint8_t v= 1, uint8_t v2, SET_FLAGS_OSZAPC_8(ADD_COUT_VEC(v1, v2, diff), diff); } =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAP_SUB64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff) +{ + SET_FLAGS_OSZAP_64(SUB_COUT_VEC(v1, v2, diff), diff); +} +#endif + void SET_FLAGS_OSZAP_SUB32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff) { @@ -169,6 +201,14 @@ void SET_FLAGS_OSZAP_SUB8(CPUX86State *env, uint8_t v1= , uint8_t v2, SET_FLAGS_OSZAP_8(SUB_COUT_VEC(v1, v2, diff), diff); } =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAP_ADD64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff) +{ + SET_FLAGS_OSZAP_64(ADD_COUT_VEC(v1, v2, diff), diff); +} +#endif + void SET_FLAGS_OSZAP_ADD32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff) { @@ -187,6 +227,13 @@ void SET_FLAGS_OSZAP_ADD8(CPUX86State *env, uint8_t v1= , uint8_t v2, SET_FLAGS_OSZAP_8(ADD_COUT_VEC(v1, v2, diff), diff); } =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAPC_LOGIC64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff) +{ + SET_FLAGS_OSZAPC_64(0, diff); +} +#endif =20 void SET_FLAGS_OSZAPC_LOGIC32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff) diff --git a/target/i386/emulate/x86_flags.h b/target/i386/emulate/x86_flag= s.h index a395c837a0..7ffbbe5c12 100644 --- a/target/i386/emulate/x86_flags.h +++ b/target/i386/emulate/x86_flags.h @@ -33,6 +33,10 @@ void set_CF(CPUX86State *env, bool val); =20 void SET_FLAGS_OxxxxC(CPUX86State *env, bool new_of, bool new_cf); =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAPC_SUB64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff); +#endif void SET_FLAGS_OSZAPC_SUB32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff); void SET_FLAGS_OSZAPC_SUB16(CPUX86State *env, uint16_t v1, uint16_t v2, @@ -40,6 +44,10 @@ void SET_FLAGS_OSZAPC_SUB16(CPUX86State *env, uint16_t v= 1, uint16_t v2, void SET_FLAGS_OSZAPC_SUB8(CPUX86State *env, uint8_t v1, uint8_t v2, uint8_t diff); =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAPC_ADD64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff); +#endif void SET_FLAGS_OSZAPC_ADD32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff); void SET_FLAGS_OSZAPC_ADD16(CPUX86State *env, uint16_t v1, uint16_t v2, @@ -47,6 +55,10 @@ void SET_FLAGS_OSZAPC_ADD16(CPUX86State *env, uint16_t v= 1, uint16_t v2, void SET_FLAGS_OSZAPC_ADD8(CPUX86State *env, uint8_t v1, uint8_t v2, uint8_t diff); =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAP_SUB64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff); +#endif void SET_FLAGS_OSZAP_SUB32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff); void SET_FLAGS_OSZAP_SUB16(CPUX86State *env, uint16_t v1, uint16_t v2, @@ -54,6 +66,10 @@ void SET_FLAGS_OSZAP_SUB16(CPUX86State *env, uint16_t v1= , uint16_t v2, void SET_FLAGS_OSZAP_SUB8(CPUX86State *env, uint8_t v1, uint8_t v2, uint8_t diff); =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAP_ADD64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff); +#endif void SET_FLAGS_OSZAP_ADD32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff); void SET_FLAGS_OSZAP_ADD16(CPUX86State *env, uint16_t v1, uint16_t v2, @@ -61,6 +77,10 @@ void SET_FLAGS_OSZAP_ADD16(CPUX86State *env, uint16_t v1= , uint16_t v2, void SET_FLAGS_OSZAP_ADD8(CPUX86State *env, uint8_t v1, uint8_t v2, uint8_t diff); =20 +#ifdef TARGET_X86_64 +void SET_FLAGS_OSZAPC_LOGIC64(CPUX86State *env, uint64_t v1, uint64_t v2, + uint64_t diff); +#endif void SET_FLAGS_OSZAPC_LOGIC32(CPUX86State *env, uint32_t v1, uint32_t v2, uint32_t diff); void SET_FLAGS_OSZAPC_LOGIC16(CPUX86State *env, uint16_t v1, uint16_t v2, --=20 2.50.1 (Apple Git-155) From nobody Mon Mar 2 08:45:03 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=1772315330; cv=none; d=zohomail.com; s=zohoarc; b=La2ISaKRiiBc6d/eS/uHGP+qlyBRaINx6iYOE9lZD1/5rFTap/TPu61+I5QFy3iq2OMbjfsavZi7jTiaqs99S3ErWOJtGUXqzjVTpH664K14vW80k/N14acvJiMVet5n3kDWnkGQ5Y2xHC2WtDbJEdojfezmRu3CbT5zrdkH7pY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772315330; 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=7mj6sUmmdtk9A69SUbrqs2ReO/lE9GHeOdIojBoDuMA=; b=YwmQunsswoHte6BwJFaf1AvhsXHKgntDH1nhYxVBV4Wq78hlvSfkLLah71+FeqHOa4ll3/a7zZNAY6IHWXHc6OolpysDxHrfztMQwxuDxFI3SY5aY8q5Njxi2JHBf6Aqzz0ruSv/FmycYBLM6152fqwr3TCqcJTIdfoZLJIEPSs= 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 1772315330842289.4366259180522; Sat, 28 Feb 2026 13:48:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vwS9l-0004DQ-Gp; Sat, 28 Feb 2026 16:47:25 -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 1vwS9e-0004Ap-Pf for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:18 -0500 Received: from qs-2005d-snip4-1.eps.apple.com ([57.103.86.162] helo=outbound.qs.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vwS9d-0002UJ-EC for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:18 -0500 Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPS id 871C8180011B; Sat, 28 Feb 2026 21:47:15 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPSA id F1BC71800121; Sat, 28 Feb 2026 21:47:13 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772315236; x=1774907236; bh=7mj6sUmmdtk9A69SUbrqs2ReO/lE9GHeOdIojBoDuMA=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=TCSRs5Ohs4n1ZZhpUIXzRJKtc9CmJy5a9QQFjx9rCmZsb5UKe2zChytT5HilMeNAyIRWT/94pNXJTWraOts++SVZCkW196PolK/LAfJWsins0jGhb4olZ5OARL0XP/++GZUdvv78RdMj/+Guk2fCHq+DrKW8IexI0D0Oom2x9ipGHHj6gOnmrLB2Ig1aRIp4deuk/8NSQZ0RHI4fi5ZqqbTqUkQFUvJM5Om7HmWJ4ejuP/zEypk5EhsCyhbmpJwucGAnu0rEGoZYYUseHlS3glCUlaFgsQRTqcbBnMzoZilsqtpnpV4C7U4OPEnZ02YFj4/I5NMstRgv+Qv6TJvD1w== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Cameron Esfahani , Wei Liu , Pedro Barbuda , Phil Dennis-Jordan , Roman Bolshakov , Mohamed Mediouni Subject: [PATCH v2 6/8] whpx: i386: enable PMU Date: Sat, 28 Feb 2026 22:47:02 +0100 Message-ID: <20260228214704.19048-7-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260228214704.19048-1-mohamed@unpredictable.fr> References: <20260228214704.19048-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: BnZgRhkZHy3HtQj7YKSXaPd6lMGyfhtv X-Authority-Info-Out: v=2.4 cv=YsgChoYX c=1 sm=1 tr=0 ts=69a36264 cx=c_apl:c_apl_out:c_pps a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=ymEGMFXK17_Bx2syn8UA:9 X-Proofpoint-ORIG-GUID: BnZgRhkZHy3HtQj7YKSXaPd6lMGyfhtv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI4MDIwMyBTYWx0ZWRfXxtRF1A9jVH0m 00yG+tj87bWPvYnQ68xHal96lFoxY4mCYyCqpyVABixd0rthCyc3IOFIpPusAgigq5Z2QEDYxTu 4Tum0cXDfZ04EIgyskr+iwTq1nDNoD0u6wI47zxL8eVXEefVh7Mvu5tGu+/ZSkVUNzZ8/W5QgJz 1ZHT3G30oCHcy+eezjxs4LOH7MHlAtGiAAjeYBoAbOqDYpCEtGjxHsYlv2uV/MYxdIn2OmRoI6S YZdiN/UPGt/mkoOhSarNyOvEQrqpWw2KXevJKb8nsUpHWLEL1OAfx7ECtXbXawXBMEdnTmO8xn7 I6oCgrwKAmaXYH/asLYaLoKmRy21q/pehEJo3Ax72hln23SROaS975aCdXNflI= 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-28_07,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 clxscore=1030 spamscore=0 phishscore=0 mlxlogscore=841 suspectscore=0 lowpriorityscore=0 mlxscore=0 adultscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602280203 X-JNJ: AAAAAAABHN7jq7GdX8uZ3ue7i6uLkRPRh/Ec6iUlZ1426+ZG0SUERdFVn93sxa8rPPGqbaP44reztq4aFGtxQ4+HT99L0nM6WFUcBKIvTUAu6HKTZrcyBsnkH3RGq40X+N8cf6MbW0fvlm+w31VsnW8TIDuou6iHIkay+VFo1pXFgMz8jtW8X9I+c/s2/RwdYEU1wkhvgCZk4a0RlF4BMYRMEPfurQXouzePCEx3jm2SlqczpCZRa6bb8mNaBtDVv0xLNKs2z1giEKpGIEUWlCZ5WZE1kcOwe6J5UgOJfB3sT+XQCq4KbU/g5Auiv86kRlxoqQwDCAcUzSz6g5/a7oUa81sc2JvsEFaD1k1XsI2FP6Ypo31xYQgxYUZQIe2ePuChAkAdJ5ss6jAFXbM7vxQ/7MVrh/mN8oMGQmm0FmjJZP+g805L4YQMmh3oVzhzNdAOHSsUWNlb9ZuUNqa3nj5a3zwXrAlkAQqLyUCL4kPMdYYwloqRUzONilX/XTmB09tt6HyOq86BtoYpx8ufFGOmIrVKddn46CQ530f6dLQICtxS4ITr015qhW1VKhWPprNz874fcdFauAbUFbg4LZ6husplh8bZ2B9Wop8lM1GD3KOce2h+WlF5nwEoznFRNWrlMJerGq1MkR6hfFvQaFRi02guvm3c+g== 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.86.162; envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.icloud.com X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 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.966, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.722, 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: 1772315333172158500 Content-Type: text/plain; charset="utf-8" Also a partition property instead of a CPU one... Signed-off-by: Mohamed Mediouni --- target/i386/whpx/whpx-all.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 5aa8baa4a2..da2ba36060 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -2011,6 +2011,7 @@ int whpx_accel_init(AccelState *as, MachineState *ms) WHV_PARTITION_PROPERTY prop; WHV_CAPABILITY_FEATURES features =3D {0}; WHV_PROCESSOR_FEATURES_BANKS processor_features; + WHV_PROCESSOR_PERFMON_FEATURES perfmon_features; =20 whpx =3D &whpx_global; =20 @@ -2155,6 +2156,27 @@ int whpx_accel_init(AccelState *as, MachineState *ms) goto error; } =20 + /* Enable supported performance monitoring capabilities */ + hr =3D whp_dispatch.WHvGetCapability( + WHvCapabilityCodeProcessorPerfmonFeatures, &perfmon_features, + sizeof(WHV_PROCESSOR_PERFMON_FEATURES), &whpx_cap_size); + if (FAILED(hr)) { + error_report("WHPX: Failed to get performance monitoring features,= hr=3D%08lx", hr); + ret =3D -ENOSPC; + goto error; + } + + hr =3D whp_dispatch.WHvSetPartitionProperty( + whpx->partition, + WHvPartitionPropertyCodeProcessorPerfmonFeatures, + &perfmon_features, + sizeof(WHV_PROCESSOR_PERFMON_FEATURES)); + if (FAILED(hr)) { + error_report("WHPX: Failed to set performance monitoring features,= hr=3D%08lx", hr); + ret =3D -EINVAL; + goto error; + } + /* Enable synthetic processor features */ WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS synthetic_features; memset(&synthetic_features, 0, sizeof(WHV_SYNTHETIC_PROCESSOR_FEATURES= _BANKS)); --=20 2.50.1 (Apple Git-155) From nobody Mon Mar 2 08:45:03 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=1772315326; cv=none; d=zohomail.com; s=zohoarc; b=cTmaHJYVsV+S8YmJZc4HkVH1GkjfPzdSNkCYaspfDXd27cf8EmDCD58IhOlU3VcxXiQCkWrHZsBq0SE4auhWXGTIm2ctOabwXqWb7FVuNyphNu1LmYH5ItVEQouIRdm1kYIeUR20gwa6OLsR0f0U5bY5gwaC+5Mvh37rtB/30Jw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772315326; 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=4EzOy0DXrkiXeDxM2SQ9H3In/PP3E7F6+7cZwEXazB4=; b=UET1HBG43E/zfKegxNt85oJ1zHfdn5FBc6BhM1nrIuDq3J4oSWaDIIwF2mvFIg0G7dBg9i8TA+jAZXJrLpD3NjtrICx3j0o5zYAOtJXDwBr90ad2HXVt8JFssnfg2aryM1jMW+Ot7EwxIQH7nQiW+wfiFhrmgbpCenoZcsWnEUs= 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 1772315326484446.17896237116474; Sat, 28 Feb 2026 13:48:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vwS9l-0004E3-Vt; Sat, 28 Feb 2026 16:47:26 -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 1vwS9h-0004CL-UU for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:21 -0500 Received: from qs-2005i-snip4-1.eps.apple.com ([57.103.86.212] helo=outbound.qs.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vwS9g-0002Uz-Fg for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:21 -0500 Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPS id F057E1800121; Sat, 28 Feb 2026 21:47:16 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPSA id 15EB01800137; Sat, 28 Feb 2026 21:47:14 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772315239; x=1774907239; bh=4EzOy0DXrkiXeDxM2SQ9H3In/PP3E7F6+7cZwEXazB4=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=Vxg4aoNxF5NZtvYw4DaVp7jENmw1fThEwRPpSAyjaeUMKxXilK/rAEnaKM/fD+50SmstIdrRQ0tGwhRMSdevOoZXobnZVXYflb7vsMAO3+CCga0P8P2jo9JWqGHlkE7nPfeHqa3vfQM/zZifLbFzdqVpAZlJIxKqxoj1V3zKIYefu7eXAStiyIxAI/cPoKYLSdhv9t/F+LElftSaqhWR2FWd6wPnIMgzQCbyfQjLxg+W/EIR3aAP+WXmm0Os2e0/7Rmmli51fXTFKkb9EBLl0Vp8o6Czktishr7V5ZyW5IQwhsJipvS5gV0u5h+tIWSbE1EilB1XRlHqa+nLJPDTfg== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Cameron Esfahani , Wei Liu , Pedro Barbuda , Phil Dennis-Jordan , Roman Bolshakov , Mohamed Mediouni Subject: [PATCH v2 7/8] whpx: i386: expose HV_X64_MSR_APIC_FREQUENCY when kernel-irqchip=off Date: Sat, 28 Feb 2026 22:47:03 +0100 Message-ID: <20260228214704.19048-8-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260228214704.19048-1-mohamed@unpredictable.fr> References: <20260228214704.19048-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: o6aXEiRuo1U-OL8Pzv5B1FsHgs3p8Bu- X-Authority-Info-Out: v=2.4 cv=YsgChoYX c=1 sm=1 tr=0 ts=69a36265 cx=c_apl:c_apl_out:c_pps a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=z5tRxpAhJOApE11VFHkA:9 X-Proofpoint-ORIG-GUID: o6aXEiRuo1U-OL8Pzv5B1FsHgs3p8Bu- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI4MDIwMyBTYWx0ZWRfX0CN4YkcI7hkM RattVJsd+gdwyWenVJUTfoJsznY/HYSzjsJ2ZF2+1DUfSDukZMpooq6zrrJKxNYko7wtUtE+/mY kb4nSe5m73EOVwdxQJ/pQG0BJeeNFftyXa+sCKnbeJSDR9hXuxV44/78FbcKAZKuo1DWTh/CJru Zb1CQ9sH21FMFXFamnSLY6Z+QloN9XfhaLN0x9y7ae/VtdvdzCQyez6Pe1LzrK0625nDDgYQEe7 XHyUn8kRoZkyuMmJVG9GSpHMiS9ZmMfF8K/7bnYcmT3J1SrQVXighLiZY/cAtSJ6nACRh2itSOu IbfSpYdo1XqSRfmr8v+KjecGek+keRqFk0hFnU6tgMk9y8fjWL3Tn0VwLc2b+M= 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-28_07,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 clxscore=1030 spamscore=0 phishscore=0 mlxlogscore=999 suspectscore=0 lowpriorityscore=0 mlxscore=0 adultscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602280203 X-JNJ: AAAAAAABflfOo4sZR+OGFzjaDKziUOl+Tv4faDie1LDLOGjhTontsV73xIirfnVNYXKjFJ1oFCsNrXUrzWVxGtpW67FXmNbSLMXIBWr1fma+F5/vojP0+MSu/EYdNfBBbkMqCVZQPnzWtL5KRQ1HCM5Ub+i/nP0rfQiFG6HuzEe5c0O8GuWG7ZbkGB1ltEm/UhUYnpFTFPWjQMCExQ1msCtVX+U40zqJm9r9ibl/qQc5ulhbMJwyOhfBBxT7VWTcSg2Vds9sSRJJXgrAls+M7/GKOEPImsUw6uBDi3r+cLP96Rc1wdh5jIkizicooA7ATLbZGI/zlcaHX0Y1YrzZub6qha7TeD1XPESyxQlaPaqLpPYmB3SrJH9bPJA/g01JB/qUaDlMJjTcmHc9vBOBZtcFhsBx1Pc8GnIZWaHb4opIdlK6f5iE/wq0GT3GkaHjEJZft8kj+ZorJJAJBdmWjB3Thwx5TMGDlxuFQwVmmzgknVAovlwyH0D0IFRKwPU1BgyxY/E8uDGlIvXj7bEL3MAVmhwfiQql+SYeTRwTMmrxgvqZzE2oeC05yvOxI5ZAVOW79amVuLlRhBZWCnhiLbH/iSNCMqre1ps/DFbfcgQ/5tUX/GFUBa/9/dXf2aiWg3oS1uz14kuLZjrFOxz9T5XT/glvVgXNpXlq/7/vxPjhEtMFVVOMrU6asq4oEwPHQpVUB2CcFQ== 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.86.212; envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.icloud.com X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 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.966, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.722, 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: 1772315327001158500 Content-Type: text/plain; charset="utf-8" Now that we expose AccessFrequencyRegs, expose HV_X64_MSR_APIC_FREQUENCY as= well for the case when the Hyper-V LAPIC is not used. If the Hyper-V LAPIC is used, this will be handled by the hypervisor instea= d of the VMM, hence gating it on !whpx_irqchip_in_kernel(). Signed-off-by: Mohamed Mediouni --- target/i386/whpx/whpx-all.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index da2ba36060..69a3c42ba0 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -45,6 +45,8 @@ #include =20 #define HYPERV_APIC_BUS_FREQUENCY (200000000ULL) +/* for kernel-irqchip=3Doff */ +#define HV_X64_MSR_APIC_FREQUENCY 0x40000023 =20 static const WHV_REGISTER_NAME whpx_register_names[] =3D { =20 @@ -1787,6 +1789,7 @@ int whpx_vcpu_run(CPUState *cpu) WHV_REGISTER_VALUE reg_values[3] =3D {0}; WHV_REGISTER_NAME reg_names[3]; UINT32 reg_count; + bool is_known_msr =3D 0;=20 =20 reg_names[0] =3D WHvX64RegisterRip; reg_names[1] =3D WHvX64RegisterRax; @@ -1796,6 +1799,12 @@ int whpx_vcpu_run(CPUState *cpu) vcpu->exit_ctx.VpContext.Rip + vcpu->exit_ctx.VpContext.InstructionLength; =20 + if (vcpu->exit_ctx.MsrAccess.MsrNumber =3D=3D HV_X64_MSR_APIC_= FREQUENCY + && !vcpu->exit_ctx.MsrAccess.AccessInfo.IsWrite + && !whpx_irqchip_in_kernel()) { + is_known_msr =3D 1; + reg_values[1].Reg32 =3D (uint32_t)X86_CPU(cpu)->env.apic_b= us_freq; + } /* * For all unsupported MSR access we: * ignore writes @@ -1804,8 +1813,10 @@ int whpx_vcpu_run(CPUState *cpu) reg_count =3D vcpu->exit_ctx.MsrAccess.AccessInfo.IsWrite ? 1 : 3; =20 - warn_report("WHPX: Unsupported MSR access (0x%x), IsWrite=3D%i= ",=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); + } =20 hr =3D whp_dispatch.WHvSetVirtualProcessorRegisters( whpx->partition, @@ -1973,6 +1984,10 @@ int whpx_init_vcpu(CPUState *cpu) } } =20 + /* When not using the Hyper-V APIC, the frequency is 1 GHz */ + if (!whpx_irqchip_in_kernel()) { + env->apic_bus_freq =3D 1000000000; + } =20 vcpu->interruptable =3D true; cpu->vcpu_dirty =3D true; @@ -2186,7 +2201,6 @@ int whpx_accel_init(AccelState *as, MachineState *ms) synthetic_features.Bank0.Hv1 =3D 1; synthetic_features.Bank0.AccessPartitionReferenceCounter =3D 1; synthetic_features.Bank0.AccessPartitionReferenceTsc =3D 1; - /* if kernel-irqchip=3Doff, HV_X64_MSR_APIC_FREQUENCY =3D 0. */ synthetic_features.Bank0.AccessFrequencyRegs =3D 1; synthetic_features.Bank0.AccessVpIndex =3D 1; synthetic_features.Bank0.AccessHypercallRegs =3D 1; --=20 2.50.1 (Apple Git-155) From nobody Mon Mar 2 08:45:03 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=1772315364; cv=none; d=zohomail.com; s=zohoarc; b=XvHv1jT8boesbP/y3GN9o9MFEltSAmGmT49t0os9IeR930szhxNAjyJm+CeVix2RaXas4wIycvdQjCS7q2GR7a/cnHH70VBbiWno7TGEp22sYrk46Rrw34iCcNzuFRCZ8H9c4deVqRlJ4q545jaJSCeAB0wyxMptGL+KEQSfsW4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772315364; 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=lfrkVypbIXt+OmEJPfA0qbh7rrK7NSWT9WdXrP9x0ww=; b=NrOjUAQIr+rDBTeG+a9Z8ABBc76uQsigCmuPVae4L1epXJhXYgOR3yg+HTSpplzYWo4JSOuH51jHpyID5lE2uz1vgi/gN9mvIAHmpaIgASmRWBvW3WtH+DJwNKOw6kjl14xCQ4zEFJe8LU7F65Me7MbjcQyyFVrATSRcczq7gMY= 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 1772315364344949.9481938189207; Sat, 28 Feb 2026 13:49:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vwS9m-0004EM-DC; Sat, 28 Feb 2026 16:47:26 -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 1vwS9i-0004CT-Hf for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:22 -0500 Received: from qs-2005d-snip4-5.eps.apple.com ([57.103.86.166] helo=outbound.qs.icloud.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vwS9h-0002V4-6a for qemu-devel@nongnu.org; Sat, 28 Feb 2026 16:47:22 -0500 Received: from outbound.qs.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPS id 10505180013D; Sat, 28 Feb 2026 21:47:17 +0000 (UTC) Received: from localhost.localdomain (unknown [17.57.155.37]) by p00-icloudmta-asmtp-us-east-2d-20-percent-1 (Postfix) with ESMTPSA id 2E0861800114; Sat, 28 Feb 2026 21:47:16 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr; s=sig1; t=1772315240; x=1774907240; bh=lfrkVypbIXt+OmEJPfA0qbh7rrK7NSWT9WdXrP9x0ww=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=HrqwZ5KpvA6gMj6vKQCy3zNx9gJEJPw1vf2bnKf8rmZu1Bhb/ziUk1QN4wlUssXwDaJfftQvOnpS/F8ij6H0r9jdgRsq9zw+wwDoSDuwuuENbqpsde40KWicgoI7iIicj7wG4ues02KLCjkulimRBpQshb15WoYFUG5HCmKywv2wdlSzMNimysseee7XvKMOsdMPvXMvrqHpnebycWv7a1CKyUsM6WRmVpk41aspgxXqiDxMvd4tvS0Rk1zOA3LgIsglWl7YWho+J7v4pN9ljGAxUaVgOsbtdA8b3kIY4edsaxMuK9+JFcMz+CX3dZlFt/NoHJs6IDBZ8HcXZngF8Q== mail-alias-created-date: 1752046281608 From: Mohamed Mediouni To: qemu-devel@nongnu.org Cc: Cameron Esfahani , Wei Liu , Pedro Barbuda , Phil Dennis-Jordan , Roman Bolshakov , Mohamed Mediouni Subject: [PATCH v2 8/8] target/i386: emulate: fix scas Date: Sat, 28 Feb 2026 22:47:04 +0100 Message-ID: <20260228214704.19048-9-mohamed@unpredictable.fr> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260228214704.19048-1-mohamed@unpredictable.fr> References: <20260228214704.19048-1-mohamed@unpredictable.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Info-Out: v=2.4 cv=J9GnLQnS c=1 sm=1 tr=0 ts=69a36266 cx=c_apl:c_apl_out:c_pps a=bsP7O+dXZ5uKcj+dsLqiMw==:117 a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VLX2UGPRQwTXjk7uINwA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI4MDIwMyBTYWx0ZWRfX64XrjbRAsYtC +h6YTajBA9XM2ng4tIOoBeiIp231zkx76NmwwhcSAkWuWzo6ItSgY5b6RNEexX1I35YM8JoAsdO ac9hvcHbCkz6XhDSJ2wfgWkLyNwuBbDM6jIQKRieH2dDT1/7TD0n3R9eo/9Bqtga+jMLOipSYEq gAPwiIIGsEYNh/GU0ddS849JzpzFNDFlH5a8fCVf+nJ0O2CWE+f23PIXsVpRLTakQw8QWHiiDsK bfa2OvUVj6dLwwGLpOwXPT4fUfXwWgKXYhrZDhqJVKYHH3T0PgkyvA4K3gWiZHJ/yPT6aUMQ0mj g0KVopX0jwvKL+F+eQJj+WGVzViizqyl8nvc9kB47hML77ILO8Lxb3TfAbjuKY= X-Proofpoint-GUID: TJpeEPT7pQeQoNbKIgMbpEBQ6QoUHgrW X-Proofpoint-ORIG-GUID: TJpeEPT7pQeQoNbKIgMbpEBQ6QoUHgrW 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-28_07,2026-02-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1030 spamscore=0 lowpriorityscore=0 suspectscore=0 mlxscore=0 phishscore=0 malwarescore=0 bulkscore=0 adultscore=0 mlxlogscore=740 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602280203 X-JNJ: AAAAAAABi/AUBT6tqxfjaPw5H6uR0DtQk/pDYjB+6DmtGavfsiKvwM4r1vRR9LAwNGbjuWjtvunLzKZBAUbvhFsVwMfUbArDs4+RS94ECheUiA25b20S5na6lqZHFtlitAhsq1GHZ+KarnH+8BCuicUSJRlErmTb1HuMpCLQ1neV2KuHOQZJUMtD8H/aNwbQ5FYebfnAt7vRSj/V9mLFtkVy/43rBj9J3D1nPnx2Axrh0UUM1FTHlKbf467lb2SOXdTrNCTdc8nwdcZO5ElWxauQVrTmABufSpj6ZYr6DYMUbF6XD39cnFDWeirhQsZFFlarDWxdTKOtKZqHL88hSYX8I2sNdQcmKX3kq/3nFNfJxyZA4LW22E2zUMtJfZQ5DdnHSlirrCOfVPIW+KwkOQR77Kc+hwEcFuvYNgDOeiEzcvheuLGBfVk4+tJSZiuYEm+cwUH2kGSZf53OQvB3L6dTxnSiqLwOozkRU/sjLUE7Pqp20+yVdIFD8N/EiMZseAnvEuJ75yPCvoFK89U6RfPGRgREa+r9noE5GXGU03DkQvpY9qEyx8Yp4KHaMpC9sMz3EYxFagEwCXygCtH23Zswxsy0xx4kh6AiELv6zPaJ34ka5+ODL9ZUjaO6PwfHvFw+orbxP2Dq8Tk9uQDMWiDuJOYFVxWmAA== 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.86.166; envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.icloud.com X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 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.966, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.722, 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: 1772315365249158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Mohamed Mediouni --- target/i386/emulate/x86_emu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/i386/emulate/x86_emu.c b/target/i386/emulate/x86_emu.c index 6c4ccc4538..55b1a68eb6 100644 --- a/target/i386/emulate/x86_emu.c +++ b/target/i386/emulate/x86_emu.c @@ -745,6 +745,8 @@ static bool exec_scas(CPUX86State *env, struct x86_deco= de *decode) { decode->op[0].type =3D X86_VAR_REG; decode->op[0].reg =3D R_EAX; + decode->op[0].regptr =3D x86_reg(env, R_EAX); + if (decode->rep) { string_rep(env, decode, exec_scas_single, decode->rep); } else { --=20 2.50.1 (Apple Git-155)