All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Juan Quintela" <quintela@redhat.com>,
	qemu-devel@nongnu.org, "Cameron Esfahani" <dirty@apple.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Roman Bolshakov" <r.bolshakov@yadro.com>,
	"Wenchao Wang" <wenchao.wang@intel.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Sunil Muthuswamy" <sunilmut@microsoft.com>,
	"Colin Xu" <colin.xu@intel.com>
Subject: Re: [PATCH for-6.1 3/4] qapi/qom.json: Do not use CONFIG_VIRTIO_CRYPTO in common code
Date: Thu, 15 Apr 2021 09:44:15 +0200	[thread overview]
Message-ID: <875z0of0vk.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <b5a3e83d-ec62-d5ce-b03c-d33f7419a5e9@redhat.com> (Thomas Huth's message of "Thu, 15 Apr 2021 08:15:55 +0200")

Thomas Huth <thuth@redhat.com> writes:

> On 14/04/2021 15.55, Markus Armbruster wrote:
>> Thomas Huth <thuth@redhat.com> writes:
>> 
>>> The ObjectType enum and ObjectOptions are included from qapi-types-qom.h
>>> into common code. We should not use target-specific config switches like
>>> CONFIG_VIRTIO_CRYPTO here, since this is not defined in common code and
>>> thus the enum will look differently between common and target specific
>>> code. For this case, it's hopefully enough to check for CONFIG_VHOST_CRYPTO
>>> only (which is a host specific config switch, i.e. it's the same on all
>>> targets).
>> 
>> Drawback: introspection now claims cryptodev-vhost-user is among the
>> values of qom-type, which is a lie when !defined(CONFIG_VIRTIO_CRYPTO).
>> 
>> Is this the first lie about QOM object types?
>> 
>> Do we care?
>
> I don't think we really care, since there are other entries in the list 
> which are obviously only available on certain targets or configurations, but 
> not fenced with "if"s, e.g. s390-pv-guest, input-linux or rng-random.

So introspection already flawed, and adding another instance doesn't
really make it worse.

> Or do you see a special problem with cryptodev-vhost-user here?

No, only the general problem that query-qmp-schema can't reliably tell
us what QOM types are available.

I see no need to revert the patch.

>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> ---
>>>   qapi/qom.json | 4 ++--
>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/qapi/qom.json b/qapi/qom.json
>>> index db5ac419b1..cd0e76d564 100644
>>> --- a/qapi/qom.json
>>> +++ b/qapi/qom.json
>>> @@ -752,7 +752,7 @@
>>>       'cryptodev-backend',
>>>       'cryptodev-backend-builtin',
>>>       { 'name': 'cryptodev-vhost-user',
>>> -      'if': 'defined(CONFIG_VIRTIO_CRYPTO) && defined(CONFIG_VHOST_CRYPTO)' },
>>> +      'if': 'defined(CONFIG_VHOST_CRYPTO)' },
>>>       'dbus-vmstate',
>>>       'filter-buffer',
>>>       'filter-dump',
>>> @@ -809,7 +809,7 @@
>>>         'cryptodev-backend':          'CryptodevBackendProperties',
>>>         'cryptodev-backend-builtin':  'CryptodevBackendProperties',
>>>         'cryptodev-vhost-user':       { 'type': 'CryptodevVhostUserProperties',
>>> -                                      'if': 'defined(CONFIG_VIRTIO_CRYPTO) && defined(CONFIG_VHOST_CRYPTO)' },
>>> +                                      'if': 'defined(CONFIG_VHOST_CRYPTO)' },
>>>         'dbus-vmstate':               'DBusVMStateProperties',
>>>         'filter-buffer':              'FilterBufferProperties',
>>>         'filter-dump':                'FilterDumpProperties',
>> 
>> Could CryptodevVhostUserProperties be conditional, too?
>
> That's certainly a question for the QOM experts here...

Here's the expert's method to find out: slap on the conditional,
compile with all targets enabled, see whether any of them explode.

Mind to try?



  reply	other threads:[~2021-04-15  7:47 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-14 11:20 [PATCH for-6.1 0/4] Poison more CONFIG switches Thomas Huth
2021-04-14 11:20 ` [PATCH for-6.1 1/4] include/sysemu: Poison all accelerator CONFIG switches in common code Thomas Huth
2021-04-14 16:56   ` Philippe Mathieu-Daudé
2021-04-14 11:20 ` [PATCH for-6.1 2/4] migration: Move populate_vfio_info() into a separate file Thomas Huth
2021-04-14 12:22   ` Dr. David Alan Gilbert
2021-04-14 12:33   ` Philippe Mathieu-Daudé
2021-05-03  6:04   ` Thomas Huth
2021-04-14 11:20 ` [PATCH for-6.1 3/4] qapi/qom.json: Do not use CONFIG_VIRTIO_CRYPTO in common code Thomas Huth
2021-04-14 13:55   ` Markus Armbruster
2021-04-15  6:15     ` Thomas Huth
2021-04-15  7:44       ` Markus Armbruster [this message]
2021-04-15  8:03         ` Thomas Huth
2021-04-14 11:20 ` [PATCH for-6.1 4/4] configure: Poison all current target-specific #defines Thomas Huth
2021-04-15  8:34   ` Philippe Mathieu-Daudé
2021-04-15 11:21     ` Thomas Huth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875z0of0vk.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=colin.xu@intel.com \
    --cc=dgilbert@redhat.com \
    --cc=dirty@apple.com \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=r.bolshakov@yadro.com \
    --cc=sunilmut@microsoft.com \
    --cc=thuth@redhat.com \
    --cc=wenchao.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.