On Mon, Feb 27, 2023 at 08:44:57 -0800, Andrea Bolognani wrote: > On Mon, Feb 27, 2023 at 04:27:37PM +0100, Peter Krempa wrote: > > Detect that ACPI can be controlled via '-machine acpi=off' rather than > > use of -no-acpi. > > First of all, thank you for picking up this work. I was planning on > doing this myself, but you've beaten me to it and I'm absolutely > ecstatic about that :) > > > +++ b/src/qemu/qemu_capabilities.c > > static struct virQEMUCapsCommandLineProps virQEMUCapsCommandLine[] = { > > + { "acpi", NULL, QEMU_CAPS_MACHINE_ACPI }, > > { "fsdev", "multidevs", QEMU_CAPS_FSDEV_MULTIDEVS }, > > { "machine", "hpet", QEMU_CAPS_MACHINE_HPET }, > > { "sandbox", NULL, QEMU_CAPS_SECCOMP_SANDBOX }, > > > > +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml > > <flag name='virtio-blk.queue-size'/> > > <flag name='usb-host.guest-resets-all'/> > > <flag name='virtio-crypto'/> > > + <flag name='machine-acpi'/> > > Are you sure you're detecting this correctly? Based on an earlier > discussion about this topic[1], I would have expected the flag to > show up for QEMU 5.0.0, but *not* for QEMU 4.2.0. Uhh, right! It was supposed to be: { "machine", "acpi", QEMU_CAPS_MACHINE_ACPI }, instead of: { "acpi", NULL, QEMU_CAPS_MACHINE_ACPI }, Which only gets detected with the in-dev qemu-8.0 version. > This looks like you're checking whether -acpi itself exists as a > top-level option. Which it doesn't, but -no-acpi does and yet it > doesn't seem to be advertised in the output of > query-command-line-options? Well, it actually does exist in the output of query-command-line-options, but I have no idea what it means: virsh qemu-monitor-command --pretty cd query-command-line-options | jq .return[].option One of the options is "acpi". > Basically it looks like there are some serious introspection > shenanigans going on, and I'm not sure we can actually reliably > detect whether -machine acpi can be used until your QEMU patch has > been merged. > > Or I might just have missed something obvious! In which case, please > let me know what it is :) I have no idea what the 'acpi' option does but it certainly mislead me.