[{"id":3679039,"web_url":"http://patchwork.ozlabs.org/comment/3679039/","msgid":"<9926A5B0-8660-433D-B074-3B49E830BC9D@unpredictable.fr>","list_archive_url":null,"date":"2026-04-19T00:14:32","subject":"Re: [PATCH] hw: i386: vapic: restore IRQ polling for non-kernel\n irqchip backends","submitter":{"id":91318,"url":"http://patchwork.ozlabs.org/api/people/91318/","name":"Mohamed Mediouni","email":"mohamed@unpredictable.fr"},"content":"> On 18. Apr 2026, at 08:14, rickgcn <rickgcn@gmail.com> wrote:\n> \n> 69dfc078 extended vAPIC handling for WHPX with user-mode irqchip, but it\n> also changed vapic_write() case 4 in a way that excludes TCG from\n> apic_poll_irq().\n> \n> Before that change, IRQ polling happened whenever no in-kernel irqchip\n> was active. After the change, it only happened for KVM or WHPX with a\n> user-mode irqchip. Under TCG, both kvm_enabled() and whpx_enabled() are\n> false, so the poll never happens.\n> \n> This regresses 32-bit Windows XP guests on a Windows host with\n> -machine pc-i440fx-10.0,accel=tcg, causing a STOP 0x0000000A during boot.\n> \n> Fix it by making the decision depend on whether KVM or WHPX is using an\n> in-kernel irqchip, instead of whether either accelerator is enabled.\n> \n> Fixes: 69dfc078a6f0 (\"hw: i386: vapic: enable on WHPX with user-mode irqchip\")\n> \n> Signed-off-by: rickgcn <rickgcn@gmail.com>\n> ---\n> hw/i386/vapic.c | 3 +--\n> 1 file changed, 1 insertion(+), 2 deletions(-)\n> \n> diff --git a/hw/i386/vapic.c b/hw/i386/vapic.c\n> index 41e5ca26df..1acb9f91b2 100644\n> --- a/hw/i386/vapic.c\n> +++ b/hw/i386/vapic.c\n> @@ -716,8 +716,7 @@ static void vapic_write(void *opaque, hwaddr addr, uint64_t data,\n>         break;\n>     default:\n>     case 4:\n> -        if ((kvm_enabled() && !kvm_irqchip_in_kernel())\n> -          || (whpx_enabled() && !whpx_irqchip_in_kernel())) {\n> +        if (!kvm_irqchip_in_kernel() && !whpx_irqchip_in_kernel()) {\n\nHi,\n\nI think we want to keep the kvm_enabled/whpx_enabled checks.\n\nHow does this sound?\n\n\tif (!(kvm_enabled() && kvm_irqchip_in_kernel())\n\t || !(whpx_enabled() && whpx_irqchip_in_kernel())) {\n\nOr\n\n        if ((kvm_enabled() && !kvm_irqchip_in_kernel())\n          || (whpx_enabled() && !whpx_irqchip_in_kernel())\n\t  || tcg_enabled()) {\n\nThank you,","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=unpredictable.fr header.i=@unpredictable.fr\n header.a=rsa-sha256 header.s=sig1 header.b=CZJ+KV7u;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fypzp6Pldz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 19 Apr 2026 10:15:33 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wEFoK-00089W-32; Sat, 18 Apr 2026 20:14:52 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mohamed@unpredictable.fr>)\n id 1wEFoI-00089O-Df\n for qemu-devel@nongnu.org; Sat, 18 Apr 2026 20:14:50 -0400","from p-east2-cluster3-host3-snip4-4.eps.apple.com ([57.103.77.155]\n helo=outbound.st.icloud.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mohamed@unpredictable.fr>)\n id 1wEFoG-0001eW-8u\n for qemu-devel@nongnu.org; Sat, 18 Apr 2026 20:14:50 -0400","from outbound.st.icloud.com (unknown [127.0.0.2])\n by p00-icloudmta-asmtp-us-east-1a-10-percent-2 (Postfix) with ESMTPS id\n 009F218000BF; Sun, 19 Apr 2026 00:14:45 +0000 (UTC)","from smtpclient.apple (unknown [17.42.251.67])\n by p00-icloudmta-asmtp-us-east-1a-10-percent-2 (Postfix) with ESMTPSA id\n A3E451800180; Sun, 19 Apr 2026 00:14:44 +0000 (UTC)"],"Dkim-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr;\n s=sig1; t=1776557686; x=1779149686;\n bh=KpIctzXqg3kXtDhuq4XdOg8zLKPH4SuOnIhqEDtV8Mk=;\n h=Content-Type:Mime-Version:Subject:From:Date:Message-Id:To:x-icloud-hme;\n b=CZJ+KV7u1b5SzL28wzLs7RHUpCDa9jA4s8T14TklHsnOskTqSs1+SP9ieFfigfguinitkJh3Dhgl/r23ReWxVLlx1+65jQMm76QCKZrmqI+pgi4AupKhlp8ogkM5xhTiyYixez+Z9inaXz/WcqJB/Iw1W5rc+H8EnWoUcs/98CRFuyzjtQ7TRweH6zyHvmCflVT46Hr9RDlAYXchXlrXj6w6ScqT2f5L76v4ueimCXHZnZHNGHYOBPel5S0GcpF4IYzQ5oMfLH7qBnfaLQLApges3Fr8kZl8yMxNeDbgG50ls0u9f3RNgyZCmiFTH7Hmpw+/SMNx+8DTN3IQtO8Y1w==","mail-alias-created-date":"1752046281608","Content-Type":"text/plain;\n\tcharset=us-ascii","Mime-Version":"1.0 (Mac OS X Mail 16.0 \\(3864.500.181\\))","Subject":"Re: [PATCH] hw: i386: vapic: restore IRQ polling for non-kernel\n irqchip backends","From":"Mohamed Mediouni <mohamed@unpredictable.fr>","In-Reply-To":"<20260418061429.16898-1-rickgcn@gmail.com>","Date":"Sun, 19 Apr 2026 02:14:32 +0200","Cc":"qemu-devel@nongnu.org, mst@redhat.com, marcel.apfelbaum@gmail.com,\n pbonzini@redhat.com, richard.henderson@linaro.org","Content-Transfer-Encoding":"quoted-printable","Message-Id":"<9926A5B0-8660-433D-B074-3B49E830BC9D@unpredictable.fr>","References":"<20260418061429.16898-1-rickgcn@gmail.com>","To":"rickgcn <rickgcn@gmail.com>","X-Mailer":"Apple Mail (2.3864.500.181)","X-Authority-Info-Out":"v=2.4 cv=NeTrFmD4 c=1 sm=1 tr=0 ts=69e41e76\n cx=c_apl:c_pps:t_out a=YrL12D//S6tul8v/L+6tKg==:117\n a=YrL12D//S6tul8v/L+6tKg==:17 a=kj9zAlcOel0A:10 a=A5OVakUREuEA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=W4rVtugX6geAamtpO3UA:9\n a=CjuIK1q_8ugA:10","X-Proofpoint-GUID":"V2HNkNOKyCf7KTh1lC-86RiJj6tuTwa9","X-Proofpoint-ORIG-GUID":"V2HNkNOKyCf7KTh1lC-86RiJj6tuTwa9","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDE5MDAwMSBTYWx0ZWRfX+dmk/8w/OzVe\n sS/95OoRtNkIs+VF+vMMiuI7aP8oZBEHB9DpAACYSU3mgIUxtUfFBAs2t1xRSXy5GGB9PF+cOzp\n x0Z0PPlgRsDlTprxX4362sEHp0vgNFEE6oWo4we91xIkkBd3qO+2EPNLr3PRMDSZbxACZYWv+Wd\n MGuX7stiapHUV7kqYUm79Y4xV6VYT8NojiGP2kBXRP0ygEkqUM7sZ0TgqZZ8OXCmZkyMDwZ53mY\n CpTgSi7Sag5p4SPO2ZVOvkUYJXG9u4v1PrWqzT5aMzR0F/JoDo0moo+4H80ImwwfTjLp/cGLem2\n cfSK0cdolVp6/hwB6LEv8lCbOCafrMHHv83b/20mH5N7e7dUh+VD9xhP4UptFE=","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-18_07,2026-04-17_04,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=notspam policy=default score=0 bulkscore=0\n suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0\n clxscore=1030 spamscore=0 lowpriorityscore=0 mlxlogscore=883 classifier=spam\n authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000\n definitions=main-2604190001","Received-SPF":"pass client-ip=57.103.77.155;\n envelope-from=mohamed@unpredictable.fr; helo=outbound.st.icloud.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,\n RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001,\n 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 <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3679064,"web_url":"http://patchwork.ozlabs.org/comment/3679064/","msgid":"<CABgObfbZPDvB6FAEbUY3fNZd+3mNkjnoU47K2RCSDM4zy1fn8Q@mail.gmail.com>","list_archive_url":null,"date":"2026-04-19T08:33:30","subject":"Re: [PATCH] hw: i386: vapic: restore IRQ polling for non-kernel\n irqchip backends","submitter":{"id":2701,"url":"http://patchwork.ozlabs.org/api/people/2701/","name":"Paolo Bonzini","email":"pbonzini@redhat.com"},"content":"On Sun, Apr 19, 2026 at 1:14 AM Mohamed Mediouni\n<mohamed@unpredictable.fr> wrote:\n>\n>\n>\n> > On 18. Apr 2026, at 08:14, rickgcn <rickgcn@gmail.com> wrote:\n> >\n> > 69dfc078 extended vAPIC handling for WHPX with user-mode irqchip, but it\n> > also changed vapic_write() case 4 in a way that excludes TCG from\n> > apic_poll_irq().\n> >\n> > Before that change, IRQ polling happened whenever no in-kernel irqchip\n> > was active. After the change, it only happened for KVM or WHPX with a\n> > user-mode irqchip. Under TCG, both kvm_enabled() and whpx_enabled() are\n> > false, so the poll never happens.\n> >\n> > This regresses 32-bit Windows XP guests on a Windows host with\n> > -machine pc-i440fx-10.0,accel=tcg, causing a STOP 0x0000000A during boot.\n> >\n> > Fix it by making the decision depend on whether KVM or WHPX is using an\n> > in-kernel irqchip, instead of whether either accelerator is enabled.\n> >\n> > Fixes: 69dfc078a6f0 (\"hw: i386: vapic: enable on WHPX with user-mode irqchip\")\n> >\n> > Signed-off-by: rickgcn <rickgcn@gmail.com>\n> > ---\n> > hw/i386/vapic.c | 3 +--\n> > 1 file changed, 1 insertion(+), 2 deletions(-)\n> >\n> > diff --git a/hw/i386/vapic.c b/hw/i386/vapic.c\n> > index 41e5ca26df..1acb9f91b2 100644\n> > --- a/hw/i386/vapic.c\n> > +++ b/hw/i386/vapic.c\n> > @@ -716,8 +716,7 @@ static void vapic_write(void *opaque, hwaddr addr, uint64_t data,\n> >         break;\n> >     default:\n> >     case 4:\n> > -        if ((kvm_enabled() && !kvm_irqchip_in_kernel())\n> > -          || (whpx_enabled() && !whpx_irqchip_in_kernel())) {\n> > +        if (!kvm_irqchip_in_kernel() && !whpx_irqchip_in_kernel()) {\n>\n> Hi,\n>\n> I think we want to keep the kvm_enabled/whpx_enabled checks.\n\nNo, it's not needed.  If kvm_enabled() is false either the checks are\ncompiled out or the variable is false.\n\nThe check is for \"is it using the userspace APIC\", so rickgcn's patch\nis correct.\n\nPaolo\n\n> How does this sound?\n>\n>         if (!(kvm_enabled() && kvm_irqchip_in_kernel())\n>          || !(whpx_enabled() && whpx_irqchip_in_kernel())) {\n>\n> Or\n>\n>         if ((kvm_enabled() && !kvm_irqchip_in_kernel())\n>           || (whpx_enabled() && !whpx_irqchip_in_kernel())\n>           || tcg_enabled()) {\n>\n> Thank you,\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=Cyx68gxO;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=MJhQ/79M;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fz23k3KlYz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 19 Apr 2026 18:34:41 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wENbE-0000PI-S4; Sun, 19 Apr 2026 04:33:52 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pbonzini@redhat.com>)\n id 1wENbE-0000P4-3F\n for qemu-devel@nongnu.org; Sun, 19 Apr 2026 04:33:52 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pbonzini@redhat.com>)\n id 1wENbC-0003qo-00\n for qemu-devel@nongnu.org; Sun, 19 Apr 2026 04:33:51 -0400","from mail-wr1-f70.google.com (mail-wr1-f70.google.com\n [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-304-zlwA-2OINASdOBBNjLNYqA-1; Sun, 19 Apr 2026 04:33:45 -0400","by mail-wr1-f70.google.com with SMTP id\n ffacd0b85a97d-43d789cebcfso1712290f8f.1\n for <qemu-devel@nongnu.org>; Sun, 19 Apr 2026 01:33:44 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776587627;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=rLPwBZAuO7yVoRltIXrZqOLYKO9yfPdcfqrkUUgMAuQ=;\n b=Cyx68gxOlLyTd92Kd4v3f45vlTi8Zl1J3Zbq+vz7B8YPiSdJzOAVztPD/qOoYgcSQMmzAf\n NoRKBn1QaQu4AIW4i1iGFhHObFedaDdI8QqZofqOUJLo4Wbclx+JuhhH1VS5VhDrNFHiKM\n u/7+ODxZehxCAQjXSdxa7kV+k1CESxI=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1776587624; x=1777192424; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=rLPwBZAuO7yVoRltIXrZqOLYKO9yfPdcfqrkUUgMAuQ=;\n b=MJhQ/79MxhH3vWGj90BdZyDGoxxgpkA2Qbm9Rp8NCI6hHc9GSLbbqRxkiEeq4FyJxm\n blklykPbbD3DeRvcxQhoBRMX/2W5MdcWuEtEmq4QRe6bdnTx0r56LA9qoI/jnaz9HjJk\n detOG65+r6OjPDIJYTkWdV+/OGByAsY2ByprWBgRhuv3V15uDMmHxCej/uYnmDchNrcu\n /ME8C6ZvRPgjPZVtAJBHKvE9n4Sc1fc/EtVeb5jMk1vkTcb9b2g7RWgdMTFkCl6NCA/z\n kXZlAm3wcl11BcnH2E5MRo2Yk1gX3bk4QS81OF7dS9cngNC8XjOi3CtWD6J3Q76EfH4L\n GCOw=="],"X-MC-Unique":"zlwA-2OINASdOBBNjLNYqA-1","X-Mimecast-MFC-AGG-ID":"zlwA-2OINASdOBBNjLNYqA_1776587624","ARC-Seal":"i=1; a=rsa-sha256; t=1776587624; cv=none;\n d=google.com; s=arc-20240605;\n b=LL/yeZMW3Z2Gvj7v6iAqDBQB0BX1gVmskdDXg+AVVVCw/e1Aql3QNrLMQ673rjHEhA\n 1KuHS4z7uLahIT08vnWkyl6+QyOAVvty+mSUM184kdlrXm5jtG+2i+aP0bPKPpUvhQK6\n mA2Md/BphuFw7GaZ6MX+J5npOIRpV38oNfsf1fqjqx4F9TVZfm7pbLFZg6ajI0+G921L\n fxv8/uQizpqxsxepr4HIX0gzyOgJytO3zdi0/H8J4osrk3leJdaEc2hBqHmEiu9vHfZl\n T6xfOGmJ9EhTAQIYNs/w8CSaxjNXoMwllUl16oYn0oZApyYoGjfP0ncYDxbdH1d7q0tw\n RkeQ==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=rLPwBZAuO7yVoRltIXrZqOLYKO9yfPdcfqrkUUgMAuQ=;\n fh=7keYvWMxT8tzyrJUfr1+GGXboUjM6zt5MF6kkJwqLwk=;\n b=cJYef19RFqdrnGLf/fdpNFCbdFYBSEGIXXbGn6chz8vQMayb5sGlnN+oVqKnR2Whvs\n fIN+v5eCFb3MW6c3/J96MVPanzriA64cqOsxbPBPPJ+y86MXpIm6/rxxlBfvAgQNeyhV\n ttdy6sY4l9eobOn6HG8E+jIzZHAsadPyY//hJrC5iOjSXmiPHMS2rULrmrnqbe9itEG1\n p6VKXrOgd+aR/yt/iBZEEnM+0Puz0uSueMJqLuysLaNBRKZiD1C11m/P55Jmy1FkqF45\n hzxUfNhVizLx8g3PRn+Ka4W+TlsZcBM+DtrX/Kf36SVKPrsBT2NFdcWU48azQ7MZ8L21\n U6YA==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776587624; x=1777192424;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=rLPwBZAuO7yVoRltIXrZqOLYKO9yfPdcfqrkUUgMAuQ=;\n b=nG077EefkfCl9/8b5A6/J2Ja8qBD2929hHw0awfzPJDgnIabGfPO4Xx3pWwMqRt2qL\n KYXksznLw68nJggOihJFe/ojrGZJiDx1OWowOZsmn9kden6Xiev06aiVR/04s22q/jFG\n EIYgCFFT5hOhIkvMfmCvOSAACntEnZ086VLSg91XRcJQZWM68GrCth9FnPTih5YhwnTA\n xBkbTQfzuA10pVPzLRcPldSrgWOr0bc/EIHcwZQXNULTnDPtUmA1wEp+CXh7Uk5RSd57\n Kfqi39D258rIroTVQHPDP2GJFlZl60RADflTCLmr2yTbHT36SwFrFg3kI7rSwXCQk/GP\n rp7A==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+CKxYD3d3Ck5Pbej691WxKRT65+5MRuX4TjOUm8helVoDIKHg0w8xjhPy5FeYzhFT/coblisjFKr66@nongnu.org","X-Gm-Message-State":"AOJu0Yxrw1/kPa5b0NVC9urbFeuxYYfhqPrnO4HAjsH2KM6s3RUiEBhB\n W1L14domsiDsLzx0cwxJC5XQLeJKY3OdGIwpfgV6GC/RIjliVc7dmv5Wl04c/e/aHMiOK91cjK5\n jb6n9d0JvtLb1gx3mFvSvRDUZXjD/DxSqpQZHGohdRMCWCARMAWM1EpeyAWOpcxxolmiiMk+F/Y\n knhvPWZ+zbqXiT2Isij2840oSuo3CY3Iw=","X-Gm-Gg":"AeBDiev9eDN7qr8ZQtRpveaK5FfJGC8mPE92+vNIahdsKOW4q/d60TOFAdk0TAkXjeI\n ekC2tVqbtQS4a1a4m03KgIqmg2QmYTD+doxxrKuzYruBoEfQJRrrMoypq5ry7hICl6U0FPzK3Hw\n 0SplwJHYv6W00XziEVWvr7Y6hlpZ6v84AweZLFYJlTYW8b9o99+uZitsAwUNMVz/iyu/33foiLa\n bgJstz7X5Nq596WkVFQteUAA/KCGf7sDgoK5tYIQfdlloRyvPxb8lcOIGwIIY6d+RFauP7IbpKl\n 1lqg4drJ26ov99k=","X-Received":["by 2002:a05:6000:228a:b0:43d:779e:afa8 with SMTP id\n ffacd0b85a97d-43fe407a7e5mr14684997f8f.16.1776587623727;\n Sun, 19 Apr 2026 01:33:43 -0700 (PDT)","by 2002:a05:6000:228a:b0:43d:779e:afa8 with SMTP id\n ffacd0b85a97d-43fe407a7e5mr14684964f8f.16.1776587623302; Sun, 19 Apr 2026\n 01:33:43 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260418061429.16898-1-rickgcn@gmail.com>\n <9926A5B0-8660-433D-B074-3B49E830BC9D@unpredictable.fr>","In-Reply-To":"<9926A5B0-8660-433D-B074-3B49E830BC9D@unpredictable.fr>","From":"Paolo Bonzini <pbonzini@redhat.com>","Date":"Sun, 19 Apr 2026 10:33:30 +0200","X-Gm-Features":"AQROBzCKAQDmNANV668nkEulDo5HbpBITXsbc5OPJYYMum-yUI3eCLgHj6OTB9g","Message-ID":"\n <CABgObfbZPDvB6FAEbUY3fNZd+3mNkjnoU47K2RCSDM4zy1fn8Q@mail.gmail.com>","Subject":"Re: [PATCH] hw: i386: vapic: restore IRQ polling for non-kernel\n irqchip backends","To":"Mohamed Mediouni <mohamed@unpredictable.fr>","Cc":"rickgcn <rickgcn@gmail.com>, qemu-devel@nongnu.org, mst@redhat.com,\n marcel.apfelbaum@gmail.com, richard.henderson@linaro.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=170.10.133.124;\n envelope-from=pbonzini@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-25","X-Spam_score":"-2.6","X-Spam_bar":"--","X-Spam_report":"(-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n 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 <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3680034,"web_url":"http://patchwork.ozlabs.org/comment/3680034/","msgid":"<E74AC2EF-12C7-4A6C-8BFC-6A55291BE6C1@unpredictable.fr>","list_archive_url":null,"date":"2026-04-21T19:35:13","subject":"Re: [PATCH] hw: i386: vapic: restore IRQ polling for non-kernel\n irqchip backends","submitter":{"id":91318,"url":"http://patchwork.ozlabs.org/api/people/91318/","name":"Mohamed Mediouni","email":"mohamed@unpredictable.fr"},"content":"> On 18. Apr 2026, at 08:14, rickgcn <rickgcn@gmail.com> wrote:\n> \n> 69dfc078 extended vAPIC handling for WHPX with user-mode irqchip, but it\n> also changed vapic_write() case 4 in a way that excludes TCG from\n> apic_poll_irq().\n> \n> Before that change, IRQ polling happened whenever no in-kernel irqchip\n> was active. After the change, it only happened for KVM or WHPX with a\n> user-mode irqchip. Under TCG, both kvm_enabled() and whpx_enabled() are\n> false, so the poll never happens.\n> \n> This regresses 32-bit Windows XP guests on a Windows host with\n> -machine pc-i440fx-10.0,accel=tcg, causing a STOP 0x0000000A during boot.\n> \n> Fix it by making the decision depend on whether KVM or WHPX is using an\n> in-kernel irqchip, instead of whether either accelerator is enabled.\n> \n> Fixes: 69dfc078a6f0 (\"hw: i386: vapic: enable on WHPX with user-mode irqchip\")\n> \n> Signed-off-by: rickgcn <rickgcn@gmail.com>\n\nReviewed-by: Mohamed Mediouni <mohamed@unpredictable.fr <mailto:mohamed@unpredictable.fr>>\n\nAlso a good candidate for backporting for QEMU 11.0(.1)\n\ncc qemu-stable\n> ---\n> hw/i386/vapic.c | 3 +--\n> 1 file changed, 1 insertion(+), 2 deletions(-)\n> \n> diff --git a/hw/i386/vapic.c b/hw/i386/vapic.c\n> index 41e5ca26df..1acb9f91b2 100644\n> --- a/hw/i386/vapic.c\n> +++ b/hw/i386/vapic.c\n> @@ -716,8 +716,7 @@ static void vapic_write(void *opaque, hwaddr addr, uint64_t data,\n>         break;\n>     default:\n>     case 4:\n> -        if ((kvm_enabled() && !kvm_irqchip_in_kernel())\n> -          || (whpx_enabled() && !whpx_irqchip_in_kernel())) {\n> +        if (!kvm_irqchip_in_kernel() && !whpx_irqchip_in_kernel()) {\n>             apic_poll_irq(cpu->apic_state);\n>         }\n>         break;\n> -- \n> 2.53.0\n> \n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=unpredictable.fr header.i=@unpredictable.fr\n header.a=rsa-sha256 header.s=sig1 header.b=QRKDF+rH;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0XfN27j6z1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 05:36:26 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFGsi-0006uR-2c; Tue, 21 Apr 2026 15:35:36 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mohamed@unpredictable.fr>)\n id 1wFGsg-0006u2-EA\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 15:35:34 -0400","from qs-2006h-snip4-11.eps.apple.com ([57.103.85.211]\n helo=outbound.qs.icloud.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mohamed@unpredictable.fr>)\n id 1wFGse-0006W2-WB\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 15:35:34 -0400","from outbound.qs.icloud.com (unknown [127.0.0.2])\n by p00-icloudmta-asmtp-us-east-2d-60-percent-4 (Postfix) with ESMTPS id\n C4AA1180011D; Tue, 21 Apr 2026 19:35:27 +0000 (UTC)","from smtpclient.apple (unknown [17.57.155.37])\n by p00-icloudmta-asmtp-us-east-2d-60-percent-4 (Postfix) with ESMTPSA id\n C4B3F1800126; Tue, 21 Apr 2026 19:35:25 +0000 (UTC)"],"X-ICL-Out-Info":"\n HUtFAUMHWwJACUgBTUQeDx5WFlZNRAJCTQFIHV8DWRxBAUkdXw9LVxQEFVwFVgZXFHkNXR1FDlYZWgxSD1sOHBZLWFUJCgZdGFgVVgl3HlwASx1XBFQfUxJVHR0LRUtAEwRPEwVSB11NVg1HD1geXBQXCUBDXgheH0wcHQ5YBhIATQoONgZZBV4JVgNDBTYSFF1FRgNHGVcUUBtHDFUHV15fChMAXg8PTHxPByx0WXc2FEkBLgBGBjEPOx5VdS1xXQ85BlgFUgMyfE5wXHceXABLHVcEVB9TElUdHQtFVRIEQAhWUFQeQQRWFWwJWAZTGVc=","Dkim-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr;\n s=sig1; t=1776800130; x=1779392130;\n bh=hmVQvqMmygaos5w9mlBVhCZSAEfye9lLHB8QlMy62a8=;\n h=Content-Type:Mime-Version:Subject:From:Date:Message-Id:To:x-icloud-hme;\n b=QRKDF+rHBs0JMG7cmbR2W9T8dpjhKvsv4CdYTk0uolA13u5uEVvimaKfOrHQEfnFc8gxfufUs2PBuakHaoxd33YIhWms0CxMvJsE0h6vgB6yw0ur27N5B7gQC49HJauiztCIAtHe6FyJBtOU9vGE42bdqhd6hwa4NyT4ulVe5Kv6XiqLnwS4fOJ3sznWeJWSwJL8p4ITg+9XGIlDjQyUMFMDwDhtALrEWVtYAsJrtUuN07bCEI0vPJKRwEwjycwxkIXbGlyZXeNvb646YXppMJB2Lfqh/szwuc18HBPCRPb+5eRXS35MCUjCi2UYH/9w6BG3NN62/nx7E5Zu1ksyXw==","mail-alias-created-date":"1752046281608","Content-Type":"text/plain;\n\tcharset=us-ascii","Mime-Version":"1.0 (Mac OS X Mail 16.0 \\(3864.500.181\\))","Subject":"Re: [PATCH] hw: i386: vapic: restore IRQ polling for non-kernel\n irqchip backends","From":"Mohamed Mediouni <mohamed@unpredictable.fr>","In-Reply-To":"<20260418061429.16898-1-rickgcn@gmail.com>","Date":"Tue, 21 Apr 2026 21:35:13 +0200","Cc":"qemu-devel@nongnu.org, mst@redhat.com, marcel.apfelbaum@gmail.com,\n pbonzini@redhat.com, richard.henderson@linaro.org, qemu-stable@nongnu.org","Content-Transfer-Encoding":"quoted-printable","Message-Id":"<E74AC2EF-12C7-4A6C-8BFC-6A55291BE6C1@unpredictable.fr>","References":"<20260418061429.16898-1-rickgcn@gmail.com>","To":"rickgcn <rickgcn@gmail.com>","X-Mailer":"Apple Mail (2.3864.500.181)","X-Proofpoint-ORIG-GUID":"vSjQLkWZfUKCkTeympmLSmEjnbkcgLbS","X-Proofpoint-GUID":"vSjQLkWZfUKCkTeympmLSmEjnbkcgLbS","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDIxMDE5NSBTYWx0ZWRfX7AFMgHgXbn7P\n 5ivSixyY/q1HPz9QzjmlFTfM7RDaauDnQzN6GUJW6UWeGYAdySQtMiExNrIIyZNl3+lxlGiUrp3\n v4JA4baelhqK7LL3JQ6ejzOX4GlW4FjTtq1H92Uk7V/dAN4r4eltf7zQ9A15+cf0VX7Zl5/DcZu\n fRQcHGiJNWIpTKF3F+WUatuTpDQnfc5pmv46HzxTcCqXlWA2kt0EuJRIRcVojUpPZxdIYKAxBqK\n B5eENUB+XZUqAOSeeH9eB/JNNxO0eILcTRhjzzjDcQ3h/7BFYU1hV6kfhpxhCVAE9eqby2fhQYa\n NTi1Ntml8/ZCbNZUWiMx7AouQLKl0P/++6WNnuvxruSmU1h4hxuuUIUbZ2rvEk=","X-Authority-Info-Out":"v=2.4 cv=I8Nohdgg c=1 sm=1 tr=0 ts=69e7d180\n cx=c_apl:c_pps:t_out a=bsP7O+dXZ5uKcj+dsLqiMw==:117\n a=bsP7O+dXZ5uKcj+dsLqiMw==:17 a=kj9zAlcOel0A:10 a=A5OVakUREuEA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=W4rVtugX6geAamtpO3UA:9\n a=lqcHg5cX4UMA:10 a=CjuIK1q_8ugA:10","Received-SPF":"pass client-ip=57.103.85.211;\n envelope-from=mohamed@unpredictable.fr; helo=outbound.qs.icloud.com","X-Spam_score_int":"-27","X-Spam_score":"-2.8","X-Spam_bar":"--","X-Spam_report":"(-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001,\n 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 <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]