[{"id":3681228,"web_url":"http://patchwork.ozlabs.org/comment/3681228/","msgid":"<CAF7B8BF-9095-4B86-8BC2-EA987BC739F7@redhat.com>","list_archive_url":null,"date":"2026-04-23T01:38:18","subject":"Re: [PATCH for-11.1] accel/kvm: refactor and clean up\n do_kvm_irqchip_create","submitter":{"id":86030,"url":"http://patchwork.ozlabs.org/api/people/86030/","name":"Ani Sinha","email":"anisinha@redhat.com"},"content":"Ping … Now that 11.1 dev window is open.\n\n> On 15 Apr 2026, at 12:08 PM, Ani Sinha <anisinha@redhat.com> wrote:\n> \n> Refactor do_kvm_irqchip_create() so it has specific return codes for specific\n> cases. Clean up the logic and add some clarifying comments. Adjust the\n> function call logic accourdingly. Should be no material change.\n> \n> Signed-off-by: Ani Sinha <anisinha@redhat.com>\n> ---\n> accel/kvm/kvm-all.c | 48 ++++++++++++++++++++++++++++-----------------\n> 1 file changed, 30 insertions(+), 18 deletions(-)\n> \n> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c\n> index 92af42503b..788cbf8693 100644\n> --- a/accel/kvm/kvm-all.c\n> +++ b/accel/kvm/kvm-all.c\n> @@ -2575,6 +2575,13 @@ 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> +/**\n> + * do_kvm_irqchip_create - create irqchip\n> + * @s: The KVMState pointer\n> + *\n> + * Returns: -errno on fatal errors, 0 on success and\n> + *          non-negative on non-fatal errors.\n> + */\n> static int do_kvm_irqchip_create(KVMState *s)\n> {\n>     int ret;\n> @@ -2583,32 +2590,34 @@ static int do_kvm_irqchip_create(KVMState *s)\n>     } else if (kvm_check_extension(s, KVM_CAP_S390_IRQCHIP)) {\n>         ret = kvm_vm_enable_cap(s, KVM_CAP_S390_IRQCHIP, 0);\n>         if (ret < 0) {\n> -            fprintf(stderr, \"Enable kernel irqchip failed: %s\\n\", strerror(-ret));\n> -            exit(1);\n> +            error_report(\"Enable kernel irqchip failed: %s\", strerror(-ret));\n> +            return ret;\n>         }\n>     } else {\n> -        return -EOPNOTSUPP;\n> +        /*\n> +         * neither KVM_CAP_IRQCHIP nor KVM_CAP_S390_IRQCHIP capabilities are\n> +         * present. We can't proceed. Bail.\n> +         */\n> +        return 1;\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>     /* 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> +        /*\n> +         * If we are here, it means we are going to do an in-kernel irqchip.\n> +         * Lets make sure that the kernel_irqchip_split setting is not set to\n> +         * split mode.\n> +         */\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> +        error_report(\"Create kernel irqchip failed: %s\", strerror(-ret));\n> +        return ret;\n>     }\n> \n>     return 0;\n> @@ -2616,9 +2625,13 @@ static int do_kvm_irqchip_create(KVMState *s)\n> \n> static void kvm_irqchip_create(KVMState *s)\n> {\n> +    int ret;\n>     assert(s->kernel_irqchip_split != ON_OFF_AUTO_AUTO);\n> \n> -    if (do_kvm_irqchip_create(s) < 0) {\n> +    ret = do_kvm_irqchip_create(s);\n> +    assert(ret >= 0);\n> +    if (ret) {\n> +        /* required kvm capabilities missing, we can't proceed. */\n>         return;\n>     }\n>     kvm_kernel_irqchip = true;\n> @@ -2839,8 +2852,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> +        assert(do_kvm_irqchip_create(s) >= 0);\n>     }\n> \n>     /*\n> -- \n> 2.49.0\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=UfmvpaQO;\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=LELQqfmQ;\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 4g1JfY18gdz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 11:39:15 +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 1wFj1g-000053-0t; Wed, 22 Apr 2026 21:38:44 -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 1wFj1e-0008WU-61\n for qemu-devel@nongnu.org; Wed, 22 Apr 2026 21:38:42 -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 1wFj1b-0001mx-Vk\n for qemu-devel@nongnu.org; Wed, 22 Apr 2026 21:38:41 -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-517-H074Oe4PMrCaVRXgCCcWmA-1; Wed, 22 Apr 2026 21:38:35 -0400","by mail-pl1-f197.google.com with SMTP id\n d9443c01a7336-2b465bf993cso63361375ad.1\n for <qemu-devel@nongnu.org>; Wed, 22 Apr 2026 18:38:35 -0700 (PDT)","from smtpclient.apple ([2406:7400:56:9d52:1830:f5d:7353:6235])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b5faa17632sm184179495ad.24.2026.04.22.18.38.31\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Wed, 22 Apr 2026 18:38:33 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776908317;\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=umHlt5UmJvkmq7XVNVqyffxS65gP4jhfhVNPZD5Gffk=;\n b=UfmvpaQOMQbo62K/XBAk9ecs1YNvo2HdfKxSlysKQeioQNeQf/21mjyr/Z5f390m33MgIP\n YzvQMSJmO8mHaijKShAnVa33U+aTfZz15Sgzp2goGOatkTLTk79vssHErXoG3kaS7XCb8o\n +7UqxYxs4S2gkKDd7bbG/DiqZTPX108=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1776908315; x=1777513115; 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=umHlt5UmJvkmq7XVNVqyffxS65gP4jhfhVNPZD5Gffk=;\n b=LELQqfmQCxLyiTP9bI6nTcjJNmFnxHudiY/pfs5Hwd4jfKwgkddaOjwBnReXk42q7e\n owkdS2kwpzgE/1lSlsoszzUr5JZTeRJZxcMMoefnTORd55kZoGyuWGuP4Mhj9YgqNNDR\n ZuKh5VsMJbLT0Dz6cBkhmh5twaHbiPVyiLZJc/3CxisCXciWR7WLQabEKucPJ0Psk0ST\n vqyAB+M0c98CxAsTQEuUqDPs2nQhBdtGmqzsNn6NFJn2jxHA9zWjJRHwA74g2pvrHUtt\n lNJSIwCVKaFOGUPkqZ0swRUENYo7gN25+YQnuqaTjJ2RfdBl7wZeikDxSL4EJ6h8xCoe\n QYTA=="],"X-MC-Unique":"H074Oe4PMrCaVRXgCCcWmA-1","X-Mimecast-MFC-AGG-ID":"H074Oe4PMrCaVRXgCCcWmA_1776908315","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776908315; x=1777513115;\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=umHlt5UmJvkmq7XVNVqyffxS65gP4jhfhVNPZD5Gffk=;\n b=sCyh2KEFaVxDcT/eZkU22apWHnJ0S64L5NARdEnc1UE8rV3jnpGiu9UxE8pDWTsy3Z\n 1X2T9VjnJ2VEFsCTuBS8NZaIubUrM/UGlEWt7k79PmWt+sB5yVSFt4klpo13npenaOpM\n T1iPnh4l1vdtgUxdWBeIi8Gb0+RuIQhrMmfgs0XnI0CM3jcEKLQY/TPh/znEf49L5FIb\n x0RpH+VOv6V1REgadPhosQI/zRBNfWcSWXuDKuOukCfL+O0cdWXUxTdQQpbyemplGReo\n sW0g5tAsKJaIVhlBeYr1+aFYFeo4Ga6K222gmKNvADd3Q9bytUQwFp5JHj7ZCKPEndh/\n MR+g==","X-Forwarded-Encrypted":"i=1;\n AFNElJ9D5efZ17Q0cQ7fndEGxb88AROnmQjmtyaP+duh2wTt454aMXutHMMFdMmhJhOBqSTMuaZT/67f3PtM@nongnu.org","X-Gm-Message-State":"AOJu0Yz0i9VF5vUz1ajgD38Z2ngLj1e7jQHgrEYO+DL6iInZSAboumNz\n Uy7lxKZw0wT4JbtK7DAs/hfarwCKSR2dGP+G2iEbHikBeMkYB6SiFFRX6fS5RFbMiTnWOxn0oGe\n SKNwvUNdc3YkoVxNp/900YpEdTHTGT48+rWl7c2WhiH3mzpAuysVY8+Ty","X-Gm-Gg":"AeBDiescXKxfPrtFjj3tss/6hygMPyueTQqjMX3ze43dm431llnLVhNW4gghTmflK1T\n lEhjIoTD9BVEc6GFK2BIs4XkXH8qT1UXXvMWwU+vGeVEFvqIsLG67YJjT8yu003kOKG4lwsmsXx\n 8RFNzchlJnoWBNeuq20KzOCCGCjQKuoGK1/OYx+yGre9/JV81EirdRgUys+Lm/WoW+DLKnvWnWK\n IUrkjZylcRicspdmUqfJTU4EitCxkdA6yVejlXTczCG4ZK1sPGt5Xyxt1u6X1zNXQf2Yg8fTvjZ\n yUQ4EIWoe2ojbkUA9Jkqf8nS/5ATtS2h1C6wllWEpOohQIJaAc74j5a6TIE/B9hqNoYgntY41Jt\n DNnG0MXqa80PS8WrvUOszEZT8CKrPm6hk5XZEY1CeWbb8ZdEG+lGZ0DnZzJ8upzDUIysh+APjAL\n TS2povSB4H0a0uE3C3","X-Received":["by 2002:a17:903:2ac4:b0:2b0:41bf:ca83 with SMTP id\n d9443c01a7336-2b5f9f3c616mr257135015ad.23.1776908314611;\n Wed, 22 Apr 2026 18:38:34 -0700 (PDT)","by 2002:a17:903:2ac4:b0:2b0:41bf:ca83 with SMTP id\n d9443c01a7336-2b5f9f3c616mr257134655ad.23.1776908314054;\n Wed, 22 Apr 2026 18:38:34 -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 for-11.1] accel/kvm: refactor and clean up\n do_kvm_irqchip_create","From":"Ani Sinha <anisinha@redhat.com>","In-Reply-To":"<20260415063835.85540-1-anisinha@redhat.com>","Date":"Thu, 23 Apr 2026 07:08:18 +0530","Cc":"peter.maydell@linaro.org, philmd@linaro.org, kvm@vger.kernel.org,\n qemu-devel@nongnu.org","Content-Transfer-Encoding":"quoted-printable","Message-Id":"<CAF7B8BF-9095-4B86-8BC2-EA987BC739F7@redhat.com>","References":"<20260415063835.85540-1-anisinha@redhat.com>","To":"Paolo Bonzini <pbonzini@redhat.com>","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":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001,\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 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"}}]