[{"id":3676672,"web_url":"http://patchwork.ozlabs.org/comment/3676672/","msgid":"<0954ef7e-b04e-4542-89fb-796acc452068@linux.ibm.com>","list_archive_url":null,"date":"2026-04-13T11:36:55","subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","submitter":{"id":85411,"url":"http://patchwork.ozlabs.org/api/people/85411/","name":"Harsh Prateek Bora","email":"harshpb@linux.ibm.com"},"content":"On 13/04/26 4:51 pm, Ani Sinha wrote:\n> During refactoring of kvm_irqchip_create(), the refactored code was returning\n> early from do_kvm_irqchip_create() function if the required capabilities were\n> not present in KVM. This was not translating to an early return from\n> kvm_irqchip_create() as was the case before refactoring. This is because,\n> do_kvm_irqchip_create() did not have a means to notify the caller of the lack\n> of kvm capabilities. Fix this by making do_notify_irqchip_create() return\n> EOPNOTSUPP error when required capabilities are absent and then the caller\n> can check the return code and return early.\n> \n> Converted some calls to exit() to assertion checks in order to make it cleaner.\n> \n> Fixes: 98884e0cc1 (\"accel/kvm: add changes required to support KVM VM file descriptor change\")\n> Reported-by: Misbah Anjum N <misanjum@linux.ibm.com>\n> Reported-by: Gautam Menghani <gautam@linux.ibm.com>\n> Suggested-by: Fabiano Rosas <farosas@suse.de>\n> Suggested-by: Harsh Prateek Bora <harshpb@linux.ibm.com>\n> Signed-off-by: Ani Sinha <anisinha@redhat.com>\n> ---\n>   accel/kvm/kvm-all.c | 29 ++++++++++++++++-------------\n>   1 file changed, 16 insertions(+), 13 deletions(-)\n> \n> changelog:\n> v2: converted some exit() calls to assertions.\n> \n> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c\n> index 774499d34f..c78bf6a56f 100644\n> --- a/accel/kvm/kvm-all.c\n> +++ b/accel/kvm/kvm-all.c\n> @@ -2575,7 +2575,7 @@ void kvm_irqchip_set_qemuirq_gsi(KVMState *s, qemu_irq irq, int gsi)\n>       g_hash_table_insert(s->gsimap, irq, GINT_TO_POINTER(gsi));\n>   }\n>   \n> -static void do_kvm_irqchip_create(KVMState *s)\n> +static int do_kvm_irqchip_create(KVMState *s)\n>   {\n>       int ret;\n>       if (kvm_check_extension(s, KVM_CAP_IRQCHIP)) {\n> @@ -2587,36 +2587,38 @@ static void do_kvm_irqchip_create(KVMState *s)\n>               exit(1);\n>           }\n>       } else {\n> -        return;\n> +        /*\n> +         * neither KVM_CAP_IRQCHIP nor KVM_CAP_S390_IRQCHIP capabilities are\n> +         * present. Bail.\n> +         */\n> +        return -EOPNOTSUPP;\n>       }\n>   \n> -    if (kvm_check_extension(s, KVM_CAP_IRQFD) <= 0) {\n> -        fprintf(stderr, \"kvm: irqfd not implemented\\n\");\n> -        exit(1);\n> -    }\n> +    assert(kvm_check_extension(s, KVM_CAP_IRQFD));\n\nagain changing behaviour ?\npreviously it was doing exit(1) on returning non-zero.\nNow, it will assert on returning zero ?\nMay be split the patch to keep the exit -> assert changes separate ?\n\n>   \n>       /* First probe and see if there's a arch-specific hook to create the\n>        * in-kernel irqchip for us */\n>       ret = kvm_arch_irqchip_create(s);\n>       if (ret == 0) {\n> -        if (s->kernel_irqchip_split == ON_OFF_AUTO_ON) {\n> -            error_report(\"Split IRQ chip mode not supported.\");\n> -            exit(1);\n> -        } else {\n> -            ret = kvm_vm_ioctl(s, KVM_CREATE_IRQCHIP);\n> -        }\n> +        /* assert that split IRQ chip mode is supported. */\n> +        assert(s->kernel_irqchip_split != ON_OFF_AUTO_ON);\n> +        ret = kvm_vm_ioctl(s, KVM_CREATE_IRQCHIP);\n>       }\n>       if (ret < 0) {\n>           fprintf(stderr, \"Create kernel irqchip failed: %s\\n\", strerror(-ret));\n>           exit(1);\n>       }\n> +\n> +    return 0;\n>   }\n>   \n>   static void kvm_irqchip_create(KVMState *s)\n>   {\n>       assert(s->kernel_irqchip_split != ON_OFF_AUTO_AUTO);\n>   \n> -    do_kvm_irqchip_create(s);\n> +    if (do_kvm_irqchip_create(s) < 0) {\n> +        return;\n> +    }\n>       kvm_kernel_irqchip = true;\n>       /* If we have an in-kernel IRQ chip then we must have asynchronous\n>        * interrupt delivery (though the reverse is not necessarily true)\n> @@ -2835,6 +2837,7 @@ static int kvm_reset_vmfd(MachineState *ms)\n>       }\n>   \n>       if (s->kernel_irqchip_allowed) {\n> +        /* ignore return from this function */\n>           do_kvm_irqchip_create(s);\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=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=ICxS+Txa;\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 4fvQPS5Z9wz1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 21:37:31 +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 1wCFbK-0004Bs-23; Mon, 13 Apr 2026 07:37:10 -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 <harshpb@linux.ibm.com>)\n id 1wCFbH-0004Bh-M1\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 07:37:07 -0400","from mx0b-001b2d01.pphosted.com ([148.163.158.5])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <harshpb@linux.ibm.com>)\n id 1wCFbE-0002Uf-Ct\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 07:37:06 -0400","from pps.filterd (m0356516.ppops.net [127.0.0.1])\n by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63CLtcHV3213180; Mon, 13 Apr 2026 11:37:02 GMT","from ppma21.wdc07v.mail.ibm.com\n (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])\n by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dfbqkf950-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Mon, 13 Apr 2026 11:37:02 +0000 (GMT)","from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])\n by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 63D8vPb6003581;\n Mon, 13 Apr 2026 11:37:01 GMT","from smtprelay07.dal12v.mail.ibm.com ([172.16.1.9])\n by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dg1mn4xf4-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Mon, 13 Apr 2026 11:37:01 +0000","from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com\n [10.39.53.232])\n by smtprelay07.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 63DBb0jf29360806\n (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Mon, 13 Apr 2026 11:37:00 GMT","from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 3FCFA58043;\n Mon, 13 Apr 2026 11:37:00 +0000 (GMT)","from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 586EF58053;\n Mon, 13 Apr 2026 11:36:57 +0000 (GMT)","from [9.123.0.169] (unknown [9.123.0.169])\n by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP;\n Mon, 13 Apr 2026 11:36:57 +0000 (GMT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n :content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=pp1; bh=jHepOC\n uTklpTDiLS/v6IL9l8lsKTi9amvT8oND3QWcU=; b=ICxS+TxaQFa3D4Koypv2c2\n IIevRjPQNyI2YsmAJptoyzLV85Hi5LpUyn0ED2vlYkuoA8OcFxrk9zrTJzvsBYsy\n X/YvSeYzWu9xUNqYDQlBDnyUxufqfP5TMRNiCv/adD+Q7cq9S7UzDRgLVBoagXkt\n 6nTRGQjCJGv6/ppov4dXtez8ohbgzWWoSNiyvvV5Oe+bRAEM0+D7TSSrREso6M1N\n t6xGNGImQwszfxyyPk63W5JhayIqttmM4Ut3vbOuOGvLsBUdDtaHEN4KHGukrCX3\n OUYIUtgrgQyjqZ2N8+2AnpQS/0McadiOWhX9mDzY/nII9BUefSK6QzXK6Eu2upjg\n ==","Message-ID":"<0954ef7e-b04e-4542-89fb-796acc452068@linux.ibm.com>","Date":"Mon, 13 Apr 2026 17:06:55 +0530","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","Content-Language":"en-GB","To":"Ani Sinha <anisinha@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>","Cc":"peter.maydell@linaro.org, Misbah Anjum N <misanjum@linux.ibm.com>,\n Gautam Menghani <gautam@linux.ibm.com>,\n Fabiano Rosas <farosas@suse.de>, kvm@vger.kernel.org, qemu-devel@nongnu.org","References":"<20260413112151.61261-1-anisinha@redhat.com>","From":"Harsh Prateek Bora <harshpb@linux.ibm.com>","In-Reply-To":"<20260413112151.61261-1-anisinha@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-TM-AS-GCONF":"00","X-Authority-Analysis":"v=2.4 cv=I+9Vgtgg c=1 sm=1 tr=0 ts=69dcd55e cx=c_pps\n a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=f7IdgyKtn90A:10\n a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22\n a=VnNF1IyMAAAA:8 a=20KFwNOVAAAA:8 a=Y_7XUuprIgRBB3N_oLcA:9 a=QEXdDO2ut3YA:10","X-Proofpoint-GUID":"HoeGeDP2Q7PnjKqx4jI4OcKS71H9Iwb6","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDEzMDExMSBTYWx0ZWRfX96E9rF2Rp7dT\n P/j9riur638eRzmE1J0m68oG0HcIVlSAU9Tu5wudCBwrgim9IvpnRokqdUmJGKJtptQU8yBQJOp\n A6nwrV5NDojqy9DIwkyo0soes1vkF0IClysmOoh07woSBgCPrggjxlByeqMGdkY03fuNiGbDlx/\n 3D2jrniiD2e0G8c+BOWQuMcN23xia8oBk3/S7awzc8/1v+XEik4TIFkn/rxlMyUTgCf1n//1Vfi\n Ya7dFz+PNQF9fihkWYmwXChb//H7B78EYRFlwtiQIxiAnb5COrwRscZ3J224hwRMB2SmZnwIbbz\n Ozon63WiEfYrdA+QMywbv7oKO1KW0OxKjTv3bfeDyni70eL0ZRG9xhIezUEl0yMRcC1Lf+Wypxm\n k+f2bgObK8Q897WT3H6zFLSJF+L9oNaqEhemOcPumZhS3Ym5srgU+gDd7LWUACIWNE1NPdlQJFq\n 47JHZlnXY1X25MYzARQ==","X-Proofpoint-ORIG-GUID":"HoeGeDP2Q7PnjKqx4jI4OcKS71H9Iwb6","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-13_03,2026-04-13_01,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n priorityscore=1501 impostorscore=0 bulkscore=0 suspectscore=0 adultscore=0\n lowpriorityscore=0 spamscore=0 malwarescore=0 clxscore=1011 phishscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604130111","Received-SPF":"pass client-ip=148.163.158.5;\n envelope-from=harshpb@linux.ibm.com;\n helo=mx0b-001b2d01.pphosted.com","X-Spam_score_int":"-26","X-Spam_score":"-2.7","X-Spam_bar":"--","X-Spam_report":"(-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7,\n RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_NONE=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":3676693,"web_url":"http://patchwork.ozlabs.org/comment/3676693/","msgid":"<CAFEAcA8wJY6o3x1HNZrPu-=JG0Jyu_gJ+SKpcLHwHXvz+ZDGDQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-13T12:01:14","subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","submitter":{"id":5111,"url":"http://patchwork.ozlabs.org/api/people/5111/","name":"Peter Maydell","email":"peter.maydell@linaro.org"},"content":"On Mon, 13 Apr 2026 at 12:37, Harsh Prateek Bora <harshpb@linux.ibm.com> wrote:\n>\n>\n>\n> On 13/04/26 4:51 pm, Ani Sinha wrote:\n> > During refactoring of kvm_irqchip_create(), the refactored code was returning\n> > early from do_kvm_irqchip_create() function if the required capabilities were\n> > not present in KVM. This was not translating to an early return from\n> > kvm_irqchip_create() as was the case before refactoring. This is because,\n> > do_kvm_irqchip_create() did not have a means to notify the caller of the lack\n> > of kvm capabilities. Fix this by making do_notify_irqchip_create() return\n> > EOPNOTSUPP error when required capabilities are absent and then the caller\n> > can check the return code and return early.\n> >\n> > Converted some calls to exit() to assertion checks in order to make it cleaner.\n> >\n> > Fixes: 98884e0cc1 (\"accel/kvm: add changes required to support KVM VM file descriptor change\")\n> > Reported-by: Misbah Anjum N <misanjum@linux.ibm.com>\n> > Reported-by: Gautam Menghani <gautam@linux.ibm.com>\n> > Suggested-by: Fabiano Rosas <farosas@suse.de>\n> > Suggested-by: Harsh Prateek Bora <harshpb@linux.ibm.com>\n> > Signed-off-by: Ani Sinha <anisinha@redhat.com>\n> > ---\n> >   accel/kvm/kvm-all.c | 29 ++++++++++++++++-------------\n> >   1 file changed, 16 insertions(+), 13 deletions(-)\n> >\n> > changelog:\n> > v2: converted some exit() calls to assertions.\n> >\n> > diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c\n> > index 774499d34f..c78bf6a56f 100644\n> > --- a/accel/kvm/kvm-all.c\n> > +++ b/accel/kvm/kvm-all.c\n> > @@ -2575,7 +2575,7 @@ void kvm_irqchip_set_qemuirq_gsi(KVMState *s, qemu_irq irq, int gsi)\n> >       g_hash_table_insert(s->gsimap, irq, GINT_TO_POINTER(gsi));\n> >   }\n> >\n> > -static void do_kvm_irqchip_create(KVMState *s)\n> > +static int do_kvm_irqchip_create(KVMState *s)\n> >   {\n> >       int ret;\n> >       if (kvm_check_extension(s, KVM_CAP_IRQCHIP)) {\n> > @@ -2587,36 +2587,38 @@ static void do_kvm_irqchip_create(KVMState *s)\n> >               exit(1);\n> >           }\n> >       } else {\n> > -        return;\n> > +        /*\n> > +         * neither KVM_CAP_IRQCHIP nor KVM_CAP_S390_IRQCHIP capabilities are\n> > +         * present. Bail.\n> > +         */\n> > +        return -EOPNOTSUPP;\n> >       }\n> >\n> > -    if (kvm_check_extension(s, KVM_CAP_IRQFD) <= 0) {\n> > -        fprintf(stderr, \"kvm: irqfd not implemented\\n\");\n> > -        exit(1);\n> > -    }\n> > +    assert(kvm_check_extension(s, KVM_CAP_IRQFD));\n>\n> again changing behaviour ?\n> previously it was doing exit(1) on returning non-zero.\n> Now, it will assert on returning zero ?\n> May be split the patch to keep the exit -> assert changes separate ?\n\nI think for 11.0 it's probably best to do the minimum necessary\nchange to fix the logic error introduced by 98884e0cc1. For\nthat I think the v1 of this patch is OK.\n\nThere do seem to be some cleanup opportunities that we\nhave here, but we can do those in 11.1.\n\n-- PMM","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=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=V019sk8m;\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 4fvQxw4L8xz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 22:02:12 +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 1wCFz7-0000AP-9Q; Mon, 13 Apr 2026 08:01:45 -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 <peter.maydell@linaro.org>)\n id 1wCFyw-000078-0x\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 08:01:34 -0400","from mail-yx1-xb131.google.com ([2607:f8b0:4864:20::b131])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <peter.maydell@linaro.org>)\n id 1wCFys-0005lc-Fr\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 08:01:32 -0400","by mail-yx1-xb131.google.com with SMTP id\n 956f58d0204a3-651bc8f864fso712795d50.1\n for <qemu-devel@nongnu.org>; Mon, 13 Apr 2026 05:01:30 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1776081689; cv=none;\n d=google.com; s=arc-20240605;\n b=EuOw0jhLJEHHL1zyWi6atHgKtNfv3KoG69HYRx2fYNKIJb82jfub1aKEldQMFo2z8a\n GxslLYFBY8VVxp+Ucgd9Oi+KjZl6jDmvJn0js5AihVnx2i3EZpqb95T/hxpL+1jgGQ9i\n qB36t8KDbjtrJPddpaSIHLcXNKb067s9FtDn+nN7bC3MAV7hXgwnInzyp/O/qIaO+Hpw\n HEhULeSrIMU/Pr/WowR/mrURcEdmgxDk8Qzd2s9rDhNrzC+vPThDZ+bxlKPTiMtIounV\n LWdE39deRJRQv47tNUGTPTMzB2G8pQBMgHKTI7jmhaKMBJaMS25rbHCYwduC5dN1L+IP\n /GKg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=kg4fpig85e9+P7TZRqwVS3sXGmsWpc/MTnaSigaxjmI=;\n fh=4CeLI+GdcZXeyr0Pf2AGol/gPKPkqBOXdXINghNu4gQ=;\n b=Az+q1YsF4Vza0d9nyMxzkKE1o8EJ92yaIOLd1vMEsyJzsnlFhbeE88ZtEqfOaJP3Oa\n KFrQ7ucMAgnNGh9QqG1kBpZYm4ujS1+Z63lckBZ3ABvx5gIxT2xRbd10OGS5v4z/QyCt\n IYCYuIRuTxbRMAOa3/EZlt6UAvcLaHk25n6bVC395tyLWYJlzeIWX9FbeEqHht2pxcPz\n X4I+Gf232O/1E3b1ewebR2BD5zo+ek7NPPgMhxzkZ40shP+BiyhUqvLsvw0PAzH+n48B\n v25HVPC8wmLNR+apPAAuFmGur12R874HNu7h2aGj+C4ghSAt79zYfYxSnRBawHm+ApLj\n O3Pg==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1776081689; x=1776686489; darn=nongnu.org;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=kg4fpig85e9+P7TZRqwVS3sXGmsWpc/MTnaSigaxjmI=;\n b=V019sk8m/+Y1B5u/LFoHozA1MwQXOIN8rgKjOFPjoMiFPBHaTY9ndtLMQh5zKTavoC\n iTtTRe+Cjm0jRPiadeEWWWY4rg11HtjuWAedjiyrqJ4TNMhSeE4YfvcHqcFsCnPBwfLI\n H59c8h9t3IByyE4C4GGGkEqy6buOTLr0MZ1JkN4TsdW0by9H7+J24wtXRi6wWp19sIK2\n yqgunnu1nOx5iRSY5sBbLKYUujNEF5zccIdgIr/geq7OxH0bk8HdXQiNlJKCF75QpOXQ\n ILVWAPthvJh9w+/ljwn7ZftKvyjp5OFP8zauRf3lImXCbGV2pWlvTNLA8NY/7uXZ9bo3\n O4qA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776081689; x=1776686489;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=kg4fpig85e9+P7TZRqwVS3sXGmsWpc/MTnaSigaxjmI=;\n b=hku9o7kTh70iyzFhnBSjk3F7N6mp/EqULgCWf09oSeAscBLEKrPyzKk4lUDNf5gtyy\n /IfamTr3OKAz6sIBYMNm/RMJz20x373nXOvjgznL5GQXgIvhjK7zU4Tv0yDTrTnUv/Lw\n X5yLWZW/yDQL5vSIK+YnRA552hi4UZ+2Rjl5eXqebJbQT+gCfU78fFT3LiPOE2qlJKvH\n pwUt0vNIgxVdQpxoM/i21UBnAzBVoOFcQHt309XSujkCl3YJhOSsehwSa8Qhp9b+icyc\n xqShHO8oFomqOFHJN8FViO9oMk2cIzmIVSKsMigdd8B2/nsx3gv/WhfLVeqWF6GZMiW4\n RDAw==","X-Forwarded-Encrypted":"i=1;\n AFNElJ8EOws9Dx4+ybKP+VTKDFzZqFbJ6Xtc872hRM7VBGKk5uSHkqMrrJB+GsQL1BZxj/r8uyE/iR0kS3vi@nongnu.org","X-Gm-Message-State":"AOJu0YwrZqcHhlUPoMW585Qz2UB3i3CorPtUUxY6g+Zw7RkOCUGlf/FT\n Eg5Z1tJzwXjYD+0SI8kU9mED2okTaDsdCd+ioU8LOOmHhmVxqheg0ecjNpiRVtMh+AGgz4BKgoZ\n wxbTKLxOYbgQ4A2CHgN/IK+qZNzkNWkiIRirFLsJ7zQ==","X-Gm-Gg":"AeBDietvS4fEuU2O+LZekePIKkgNY7H0c9unkt5S/LuxvBjKAzDFQu13dR1x/QaMIWB\n kZx9QA0mnjZZo6uQAvocdDqTbnAbXspRwqKx/JEtunTv/onOn3jaDWIFYheSBFdncF8p3RDLwsz\n 1o5WjNgElNjFY+2gdu9tChRdvRJUSsGbl+nDiirA/iJ5xY7acsAXv0sX3DrL3DiPk7+K4lKB3P1\n 9cWaYZ0gfVm8nx8B1VMKZnq4DiM0hu7aoof+7OAHtog3YfkZsSH7y997ygR6UtCdJPoOymYINeH\n lXJtFQOUI1Mx6DGOB/Ko6sqUHUjdp4U/BGVOum+aL3woroBwvO8tSWVSaQHjhMVsx7CYS4/AeWW\n Trw==","X-Received":"by 2002:a53:c946:0:b0:64e:d95a:c89e with SMTP id\n 956f58d0204a3-65198b72cb0mr10328423d50.41.1776081688070; Mon, 13 Apr 2026\n 05:01:28 -0700 (PDT)","MIME-Version":"1.0","References":"<20260413112151.61261-1-anisinha@redhat.com>\n <0954ef7e-b04e-4542-89fb-796acc452068@linux.ibm.com>","In-Reply-To":"<0954ef7e-b04e-4542-89fb-796acc452068@linux.ibm.com>","From":"Peter Maydell <peter.maydell@linaro.org>","Date":"Mon, 13 Apr 2026 13:01:14 +0100","X-Gm-Features":"AQROBzB6Oyv06TxOpxsHTGPZS_Pb6Ys_6ks3UaFd50xNIqUWB6VUhjVDXJYsvBQ","Message-ID":"\n <CAFEAcA8wJY6o3x1HNZrPu-=JG0Jyu_gJ+SKpcLHwHXvz+ZDGDQ@mail.gmail.com>","Subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","To":"Harsh Prateek Bora <harshpb@linux.ibm.com>","Cc":"Ani Sinha <anisinha@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>,\n Misbah Anjum N <misanjum@linux.ibm.com>,\n Gautam Menghani <gautam@linux.ibm.com>,\n Fabiano Rosas <farosas@suse.de>, kvm@vger.kernel.org, qemu-devel@nongnu.org","Content-Type":"text/plain; charset=\"UTF-8\"","Received-SPF":"pass client-ip=2607:f8b0:4864:20::b131;\n envelope-from=peter.maydell@linaro.org; helo=mail-yx1-xb131.google.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_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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":3676700,"web_url":"http://patchwork.ozlabs.org/comment/3676700/","msgid":"<980AC83F-DD93-4924-8935-11CBFD624ACE@redhat.com>","list_archive_url":null,"date":"2026-04-13T12:15:05","subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","submitter":{"id":86030,"url":"http://patchwork.ozlabs.org/api/people/86030/","name":"Ani Sinha","email":"anisinha@redhat.com"},"content":"> On 13 Apr 2026, at 5:06 PM, Harsh Prateek Bora <harshpb@linux.ibm.com> wrote:\n> \n> \n> \n> On 13/04/26 4:51 pm, Ani Sinha wrote:\n>> During refactoring of kvm_irqchip_create(), the refactored code was returning\n>> early from do_kvm_irqchip_create() function if the required capabilities were\n>> not present in KVM. This was not translating to an early return from\n>> kvm_irqchip_create() as was the case before refactoring. This is because,\n>> do_kvm_irqchip_create() did not have a means to notify the caller of the lack\n>> of kvm capabilities. Fix this by making do_notify_irqchip_create() return\n>> EOPNOTSUPP error when required capabilities are absent and then the caller\n>> can check the return code and return early.\n>> Converted some calls to exit() to assertion checks in order to make it cleaner.\n>> Fixes: 98884e0cc1 (\"accel/kvm: add changes required to support KVM VM file descriptor change\")\n>> Reported-by: Misbah Anjum N <misanjum@linux.ibm.com>\n>> Reported-by: Gautam Menghani <gautam@linux.ibm.com>\n>> Suggested-by: Fabiano Rosas <farosas@suse.de>\n>> Suggested-by: Harsh Prateek Bora <harshpb@linux.ibm.com>\n>> Signed-off-by: Ani Sinha <anisinha@redhat.com>\n>> ---\n>>  accel/kvm/kvm-all.c | 29 ++++++++++++++++-------------\n>>  1 file changed, 16 insertions(+), 13 deletions(-)\n>> changelog:\n>> v2: converted some exit() calls to assertions.\n>> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c\n>> index 774499d34f..c78bf6a56f 100644\n>> --- a/accel/kvm/kvm-all.c\n>> +++ b/accel/kvm/kvm-all.c\n>> @@ -2575,7 +2575,7 @@ void kvm_irqchip_set_qemuirq_gsi(KVMState *s, qemu_irq irq, int gsi)\n>>      g_hash_table_insert(s->gsimap, irq, GINT_TO_POINTER(gsi));\n>>  }\n>>  -static void do_kvm_irqchip_create(KVMState *s)\n>> +static int do_kvm_irqchip_create(KVMState *s)\n>>  {\n>>      int ret;\n>>      if (kvm_check_extension(s, KVM_CAP_IRQCHIP)) {\n>> @@ -2587,36 +2587,38 @@ static void do_kvm_irqchip_create(KVMState *s)\n>>              exit(1);\n>>          }\n>>      } else {\n>> -        return;\n>> +        /*\n>> +         * neither KVM_CAP_IRQCHIP nor KVM_CAP_S390_IRQCHIP capabilities are\n>> +         * present. Bail.\n>> +         */\n>> +        return -EOPNOTSUPP;\n>>      }\n>>  -    if (kvm_check_extension(s, KVM_CAP_IRQFD) <= 0) {\n>> -        fprintf(stderr, \"kvm: irqfd not implemented\\n\");\n>> -        exit(1);\n>> -    }\n>> +    assert(kvm_check_extension(s, KVM_CAP_IRQFD));\n> \n> again changing behaviour ?\n> previously it was doing exit(1) on returning non-zero.\n\nNon-zero is the success case. It was doing exit() for returning <=0  case\n\n> if (kvm_check_extension(s, KVM_CAP_IRQFD) <= 0)\n\n\n> Now, it will assert on returning zero ?\n> May be split the patch to keep the exit -> assert changes separate ?\n> \n>>        /* First probe and see if there's a arch-specific hook to create the\n>>       * in-kernel irqchip for us */\n>>      ret = kvm_arch_irqchip_create(s);\n>>      if (ret == 0) {\n>> -        if (s->kernel_irqchip_split == ON_OFF_AUTO_ON) {\n>> -            error_report(\"Split IRQ chip mode not supported.\");\n>> -            exit(1);\n>> -        } else {\n>> -            ret = kvm_vm_ioctl(s, KVM_CREATE_IRQCHIP);\n>> -        }\n>> +        /* assert that split IRQ chip mode is supported. */\n>> +        assert(s->kernel_irqchip_split != ON_OFF_AUTO_ON);\n>> +        ret = kvm_vm_ioctl(s, KVM_CREATE_IRQCHIP);\n>>      }\n>>      if (ret < 0) {\n>>          fprintf(stderr, \"Create kernel irqchip failed: %s\\n\", strerror(-ret));\n>>          exit(1);\n>>      }\n>> +\n>> +    return 0;\n>>  }\n>>    static void kvm_irqchip_create(KVMState *s)\n>>  {\n>>      assert(s->kernel_irqchip_split != ON_OFF_AUTO_AUTO);\n>>  -    do_kvm_irqchip_create(s);\n>> +    if (do_kvm_irqchip_create(s) < 0) {\n>> +        return;\n>> +    }\n>>      kvm_kernel_irqchip = true;\n>>      /* If we have an in-kernel IRQ chip then we must have asynchronous\n>>       * interrupt delivery (though the reverse is not necessarily true)\n>> @@ -2835,6 +2837,7 @@ static int kvm_reset_vmfd(MachineState *ms)\n>>      }\n>>        if (s->kernel_irqchip_allowed) {\n>> +        /* ignore return from this function */\n>>          do_kvm_irqchip_create(s);\n>>      }\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 (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=i9I37Fxo;\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=MVxQV6nP;\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 4fvRFq5VpYz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 22:15:59 +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 1wCGCV-0002Uz-5z; Mon, 13 Apr 2026 08:15: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 <anisinha@redhat.com>)\n id 1wCGCN-0002T9-LS\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 08:15:27 -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 <anisinha@redhat.com>)\n id 1wCGCL-0007eT-PR\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 08:15:27 -0400","from mail-pl1-f199.google.com (mail-pl1-f199.google.com\n [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-164-QanoLqqxMC6IjVtP-YmR5g-1; Mon, 13 Apr 2026 08:15:22 -0400","by mail-pl1-f199.google.com with SMTP id\n d9443c01a7336-2b458add85aso12411555ad.2\n for <qemu-devel@nongnu.org>; Mon, 13 Apr 2026 05:15:22 -0700 (PDT)","from smtpclient.apple ([122.163.114.34])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b2d4db198asm115235855ad.3.2026.04.13.05.15.17\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Mon, 13 Apr 2026 05:15:20 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776082524;\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=98IpbZc1i4m/jkYav02DEme4PH34rmZew/TvIsBqAN0=;\n b=i9I37FxoOeBBtHwqQfzLhSQgFpuAFkG9eLoisO4p/9ILVZA9QDdJcAsU2S8P851+qtXqjB\n acMXuoRhugpZAMla8q0iF6Cyj8CEqoLTqbqt1UnjySMQKMJsHLqNeazsg8kXN2yfWJkKYS\n gGUnh4c+l0i778mgmpfYo1+evsqsJuQ=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1776082522; x=1776687322; darn=nongnu.org;\n h=to:references:message-id:content-transfer-encoding:cc:date\n :in-reply-to:from:subject:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=98IpbZc1i4m/jkYav02DEme4PH34rmZew/TvIsBqAN0=;\n b=MVxQV6nPkguTSAAuMtyTNa3ScnB09NTmjr4NnGCt7KsydcOafiz5IMF/AztP2kyMtS\n OkKG8G4btOSrWntQ60ulM04XOP2ofKPb8gKl7kTG+V4FCsLi4MSCEuf+wWwP/q7Ty0bI\n pCSYcuuA/b/cFQ+6otrKsanFywBfvtYjTcvBkB8j8hJXTOH3FnqHuJrYkz1proPXYUM3\n V0ZLdHkiNviBSLtkjGooxpCkBmPkWQcqvg5jZZ8oYPzRp08FDjifVfdrbf5OjesSH8Zj\n CuQHVeuvxFHFr1kxXCsS//huUByi25zqJ3kXtiNjyFhaF0Ar0U6tsw1AAZfPFQCrDUv2\n LBCg=="],"X-MC-Unique":"QanoLqqxMC6IjVtP-YmR5g-1","X-Mimecast-MFC-AGG-ID":"QanoLqqxMC6IjVtP-YmR5g_1776082522","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776082522; x=1776687322;\n h=to:references:message-id:content-transfer-encoding:cc:date\n :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state\n :from:to:cc:subject:date:message-id:reply-to;\n bh=98IpbZc1i4m/jkYav02DEme4PH34rmZew/TvIsBqAN0=;\n b=DECXhYefWNNRslyZV6cDrHNTlvrx0u9GP4Hs6q7JGpFyFA0prgATS6V8PJUD04YXoD\n BJekhoWJ3uRg7DJvUH2SKBgnvb/vbrFoNowDqYW5xO0Wn4wIHaR4R3l9QAHxseWBlzmt\n spb0jX9qXbpdTXvL/778LbkYM6IQh751y/3hBu/3+7swC9mZs0rH0fxdjgBMRwErhgoO\n m+yOgbd30NvKI6l5ApotJNTgb1fAz41Rmfa+7s6xI9VZdHmMwXX4ChYv5xZRG48Feyds\n T/EBRIIoVFc+LfjqNhFSt+F8wOrR0DwrRK8+cox39+f7jvDAq0Iy76c99DU3mJUCJp1E\n GIeg==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+CAvUkTADuFfnI7WQMtIYfTiI9bovIBSPscss3x+MlG/T3gXg9AXBd39aG7Leo8vhchJauX7C0dmrL@nongnu.org","X-Gm-Message-State":"AOJu0Yz+1YgQ7qnDZvtFMz9qOMJ75yk4PDYSuUaWc2dUmt+IdgQdeQtO\n 6wSziWCzuAUAikyndMtEa6TEprv7iHxq+SyCWMqQ8tT/ArAst0BGdC8U6aBNB6gQyUiFy0WGjPX\n m8qn/fU5gvnJI7bYGQjQS+cshpw0CpSANkZeHlD3w524bga+d4TGPFamG","X-Gm-Gg":"AeBDiesf7jWNAVCdY9LNty0T6bYWZNx43gKip4Qb55Iquy5lBqo/uKEku1MQ+UZ7P53\n YU58DrNothgle80+oH3BweT3YRCHdXla1IGh3z5+78M4QiHX07jwPYBD/M+4LsMSP33/0lah1RF\n Xihf5ffPONp8IjGDPfigSFndLPKlOzmbZOe9wj7X09pH8EL0tDwW6Z40SFx/3fobvDv10gbxW+U\n lln98naqNqS61azLnuZ+qJZY6deJis7uj/KE5DjDjUxEM53zy0GU88a5wypvDRLscUVkSO3XGYX\n 1qolSs0Q0fO0nR8rMIhXTNOh1YNl0fYN1JxtHagmz9weAwF/uK/8xx1KNbv4vt/KwV+ppz/LAac\n uORFZR98Tmu6SY8Dlda2BB59ArGOjIoe/Y+aJHLhjCguR2RLQj6lVkDa+HZU5SSfNqBLrG3iROl\n 0=","X-Received":["by 2002:a17:903:37c6:b0:2b2:49a7:a5bc with SMTP id\n d9443c01a7336-2b2d5a60603mr132540235ad.39.1776082521415;\n Mon, 13 Apr 2026 05:15:21 -0700 (PDT)","by 2002:a17:903:37c6:b0:2b2:49a7:a5bc with SMTP id\n d9443c01a7336-2b2d5a60603mr132539505ad.39.1776082520751;\n Mon, 13 Apr 2026 05:15:20 -0700 (PDT)"],"Content-Type":"text/plain;\n\tcharset=utf-8","Mime-Version":"1.0 (Mac OS X Mail 16.0 \\(3864.500.181\\))","Subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","From":"Ani Sinha <anisinha@redhat.com>","In-Reply-To":"<0954ef7e-b04e-4542-89fb-796acc452068@linux.ibm.com>","Date":"Mon, 13 Apr 2026 17:45:05 +0530","Cc":"Paolo Bonzini <pbonzini@redhat.com>,\n Peter Maydell <peter.maydell@linaro.org>,\n Misbah Anjum N <misanjum@linux.ibm.com>,\n Gautam Menghani <gautam@linux.ibm.com>, Fabiano Rosas <farosas@suse.de>,\n kvm@vger.kernel.org, qemu-devel <qemu-devel@nongnu.org>","Content-Transfer-Encoding":"quoted-printable","Message-Id":"<980AC83F-DD93-4924-8935-11CBFD624ACE@redhat.com>","References":"<20260413112151.61261-1-anisinha@redhat.com>\n <0954ef7e-b04e-4542-89fb-796acc452068@linux.ibm.com>","To":"Harsh Prateek Bora <harshpb@linux.ibm.com>","X-Mailer":"Apple Mail (2.3864.500.181)","Received-SPF":"pass client-ip=170.10.133.124;\n envelope-from=anisinha@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":3676701,"web_url":"http://patchwork.ozlabs.org/comment/3676701/","msgid":"<212B6DEC-AD6C-4727-8F43-10EFB1836A68@redhat.com>","list_archive_url":null,"date":"2026-04-13T12:17:43","subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","submitter":{"id":86030,"url":"http://patchwork.ozlabs.org/api/people/86030/","name":"Ani Sinha","email":"anisinha@redhat.com"},"content":"> On 13 Apr 2026, at 5:31 PM, Peter Maydell <peter.maydell@linaro.org> wrote:\n> \n> On Mon, 13 Apr 2026 at 12:37, Harsh Prateek Bora <harshpb@linux.ibm.com> wrote:\n>> \n>> \n>> \n>> On 13/04/26 4:51 pm, Ani Sinha wrote:\n>>> During refactoring of kvm_irqchip_create(), the refactored code was returning\n>>> early from do_kvm_irqchip_create() function if the required capabilities were\n>>> not present in KVM. This was not translating to an early return from\n>>> kvm_irqchip_create() as was the case before refactoring. This is because,\n>>> do_kvm_irqchip_create() did not have a means to notify the caller of the lack\n>>> of kvm capabilities. Fix this by making do_notify_irqchip_create() return\n>>> EOPNOTSUPP error when required capabilities are absent and then the caller\n>>> can check the return code and return early.\n>>> \n>>> Converted some calls to exit() to assertion checks in order to make it cleaner.\n>>> \n>>> Fixes: 98884e0cc1 (\"accel/kvm: add changes required to support KVM VM file descriptor change\")\n>>> Reported-by: Misbah Anjum N <misanjum@linux.ibm.com>\n>>> Reported-by: Gautam Menghani <gautam@linux.ibm.com>\n>>> Suggested-by: Fabiano Rosas <farosas@suse.de>\n>>> Suggested-by: Harsh Prateek Bora <harshpb@linux.ibm.com>\n>>> Signed-off-by: Ani Sinha <anisinha@redhat.com>\n>>> ---\n>>>  accel/kvm/kvm-all.c | 29 ++++++++++++++++-------------\n>>>  1 file changed, 16 insertions(+), 13 deletions(-)\n>>> \n>>> changelog:\n>>> v2: converted some exit() calls to assertions.\n>>> \n>>> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c\n>>> index 774499d34f..c78bf6a56f 100644\n>>> --- a/accel/kvm/kvm-all.c\n>>> +++ b/accel/kvm/kvm-all.c\n>>> @@ -2575,7 +2575,7 @@ void kvm_irqchip_set_qemuirq_gsi(KVMState *s, qemu_irq irq, int gsi)\n>>>      g_hash_table_insert(s->gsimap, irq, GINT_TO_POINTER(gsi));\n>>>  }\n>>> \n>>> -static void do_kvm_irqchip_create(KVMState *s)\n>>> +static int do_kvm_irqchip_create(KVMState *s)\n>>>  {\n>>>      int ret;\n>>>      if (kvm_check_extension(s, KVM_CAP_IRQCHIP)) {\n>>> @@ -2587,36 +2587,38 @@ static void do_kvm_irqchip_create(KVMState *s)\n>>>              exit(1);\n>>>          }\n>>>      } else {\n>>> -        return;\n>>> +        /*\n>>> +         * neither KVM_CAP_IRQCHIP nor KVM_CAP_S390_IRQCHIP capabilities are\n>>> +         * present. Bail.\n>>> +         */\n>>> +        return -EOPNOTSUPP;\n>>>      }\n>>> \n>>> -    if (kvm_check_extension(s, KVM_CAP_IRQFD) <= 0) {\n>>> -        fprintf(stderr, \"kvm: irqfd not implemented\\n\");\n>>> -        exit(1);\n>>> -    }\n>>> +    assert(kvm_check_extension(s, KVM_CAP_IRQFD));\n>> \n>> again changing behaviour ?\n>> previously it was doing exit(1) on returning non-zero.\n>> Now, it will assert on returning zero ?\n>> May be split the patch to keep the exit -> assert changes separate ?\n> \n> I think for 11.0 it's probably best to do the minimum necessary\n> change to fix the logic error introduced by 98884e0cc1. For\n> that I think the v1 of this patch is OK.\n\nAgreed.\n\n> \n> There do seem to be some cleanup opportunities that we\n> have here, but we can do those in 11.1.\n\ncool.\n\n> \n> -- PMM","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=Z7QFQZ6a;\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=q/sQ3tiA;\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 4fvRJj6nl4z1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 22:18:29 +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 1wCGEw-0003Vv-Jn; Mon, 13 Apr 2026 08:18:06 -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 <anisinha@redhat.com>)\n id 1wCGEv-0003VZ-4N\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 08:18:05 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <anisinha@redhat.com>)\n id 1wCGEt-00083D-CE\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 08:18:04 -0400","from mail-pl1-f197.google.com (mail-pl1-f197.google.com\n [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-199-BieYjCDENUmFBdvywba5kg-1; Mon, 13 Apr 2026 08:18:01 -0400","by mail-pl1-f197.google.com with SMTP id\n d9443c01a7336-2b258636d16so43461655ad.2\n for <qemu-devel@nongnu.org>; Mon, 13 Apr 2026 05:18:00 -0700 (PDT)","from smtpclient.apple ([122.163.114.34])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b45cbf11b1sm37595655ad.17.2026.04.13.05.17.55\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Mon, 13 Apr 2026 05:17:58 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776082682;\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=LhKCTcy5AyOM+riI26AKG81BxmHLAlWGjC1qrqkMIsk=;\n b=Z7QFQZ6aY9O0PNwAOj2YPiEp27Iap+mbLxlJIqnGLotAw7IgXemuRoCMrtJT1VVJZcvqzE\n 9v3Dc/FO0jida2kj2kx7NsG2Hp4oqSzWHduSLKy+KPZcwZy0SnM8ybwyE9vLTJEtpqOu1M\n o011uFz3bHFXJpZ97eLoQC44zcMOSIw=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1776082680; x=1776687480; darn=nongnu.org;\n h=to:references:message-id:content-transfer-encoding:cc:date\n :in-reply-to:from:subject:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=LhKCTcy5AyOM+riI26AKG81BxmHLAlWGjC1qrqkMIsk=;\n b=q/sQ3tiA2HkvZa3LP5jKETvtzl/lMZp7xV6F8IjYYH7mQgGquuPeR8y5UuETXOSRX/\n +OuRbXYlj1zuHhtFuo04V28A+psrtJZFHVcYwUmyXdOb9I9KDIeDeWlFqy7/Ixh+cWDG\n iDBEsC2110YAQ25Tp7QzXp6JrtCAsEbqZftiyKANkcrf/blNluCKkf/aZY6dbyTPXpf6\n 2FbsIXkbNgU1J4Gv6pxawOhc+N14E7tJ5eRuUvX7wFSdSg9rlowYgd69DXJA8EuPGwDK\n EdJjkWbgjDueqMbkQQ6wzVdaOmk+H8LhmNnO5mDf5m6rQiQcKjCEXul5aPsR28HobZ2P\n GYTg=="],"X-MC-Unique":"BieYjCDENUmFBdvywba5kg-1","X-Mimecast-MFC-AGG-ID":"BieYjCDENUmFBdvywba5kg_1776082680","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776082680; x=1776687480;\n h=to:references:message-id:content-transfer-encoding:cc:date\n :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state\n :from:to:cc:subject:date:message-id:reply-to;\n bh=LhKCTcy5AyOM+riI26AKG81BxmHLAlWGjC1qrqkMIsk=;\n b=tRz4wIH/bH+CdkcgYptuk+rbfgiTaUFXcdYBa+L2M8vnfcjyHsp9z6SiA/caRR/5FF\n vJ36Sth0SRgJH7VE3+dRco54wK7ZdYYpw1MvExo5o2ruSMsGQhpJdnYiENcaHLtITAze\n dAin0+Wyx88if4+xj7RmLrRgVBON5vcBpwYkdhKbPi/sYsqZIuNrtSysOgyao0UrHaz4\n vSHczMPTdzS/IhPsV+OxA01nXzaPIgQFZIQ7fLQ1WjtfD2tcyNaCme01l0zOUviry8e5\n uP4XY1BKXYA3j1/7IcH5Z7PYnTv0y6qNXiJw0LLianjlKMkxlT9P7mTuk/M3Sm/jHj9K\n 968A==","X-Forwarded-Encrypted":"i=1;\n AFNElJ9uAsgcrBScaYMUxFylpv0Mg7hznCoy9o3jnvN4fSoV0ZjboraSCFO2XtIv4Sw0yvrmheDoKs1qTUbz@nongnu.org","X-Gm-Message-State":"AOJu0YxHJOwkYMocJwI6Irqg470hCd4Z8KcoiSRmjVdfvblscSO2tgmG\n Whbc5GABGm/FeYR3g0dQPxkN5N6nDnDC9YDV+VRYP9g/xTlSKN+JPuwrkK4c9IVNA+yWpr63tpZ\n dK7GVsffZn/nGHJT3FxqA6ZGOGLqH7OzN7R4wHKCVu/I4IewRjA3swX24","X-Gm-Gg":"AeBDiet2s7a6iePJgsZWgew0Ijs2Xc3KxG09b1Nc6GEzGbRL4WXyxwJhaqpvrN3AcBT\n blaqSWS/YqQdcVY4iVF9wtBN2C8YC/xFNqWm2OfQ+qzLjd8eBXxfWi654LksDhCjSVZMuj1OExG\n 0vYLxd086uRaVO29L/r0RSLlJYj9U49ENrBPhEE0sWWdILc7WuY6MG8/ahOonxnsaEAYX8NwQRP\n Jf5lVmmUmtmkqVeu9mx0ewz2jkYwMw9rR5tDEQ8BQklpHXaOKWEfNPWmYZ7xQjvNAW4mdvWrLlt\n 1ciPHNsZqJtrfD5wk3sy5Od611RqfDkEcvpWh2vmM3B11vTiNnjc2VTh4Wga/MQ+Q0ksArhmmmm\n E54jiDrGb2dz9kSVpS9otB4qWwYzeYxZOQUttuk3OXyp9OXRnXlXqWEZD0K09opGvvPvm25cB9K\n E=","X-Received":["by 2002:a17:903:144e:b0:2b2:58c7:2ce1 with SMTP id\n d9443c01a7336-2b2d5a7773emr130760285ad.36.1776082679515;\n Mon, 13 Apr 2026 05:17:59 -0700 (PDT)","by 2002:a17:903:144e:b0:2b2:58c7:2ce1 with SMTP id\n d9443c01a7336-2b2d5a7773emr130759795ad.36.1776082678793;\n Mon, 13 Apr 2026 05:17:58 -0700 (PDT)"],"Content-Type":"text/plain;\n\tcharset=utf-8","Mime-Version":"1.0 (Mac OS X Mail 16.0 \\(3864.500.181\\))","Subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","From":"Ani Sinha <anisinha@redhat.com>","In-Reply-To":"\n <CAFEAcA8wJY6o3x1HNZrPu-=JG0Jyu_gJ+SKpcLHwHXvz+ZDGDQ@mail.gmail.com>","Date":"Mon, 13 Apr 2026 17:47:43 +0530","Cc":"Harsh Prateek Bora <harshpb@linux.ibm.com>,\n Paolo Bonzini <pbonzini@redhat.com>,\n Misbah Anjum N <misanjum@linux.ibm.com>,\n Gautam Menghani <gautam@linux.ibm.com>, Fabiano Rosas <farosas@suse.de>,\n kvm@vger.kernel.org, qemu-devel <qemu-devel@nongnu.org>","Content-Transfer-Encoding":"quoted-printable","Message-Id":"<212B6DEC-AD6C-4727-8F43-10EFB1836A68@redhat.com>","References":"<20260413112151.61261-1-anisinha@redhat.com>\n <0954ef7e-b04e-4542-89fb-796acc452068@linux.ibm.com>\n <CAFEAcA8wJY6o3x1HNZrPu-=JG0Jyu_gJ+SKpcLHwHXvz+ZDGDQ@mail.gmail.com>","To":"Peter Maydell <peter.maydell@linaro.org>","X-Mailer":"Apple Mail (2.3864.500.181)","Received-SPF":"pass client-ip=170.10.129.124;\n envelope-from=anisinha@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_H4=0.001, RCVD_IN_MSPIKE_WL=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":3676711,"web_url":"http://patchwork.ozlabs.org/comment/3676711/","msgid":"<F0A82F77-6F25-4193-88D0-01B24B1459AE@redhat.com>","list_archive_url":null,"date":"2026-04-13T12:27:29","subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","submitter":{"id":86030,"url":"http://patchwork.ozlabs.org/api/people/86030/","name":"Ani Sinha","email":"anisinha@redhat.com"},"content":"> On 13 Apr 2026, at 5:45 PM, Ani Sinha <anisinha@redhat.com> wrote:\n> \n> \n> \n>> On 13 Apr 2026, at 5:06 PM, Harsh Prateek Bora <harshpb@linux.ibm.com> wrote:\n>> \n>> \n>> \n>> On 13/04/26 4:51 pm, Ani Sinha wrote:\n>>> During refactoring of kvm_irqchip_create(), the refactored code was returning\n>>> early from do_kvm_irqchip_create() function if the required capabilities were\n>>> not present in KVM. This was not translating to an early return from\n>>> kvm_irqchip_create() as was the case before refactoring. This is because,\n>>> do_kvm_irqchip_create() did not have a means to notify the caller of the lack\n>>> of kvm capabilities. Fix this by making do_notify_irqchip_create() return\n>>> EOPNOTSUPP error when required capabilities are absent and then the caller\n>>> can check the return code and return early.\n>>> Converted some calls to exit() to assertion checks in order to make it cleaner.\n>>> Fixes: 98884e0cc1 (\"accel/kvm: add changes required to support KVM VM file descriptor change\")\n>>> Reported-by: Misbah Anjum N <misanjum@linux.ibm.com>\n>>> Reported-by: Gautam Menghani <gautam@linux.ibm.com>\n>>> Suggested-by: Fabiano Rosas <farosas@suse.de>\n>>> Suggested-by: Harsh Prateek Bora <harshpb@linux.ibm.com>\n>>> Signed-off-by: Ani Sinha <anisinha@redhat.com>\n>>> ---\n>>> accel/kvm/kvm-all.c | 29 ++++++++++++++++-------------\n>>> 1 file changed, 16 insertions(+), 13 deletions(-)\n>>> changelog:\n>>> v2: converted some exit() calls to assertions.\n>>> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c\n>>> index 774499d34f..c78bf6a56f 100644\n>>> --- a/accel/kvm/kvm-all.c\n>>> +++ b/accel/kvm/kvm-all.c\n>>> @@ -2575,7 +2575,7 @@ void kvm_irqchip_set_qemuirq_gsi(KVMState *s, qemu_irq irq, int gsi)\n>>>     g_hash_table_insert(s->gsimap, irq, GINT_TO_POINTER(gsi));\n>>> }\n>>> -static void do_kvm_irqchip_create(KVMState *s)\n>>> +static int do_kvm_irqchip_create(KVMState *s)\n>>> {\n>>>     int ret;\n>>>     if (kvm_check_extension(s, KVM_CAP_IRQCHIP)) {\n>>> @@ -2587,36 +2587,38 @@ static void do_kvm_irqchip_create(KVMState *s)\n>>>             exit(1);\n>>>         }\n>>>     } else {\n>>> -        return;\n>>> +        /*\n>>> +         * neither KVM_CAP_IRQCHIP nor KVM_CAP_S390_IRQCHIP capabilities are\n>>> +         * present. Bail.\n>>> +         */\n>>> +        return -EOPNOTSUPP;\n>>>     }\n>>> -    if (kvm_check_extension(s, KVM_CAP_IRQFD) <= 0) {\n>>> -        fprintf(stderr, \"kvm: irqfd not implemented\\n\");\n>>> -        exit(1);\n>>> -    }\n>>> +    assert(kvm_check_extension(s, KVM_CAP_IRQFD));\n>> \n>> again changing behaviour ?\n>> previously it was doing exit(1) on returning non-zero.\n> \n> Non-zero is the success case. It was doing exit() for returning <=0  case\n> \n>> if (kvm_check_extension(s, KVM_CAP_IRQFD) <= 0)\n\nActually maybe I should make this clearer\n\nint kvm_check_extension(KVMState *s, unsaigned int extension)                                                                         \n{                                                                                                                                    \n    int ret;                                                                                                                         \n                                                                                                                                     \n    ret = kvm_ioctl(s, KVM_CHECK_EXTENSION, extension);                                                                              \n    if (ret < 0) {                                                                                                                   \n        ret = 0;                                                                                                                     \n    }                                                                                                                                \n                                                                                                                                     \n    return ret;                                                                                                                      \n}                       \n\nSo non-zero positive value is success. 0 is unsupported. Also see https://docs.kernel.org/virt/kvm/api.html#kvm-check-extension\nSo asserting on non-zero is fine.\n\n> \n> \n>> Now, it will assert on returning zero ?\n>> May be split the patch to keep the exit -> assert changes separate ?\n>> \n>>>       /* First probe and see if there's a arch-specific hook to create the\n>>>      * in-kernel irqchip for us */\n>>>     ret = kvm_arch_irqchip_create(s);\n>>>     if (ret == 0) {\n>>> -        if (s->kernel_irqchip_split == ON_OFF_AUTO_ON) {\n>>> -            error_report(\"Split IRQ chip mode not supported.\");\n>>> -            exit(1);\n>>> -        } else {\n>>> -            ret = kvm_vm_ioctl(s, KVM_CREATE_IRQCHIP);\n>>> -        }\n>>> +        /* assert that split IRQ chip mode is supported. */\n>>> +        assert(s->kernel_irqchip_split != ON_OFF_AUTO_ON);\n>>> +        ret = kvm_vm_ioctl(s, KVM_CREATE_IRQCHIP);\n>>>     }\n>>>     if (ret < 0) {\n>>>         fprintf(stderr, \"Create kernel irqchip failed: %s\\n\", strerror(-ret));\n>>>         exit(1);\n>>>     }\n>>> +\n>>> +    return 0;\n>>> }\n>>>   static void kvm_irqchip_create(KVMState *s)\n>>> {\n>>>     assert(s->kernel_irqchip_split != ON_OFF_AUTO_AUTO);\n>>> -    do_kvm_irqchip_create(s);\n>>> +    if (do_kvm_irqchip_create(s) < 0) {\n>>> +        return;\n>>> +    }\n>>>     kvm_kernel_irqchip = true;\n>>>     /* If we have an in-kernel IRQ chip then we must have asynchronous\n>>>      * interrupt delivery (though the reverse is not necessarily true)\n>>> @@ -2835,6 +2837,7 @@ static int kvm_reset_vmfd(MachineState *ms)\n>>>     }\n>>>       if (s->kernel_irqchip_allowed) {\n>>> +        /* ignore return from this function */\n>>>         do_kvm_irqchip_create(s);\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=XMa3l78b;\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=fOc1OBaj;\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 4fvRXY4sJQz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 22:28:44 +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 1wCGOT-0005W9-7A; Mon, 13 Apr 2026 08:27:57 -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 <anisinha@redhat.com>)\n id 1wCGOR-0005Vi-JK\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 08:27:55 -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 <anisinha@redhat.com>)\n id 1wCGON-0002Fb-NZ\n for qemu-devel@nongnu.org; Mon, 13 Apr 2026 08:27:55 -0400","from mail-pj1-f72.google.com (mail-pj1-f72.google.com\n [209.85.216.72]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-542-zsgMbkZoOQmi5nKgxtIfYQ-1; Mon, 13 Apr 2026 08:27:46 -0400","by mail-pj1-f72.google.com with SMTP id\n 98e67ed59e1d1-3568090851aso9639696a91.1\n for <qemu-devel@nongnu.org>; Mon, 13 Apr 2026 05:27:46 -0700 (PDT)","from smtpclient.apple ([122.163.114.34])\n by smtp.gmail.com with ESMTPSA id\n 41be03b00d2f7-c79219c618asm10117963a12.18.2026.04.13.05.27.41\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Mon, 13 Apr 2026 05:27:44 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776083269;\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=bRKspQPq8OXUc15a9NtnUtQGzjqGHbd9RQrfqxefTaQ=;\n b=XMa3l78bUIqUS7UKtD3BSSaO0DE7QG2A0BoXpfAzaUfJef6anzmvxfo+QLiDXhbuFwWXC8\n nwr5uvTRB8I5+RaSl1sjwDZ3JdodCwtbG6Gx6cygDQpfw26FMKS7pCZE4vMiCXTzhmZdqN\n 4mm2OS1AnQCkLASyj8Y6sbCrtSyYjQ4=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1776083265; x=1776688065; darn=nongnu.org;\n h=to:references:message-id:content-transfer-encoding:cc:date\n :in-reply-to:from:subject:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=bRKspQPq8OXUc15a9NtnUtQGzjqGHbd9RQrfqxefTaQ=;\n b=fOc1OBaja/zLsW4/HWumzRG8Wjd/9OdhVdU2AqBiFOD9fdodpUJGEa1TzyF6niHXlM\n pyWppJrki7QmYRIAvCFTf/s/0YYfHCH6ovMw7jSZANVJaLxZfDkc2+ASUa4r9RU0DhEC\n F+6qv6DBmG0IqxfoSWVo+wDhqFR/pe6IjB5/t7LwxzBgB7gDwBvcdkO3xDe38h/zjKWS\n 171aSl/xeQ7IaWdOvdmPXwE8uANTSiRV0kD9uGHFgCe56jG3F+82zNAckAgN2xV27fNh\n cNeqF2AS16WNxwy2Wyszs+B5kXfVAdQlsyfabMLnJTVTBlL1oO8Gw1WzdQKK4zwfSchZ\n DClQ=="],"X-MC-Unique":"zsgMbkZoOQmi5nKgxtIfYQ-1","X-Mimecast-MFC-AGG-ID":"zsgMbkZoOQmi5nKgxtIfYQ_1776083265","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776083265; x=1776688065;\n h=to:references:message-id:content-transfer-encoding:cc:date\n :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state\n :from:to:cc:subject:date:message-id:reply-to;\n bh=bRKspQPq8OXUc15a9NtnUtQGzjqGHbd9RQrfqxefTaQ=;\n b=QPjzOgie0Fn3rq+/zajvw8nVurXu/nSY5xgRkx1tFq9FNVstriA/+eXih5Dgt1pE2i\n qtWAbTXJZH2WAGCvVl1xy6W0zFF0gkdERPF0QKoc8UQKlON3ake/wU4nwTiEVAYnKWXp\n 7YHnqTpXsTjR3x98I2dZot+bXpzCRkMXoXQaLTBwuRfY5p6Z9WHTV5EY/PerdOTJKXBN\n 68f2eCaK5U9RoGiwTLNdzvHJ7da1qPWkx4pQ1QDm7h/6bohm3z6ZdLwxYe9G+P4LrgMU\n 2O89k+93tDPnWHOskdXLqBcPhEspcqxuMTGbwbjwTY89PDuB9z/tPPZSNUvJuX1lxL0S\n Z3AA==","X-Forwarded-Encrypted":"i=1;\n AFNElJ87sgFfzF5XJ8XJcexMy3ZMevmT9KYk/snv7v50rT7bx94gsifOrW8sGoGLthrMsjtTC/DV1FF6ghgx@nongnu.org","X-Gm-Message-State":"AOJu0YwTu9jY3yC3E275S0ujfyGGZJ3eFXqwox9SalRXB4vt1c4m7rs+\n D5/CVigqKNhAvL9RnekEwlnnyDnRqlVIFXjOeqh96ZY4f2JgsVEH2AkydRBPuCG9YLWkXy0kkWs\n 2+B2HjRzJJhZgvAsyWAVwWMHMoDqJ3nM7Ff+iaLGiLZ8qxi0C/DvWxosr","X-Gm-Gg":"AeBDievCwbWjdwB7ocnm9Z9aziKSGAzlAUv9C9A2r9TayX5WjF5hb0LO6QkEfu2n2vx\n se8Nfnw6mIeW14qZV35YcsbMpCDiXCPMWC+4H5O++zERJRVnX+mLOiw9lT1uwsLDBBWMAbyMp/v\n BFN49Tm2Hq61Q+WGsEG0u8ibqyWHWZUMrjL1yEENKSrcjZl36DWAZPLH6Z++OTOocNTOtVfpd97\n uUHmz7rQfuAE9+bn29iGIB6jQrHFDuu6u/XRXjh2U+P/2KaaCPiSD77H8lKPf94yF1q2VbBQlpt\n xr4ouyLVQiAt+Y9j2xpkeKmBdfzyUNlAe7V9X2gszrkEzlOBrujSv0U9zzgfwd/gizevX+WagVl\n lDNTcmvBrhHSaLBcT+oZiJ33cBZB4km32MClbfFB5lFkPkzZfR8VRSSn6ArL4ugu7IfZMm0m0QY\n o=","X-Received":["by 2002:a05:6a20:2455:b0:394:56ae:8a7f with SMTP id\n adf61e73a8af0-39fe40027cemr14040396637.42.1776083264990;\n Mon, 13 Apr 2026 05:27:44 -0700 (PDT)","by 2002:a05:6a20:2455:b0:394:56ae:8a7f with SMTP id\n adf61e73a8af0-39fe40027cemr14040359637.42.1776083264478;\n Mon, 13 Apr 2026 05:27:44 -0700 (PDT)"],"Content-Type":"text/plain;\n\tcharset=utf-8","Mime-Version":"1.0 (Mac OS X Mail 16.0 \\(3864.500.181\\))","Subject":"Re: [PATCH V2 for-11.0] accel/kvm: return early from\n kvm_irqchip_create if kvm does not support irqchip","From":"Ani Sinha <anisinha@redhat.com>","In-Reply-To":"<980AC83F-DD93-4924-8935-11CBFD624ACE@redhat.com>","Date":"Mon, 13 Apr 2026 17:57:29 +0530","Cc":"Paolo Bonzini <pbonzini@redhat.com>,\n Peter Maydell <peter.maydell@linaro.org>,\n Misbah Anjum N <misanjum@linux.ibm.com>,\n Gautam Menghani <gautam@linux.ibm.com>, Fabiano Rosas <farosas@suse.de>,\n kvm@vger.kernel.org, qemu-devel <qemu-devel@nongnu.org>","Content-Transfer-Encoding":"quoted-printable","Message-Id":"<F0A82F77-6F25-4193-88D0-01B24B1459AE@redhat.com>","References":"<20260413112151.61261-1-anisinha@redhat.com>\n <0954ef7e-b04e-4542-89fb-796acc452068@linux.ibm.com>\n <980AC83F-DD93-4924-8935-11CBFD624ACE@redhat.com>","To":"Harsh Prateek Bora <harshpb@linux.ibm.com>","X-Mailer":"Apple Mail (2.3864.500.181)","Received-SPF":"pass client-ip=170.10.133.124;\n envelope-from=anisinha@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"}}]