query-command-line-options (was: [PATCH 1/7] qemu: capabilities: Introduce QEMU_CAPS_MACHINE_ACPI)

Peter Krempa pkrempa at redhat.com
Tue Mar 7 14:28:46 UTC 2023


On Tue, Mar 07, 2023 at 10:40:23 +0100, Markus Armbruster wrote:
> [Resent with cc: qemu-devel and adjusted subject, sorry for the noise]
> 
> abologna at redhat.com (Andrea Bolognani) writes:
> 
> > On Mon, Feb 27, 2023 at 06:25:23PM +0100, Peter Krempa wrote:
> >> On Mon, Feb 27, 2023 at 08:44:57 -0800, Andrea Bolognani wrote:

[...]

> > Another example I've found is "smp-opts", which seems to be used to
> > implement the -smp option. Once again, in the JSON we find "smp-opts"
> > instead of "smp".
> >
> > I think it would be worthwile to check with the QEMU developers and
> > make sure that they're aware of this behavior. Is it intended? Is it
> > documented anywhere? It certainly seems extremely confusing to me.
> 
> query-command-line-options has... issues.
> 
> First, it's generally[*] limited to options that use QemuOpts.
> 
> Second, it reports configuration group names, which are often, but not
> always the same as the option name.  The exceptions you just have to
> know.  Group name "acpi" vs. option name "acpitable" is one.

Ah! so that's where 'acpi' comes from.

> 
> Third, information on option parameters can be incomplete, or missing
> entirely.
> 
> Fourth, even when it's there, it's often insufficiently detailed.
> 
> These are design issues.  I believe the command cannot be fixed, only
> replaced.
> 
> See my talk "QEMU interface introspection: From hacks to
> solutions", KVM Forum 2015.
> Video at https://www.youtube.com/watch?v=IEa8Ao8_B9o
> Slides at http://www.linux-kvm.org/images/7/7a/02x05-Aspen-Markus_Armbruster-QEMU_interface_introspection.pdf
> 
> Questions?

In the end I've dropped the patch detecting the presence of the 'acpi'
option of -machine as queried via query-command-line-options, as we need
to know it per-machine type.  That is now reported by qemu in
query-machines, so we don't need to add more querying from
query-command-line options.

In fact I strive to eliminate it after your suggestions, but we can't
still detect the few outstanding flags from anywhere else.

List of currently outstanding queries using query-command-line-options:

    { "fsdev", "multidevs", QEMU_CAPS_FSDEV_MULTIDEVS },
    { "machine", "hpet", QEMU_CAPS_MACHINE_HPET },
    { "sandbox", NULL, QEMU_CAPS_SECCOMP_SANDBOX },
    { "spice", NULL, QEMU_CAPS_SPICE },
    { "spice", "gl", QEMU_CAPS_SPICE_GL },
    { "spice", "rendernode", QEMU_CAPS_SPICE_RENDERNODE },
    { "vnc", "power-control", QEMU_CAPS_VNC_POWER_CONTROL },




More information about the libvir-list mailing list