diff mbox series

[v2] qapi: Add 'acpi' field to 'query-machines' output

Message ID 537625d3e25d345052322c42ca19812b98b4f49a.1677571792.git.pkrempa@redhat.com
State New
Headers show
Series [v2] qapi: Add 'acpi' field to 'query-machines' output | expand

Commit Message

Peter Krempa Feb. 28, 2023, 8:12 a.m. UTC
Report which machine types support ACPI so that management applications
can properly use the 'acpi' property even on platforms such as ARM where
support for ACPI depends on the machine type and thus checking presence
of '-machine acpi=' in 'query-command-line-options' is insufficient.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
---

Diff to v1:
 - Fix spelling of 'ACPI' in 'machine.json'
 - Removed addition of a field to 'struct MachineClass' which was not
    used in the final version

 hw/core/machine-qmp-cmds.c | 1 +
 qapi/machine.json          | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

Comments

Peter Krempa March 1, 2023, 9:55 a.m. UTC | #1
On Tue, Feb 28, 2023 at 09:12:34 +0100, Peter Krempa wrote:
> Report which machine types support ACPI so that management applications
> can properly use the 'acpi' property even on platforms such as ARM where
> support for ACPI depends on the machine type and thus checking presence
> of '-machine acpi=' in 'query-command-line-options' is insufficient.
> 
> Signed-off-by: Peter Krempa <pkrempa@redhat.com>
> Acked-by: Markus Armbruster <armbru@redhat.com>
> ---
> 
> Diff to v1:
>  - Fix spelling of 'ACPI' in 'machine.json'
>  - Removed addition of a field to 'struct MachineClass' which was not
>     used in the final version

It would be great to get this patch into the release as will allow
libvirt to properly handle setting of ACPI now that '-no-acpi' flag was
recently deprecated:

https://lists.gnu.org/archive/html/qemu-devel/2023-02/msg07926.html

The libvirt patches which make use of this feature were posted at:

https://listman.redhat.com/archives/libvir-list/2023-March/238217.html
Paolo Bonzini March 1, 2023, 10:37 a.m. UTC | #2
Queued, thanks.

Paolo
diff mbox series

Patch

diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index 2d904747c0..b98ff15089 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -102,6 +102,7 @@  MachineInfoList *qmp_query_machines(Error **errp)
         info->hotpluggable_cpus = mc->has_hotpluggable_cpus;
         info->numa_mem_supported = mc->numa_mem_supported;
         info->deprecated = !!mc->deprecation_reason;
+        info->acpi = !!object_class_property_find(OBJECT_CLASS(mc), "acpi");
         if (mc->default_cpu_type) {
             info->default_cpu_type = g_strdup(mc->default_cpu_type);
         }
diff --git a/qapi/machine.json b/qapi/machine.json
index b9228a5e46..604b686e59 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -155,6 +155,8 @@ 
 #
 # @default-ram-id: the default ID of initial RAM memory backend (since 5.2)
 #
+# @acpi: machine type supports ACPI (since 8.0)
+#
 # Since: 1.2
 ##
 { 'struct': 'MachineInfo',
@@ -162,7 +164,7 @@ 
             '*is-default': 'bool', 'cpu-max': 'int',
             'hotpluggable-cpus': 'bool',  'numa-mem-supported': 'bool',
             'deprecated': 'bool', '*default-cpu-type': 'str',
-            '*default-ram-id': 'str' } }
+            '*default-ram-id': 'str', 'acpi': 'bool' } }

 ##
 # @query-machines: