From: Marcel Apfelbaum <marcel@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Tony Krowiak" <akrowiak@linux.vnet.ibm.com>,
qemu-devel@nongnu.org, "Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [qemu devel] disable shared memory is not available with this QEMU binary
Date: Wed, 01 Apr 2015 19:11:46 +0300 [thread overview]
Message-ID: <551C18C2.50306@redhat.com> (raw)
In-Reply-To: <87k2xvonem.fsf@blackfin.pond.sub.org>
On 04/01/2015 06:53 PM, Markus Armbruster wrote:
> Marcel Apfelbaum <marcel@redhat.com> writes:
[...]
>> I noticed something weird. I cannot actually create an instance of machine
>> or get a reference to current_machine in order to query its properties!
>>
>> It seems that util/qemu-config is used by qemu-img which obviously
>> does not have a current machine nor the means to create it.
>>
>> So I have no way to create QOM objects for introspection :(.
>
> You'd have to do something like
>
> desc[] = generic entries + the machine's entries
>
> where the latter is empty outside qemu proper.
Hmm! So I will loose with some dignity.
I'll keep the properties of the base "machine" on a static array
and *only* per-machine properties dynamic and I loose them.
>
> For 2.3, I recommend to do *only* generic entries. Specifically,
> *exactly* the entries we had before we cleared out
> qemu_machine_opts.desc[].
I submitted:
[PATCH for-2.3] util/qemu-config" fix regression of qmp_query_command_line_options
which includes both base-machine/per-machine properties.
Is it that bad? qmp can query it and even the new options will work
if qmp decides to set them. Can you have a look?
>
[...]
>>> Big job, though.
>> You lost me... you are talking about QAPI that I have no knowledge about,
>> and I still don't see how I can create instances of QOM objects in the context
>> of qemu-config.
>
> Very high level summary:
>
> 0. We use QemuOpts to define our command line. The definition is
> *incomplete*. The missing parts are left to code.
> query-command-line-options can't see them.
OK
>
> 1. You have a QemuOpts problem that is actually pretty common: how to
> accept a few fixed parameters plus a bunch of parameters that are
> specific to the value of one of the fixed parameters (the
> discriminator, in your case "type").
Yes, but is more than that:
per-type properties are not static, you cannot find them before creating
an actual QOM object, and that is not possible.
We could have a per-machine static options array that will be loaded
at init time into object properties... ugly.
>
> 2. We've solved this in several different ways, and all of them make
> query-command-line-options useless.
Got it
>
> 3. Same problem exists in QMP, and we have a decent solution there,
> based on QAPI.
OK
>
> 4. We'll soon have QMP/QAPI introspection.
And then we can query a 'living' object's properties
>
> 5. If we used a QAPI schema to define our command line, we could do a
> more complete job (because it's more expressive), and we'd get
> introspection basically for free.
If the QAPI schema will include *all* properties *per* machine type, sure.
>
> 6. #5 would be a big job, though.
>
> Less confused now?
Much better, thanks!
Marcel
> [...]
next prev parent reply other threads:[~2015-04-01 16:11 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-31 14:21 [Qemu-devel] [qemu devel] disable shared memory is not available with this QEMU binary Tony Krowiak
2015-04-01 6:54 ` Marcel Apfelbaum
2015-04-01 8:01 ` Paolo Bonzini
2015-04-01 8:06 ` Marcel Apfelbaum
2015-04-01 8:20 ` Paolo Bonzini
2015-04-01 8:42 ` Markus Armbruster
2015-04-01 9:07 ` Paolo Bonzini
2015-04-01 9:14 ` Marcel Apfelbaum
2015-04-01 9:23 ` Paolo Bonzini
2015-04-01 9:27 ` Marcel Apfelbaum
2015-04-01 8:28 ` Markus Armbruster
2015-04-01 14:51 ` Marcel Apfelbaum
2015-04-01 15:53 ` Markus Armbruster
2015-04-01 16:11 ` Marcel Apfelbaum [this message]
2015-04-01 16:20 ` Eric Blake
2015-04-01 16:31 ` Marcel Apfelbaum
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=551C18C2.50306@redhat.com \
--to=marcel@redhat.com \
--cc=afaerber@suse.de \
--cc=akrowiak@linux.vnet.ibm.com \
--cc=armbru@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.