
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_inte...
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 },