From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a19:e20e:0:0:0:0:0 with SMTP id z14csp379337lfg; Wed, 5 May 2021 08:01:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy+1vYNPTnHpPQMub/IgESWnyzXiJ8kIyVSOwZaAaeAl8Xfb3+JWLVesbmQ0OsIz5ayXP/N X-Received: by 2002:a17:906:6801:: with SMTP id k1mr27259026ejr.137.1620226909640; Wed, 05 May 2021 08:01:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620226909; cv=none; d=google.com; s=arc-20160816; b=PYySVzsNGPGdm5PTx4HUHfmSuKANFST60RnxRy0jg6WClF8XowznrRXG7Ghmb2ORaM rV+d5yCYDGFIPLMrfnAdTsFGgHtRGDlDubpuNcUh6Oq0NCbiEyndi0kJ6c2nPSB+UBpd gI8MukhNbVZkj641LnUGpUHlQUHqE/1lMJb26hpqHy9a9LWTh70D6SCtRurjo7Qymy5k HxkOYVptRUfF1zqCCJlEk1vbvq1zGe9XXjjk+2/VvCE0OyZaNJX2mhsqr0nfQFoozCAJ IbGGcTSBe2aU//92oq/uL55NElGscZ22+sxRGKglUazAbvrwVcvBzsQhra6XhVXnyzOQ XE0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:dkim-signature; bh=fhMp4x+KILijfTKHWUNCFvTuYIYiXuFj4VSPB80hbqg=; b=lQITsOwLs7PKzQ9eBxKbb83UDcpsdT6zDKDWLrEAD2ZgXPz+DgLNJaCqushUSyIOa8 ufaQiSSGLb+i4mxu3CY/GUvIExQ3+rVhhmm+fwzquI5Ap/oavb9SM05gwOT8eXGslwR5 podt7GBB5Qji0xtP5efgZh+Ave8YWsH08hC98Z/4xgQ7PmDemVzXIOwwZ9pExkpQpxSk 8i4G9PjgcSE7CT68mKCP+BNktAdRGo+qTPVH6Zu70pREdHRh5MPLFXzizHFKIATjwsPG 4LSFJCYBFtEh9CuhM8ftLMasIMGX6r+JoGSb6ZCjlHXpSGy8oCkFXlI5LvQNkgelJiUU r0xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=btv5fclH; spf=pass (google.com: domain of armbru@redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=armbru@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com. [216.205.24.124]) by mx.google.com with ESMTPS id t15si4501232edd.1.2021.05.05.08.01.49 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 05 May 2021 08:01:49 -0700 (PDT) Received-SPF: pass (google.com: domain of armbru@redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=btv5fclH; spf=pass (google.com: domain of armbru@redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=armbru@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620226908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fhMp4x+KILijfTKHWUNCFvTuYIYiXuFj4VSPB80hbqg=; b=btv5fclHNLYXB7Q8KBcLLHzjPkDoriTBeYJwfTYA0KrBbezZ8e/1VudTA0QEV34kEeCts6 VMecFyDZa8Bvs9XBuSuTNY+C1JmIGQ14n7Jlq56GovLiAn7qDAKZ8PFCssxfMVCZcyiQvd IXeRiMGde6ebCkojrKnODF9tTg7DH54= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-417-QXJDeNWnNMaHXWeVmloDqQ-1; Wed, 05 May 2021 11:01:47 -0400 X-MC-Unique: QXJDeNWnNMaHXWeVmloDqQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EB3141020C24; Wed, 5 May 2021 15:01:45 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-114-17.ams2.redhat.com [10.36.114.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 64EBD6062C; Wed, 5 May 2021 15:01:44 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id D934A1138529; Wed, 5 May 2021 17:01:41 +0200 (CEST) From: Markus Armbruster To: Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Cc: Thomas Huth , Eduardo Habkost , Juan Quintela , Richard Henderson , Andrew Jones , qemu-devel@nongnu.org, qemu-arm@nongnu.org, Claudio Fontana , Paolo Bonzini , Alex =?utf-8?Q?Benn=C3=A9e?= , "Dr. David Alan Gilbert" Subject: Re: [PATCH v5 02/10] accel: Introduce 'query-accels' QMP command References: <20210501223638.510712-1-philmd@redhat.com> <20210501223638.510712-3-philmd@redhat.com> <87o8dpvet4.fsf@dusky.pond.sub.org> <918d1fc1-260c-57b7-2dd9-61f1125a2aa2@redhat.com> Date: Wed, 05 May 2021 17:01:41 +0200 In-Reply-To: <918d1fc1-260c-57b7-2dd9-61f1125a2aa2@redhat.com> ("Philippe =?utf-8?Q?Mathieu-Daud=C3=A9=22's?= message of "Wed, 5 May 2021 13:49:45 +0200") Message-ID: <87tunhns16.fsf@dusky.pond.sub.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=armbru@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-TUID: IRfo87qk2tDq Philippe Mathieu-Daud=C3=A9 writes: > On 5/5/21 9:07 AM, Markus Armbruster wrote: >> Philippe Mathieu-Daud=C3=A9 writes: >>=20 >>> Introduce the 'query-accels' QMP command which returns a list >>> of built-in accelerator names. >>> >>> - Accelerator is a QAPI enum of all existing accelerators, >>> >>> - AcceleratorInfo is a QAPI structure providing accelerator >>> specific information. Currently the common structure base >>> provides the name of the accelerator, while the specific >>> part is empty, but each accelerator can expand it. >>> >>> - 'query-accels' QMP command returns a list of @AcceleratorInfo >>> >>> For example on a KVM-only build we get: >>> >>> { "execute": "query-accels" } >>> { >>> "return": [ >>> { >>> "name": "qtest" >>> }, >>> { >>> "name": "kvm" >>> } >>> ] >>> } >>> >>> Note that we can't make the enum values or union branches conditional >>> because of target-specific poisoning of accelerator definitions. >>=20 >> Let me try to complete this argument; >>=20 >> If we did, enum Accelerator could only be used in target-specific >> code. But we want to use it in generic code, too. >>=20 >> Which generic code exactly? > > > cpu.c:133:#ifdef CONFIG_TCG > hmp-commands-info.hx:271:#if defined(CONFIG_TCG) > monitor/misc.c:324:#ifdef CONFIG_TCG > softmmu/physmem.c:28:#ifdef CONFIG_TCG > > and more importantly: > > include/exec/cpu-all.h:430:#ifdef CONFIG_TCG > include/exec/cpu-defs.h:77:#if !defined(CONFIG_USER_ONLY) && > defined(CONFIG_TCG) > include/exec/exec-all.h:25:#ifdef CONFIG_TCG > include/sysemu/cpu-timers.h:27:#ifdef CONFIG_TCG > > Thomas might provide more cases, IIRC he audited this recently. No need, I'm interested in examples, not a complete list. Please amend the commit message: Note that we can't make the enum values or union branches conditional because of target-specific poisoning of accelerator definitions. If we did, enum Accelerator could only be used in target-specific code. But we want to also use it in generic code, such as ... with ... replaced by one or more references to relevant code. If we expect readers of the code to later wonder why we're not using QAPI conditionals, then we should add a comment to the QAPI schema, too. Not a demand, since I'm not sure what to expect. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 523F1C433ED for ; Wed, 5 May 2021 15:08:16 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id ACD966101A for ; Wed, 5 May 2021 15:08:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ACD966101A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:43760 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1leJ8I-0005cZ-G0 for qemu-devel@archiver.kernel.org; Wed, 05 May 2021 11:08:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59068) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1leJ2S-0001pb-2L for qemu-devel@nongnu.org; Wed, 05 May 2021 11:02:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:48398) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1leJ2F-0001ql-Nj for qemu-devel@nongnu.org; Wed, 05 May 2021 11:02:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620226918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fhMp4x+KILijfTKHWUNCFvTuYIYiXuFj4VSPB80hbqg=; b=FjbU1LlfoQqj4O5QB4o7wBRUaTGzjrNY2URPy3rvJY27+s77scHzzOxo4cYZyot91pvoOy Xy+nF2uJDwTeqf4roOOFyaWuneR8+lZZyEqyZlfoZbMCoTw3xzkWExcx+fBzMpW/lfa6bn SDc5PrSyocZwbE5Xb3LfmioYLDyrSHA= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-417-QXJDeNWnNMaHXWeVmloDqQ-1; Wed, 05 May 2021 11:01:47 -0400 X-MC-Unique: QXJDeNWnNMaHXWeVmloDqQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EB3141020C24; Wed, 5 May 2021 15:01:45 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-114-17.ams2.redhat.com [10.36.114.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 64EBD6062C; Wed, 5 May 2021 15:01:44 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id D934A1138529; Wed, 5 May 2021 17:01:41 +0200 (CEST) From: Markus Armbruster To: Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: Re: [PATCH v5 02/10] accel: Introduce 'query-accels' QMP command References: <20210501223638.510712-1-philmd@redhat.com> <20210501223638.510712-3-philmd@redhat.com> <87o8dpvet4.fsf@dusky.pond.sub.org> <918d1fc1-260c-57b7-2dd9-61f1125a2aa2@redhat.com> Date: Wed, 05 May 2021 17:01:41 +0200 In-Reply-To: <918d1fc1-260c-57b7-2dd9-61f1125a2aa2@redhat.com> ("Philippe =?utf-8?Q?Mathieu-Daud=C3=A9=22's?= message of "Wed, 5 May 2021 13:49:45 +0200") Message-ID: <87tunhns16.fsf@dusky.pond.sub.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=armbru@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=216.205.24.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.693, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Jones , Eduardo Habkost , Juan Quintela , Richard Henderson , Thomas Huth , qemu-devel@nongnu.org, qemu-arm@nongnu.org, Claudio Fontana , Paolo Bonzini , Alex =?utf-8?Q?Benn=C3=A9e?= , "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Philippe Mathieu-Daud=C3=A9 writes: > On 5/5/21 9:07 AM, Markus Armbruster wrote: >> Philippe Mathieu-Daud=C3=A9 writes: >>=20 >>> Introduce the 'query-accels' QMP command which returns a list >>> of built-in accelerator names. >>> >>> - Accelerator is a QAPI enum of all existing accelerators, >>> >>> - AcceleratorInfo is a QAPI structure providing accelerator >>> specific information. Currently the common structure base >>> provides the name of the accelerator, while the specific >>> part is empty, but each accelerator can expand it. >>> >>> - 'query-accels' QMP command returns a list of @AcceleratorInfo >>> >>> For example on a KVM-only build we get: >>> >>> { "execute": "query-accels" } >>> { >>> "return": [ >>> { >>> "name": "qtest" >>> }, >>> { >>> "name": "kvm" >>> } >>> ] >>> } >>> >>> Note that we can't make the enum values or union branches conditional >>> because of target-specific poisoning of accelerator definitions. >>=20 >> Let me try to complete this argument; >>=20 >> If we did, enum Accelerator could only be used in target-specific >> code. But we want to use it in generic code, too. >>=20 >> Which generic code exactly? > > > cpu.c:133:#ifdef CONFIG_TCG > hmp-commands-info.hx:271:#if defined(CONFIG_TCG) > monitor/misc.c:324:#ifdef CONFIG_TCG > softmmu/physmem.c:28:#ifdef CONFIG_TCG > > and more importantly: > > include/exec/cpu-all.h:430:#ifdef CONFIG_TCG > include/exec/cpu-defs.h:77:#if !defined(CONFIG_USER_ONLY) && > defined(CONFIG_TCG) > include/exec/exec-all.h:25:#ifdef CONFIG_TCG > include/sysemu/cpu-timers.h:27:#ifdef CONFIG_TCG > > Thomas might provide more cases, IIRC he audited this recently. No need, I'm interested in examples, not a complete list. Please amend the commit message: Note that we can't make the enum values or union branches conditional because of target-specific poisoning of accelerator definitions. If we did, enum Accelerator could only be used in target-specific code. But we want to also use it in generic code, such as ... with ... replaced by one or more references to relevant code. If we expect readers of the code to later wonder why we're not using QAPI conditionals, then we should add a comment to the QAPI schema, too. Not a demand, since I'm not sure what to expect.