
On Mon, Nov 25, 2024 at 14:46:38 -0500, Collin Walling wrote:
Add a new flag, --disable-deprecated-features, to the domcapabilities command. This will modify the output to show the 'host-model' CPU with features flagged as deprecated paired with the 'disable' policy.
virsh domcapabilities --disable-deprecated-features
Signed-off-by: Collin Walling <walling@linux.ibm.com> --- docs/manpages/virsh.rst | 6 ++++++ include/libvirt/libvirt-domain.h | 12 ++++++++++++ src/libvirt-domain.c | 2 +- src/qemu/qemu_capabilities.c | 20 ++++++++++++++++++++ src/qemu/qemu_capabilities.h | 3 +++ src/qemu/qemu_driver.c | 8 +++++++- tools/virsh-host.c | 9 ++++++++- 7 files changed, 57 insertions(+), 3 deletions(-)
I would split this patch to at least separate virsh changes from the rest, but even splitting it into three patches (public API, qemu, virsh) would work as well.
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst index 2e525d3fac..d3b8ff4e1c 100644 --- a/docs/manpages/virsh.rst +++ b/docs/manpages/virsh.rst @@ -568,6 +568,7 @@ domcapabilities
domcapabilities [virttype] [emulatorbin] [arch] [machine] [--xpath EXPRESSION] [--wrap] + [--disabled-deprecated-features]
s/disabled/disable/
Print an XML document describing the domain capabilities for the @@ -609,6 +610,11 @@ a standalone document, however, for ease of additional processing, the **--wrap** argument will cause the matching node to be wrapped in a common root node.
+The **--disabled-deprecated-features** argument will modify the contents
s/disabled/disable/
+of host-model CPU XML, updating the features list with any features +flagged as deprecated for the CPU model by the hypervisor. These +features will be paired with the "disable" policy. +
pool-capabilities ----------------- diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h index d4f1573954..0d7e54a3dc 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -1491,6 +1491,18 @@ int virDomainMigrateGetMaxSpeed(virDomainPtr domain, int virDomainMigrateStartPostCopy(virDomainPtr domain, unsigned int flags);
+/** + * virConnectGetDomainCapabilitiesFlags: + * + * Domain capabilities flags. + * + * Since: 10.10.0
Obviously 11.0.0 here and a few lines below
+ */ +typedef enum { + /* Report host model with deprecated features disabled. (Since: 10.10.0) */ + VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_FEATURES = (1 << 0), +} virConnectGetDomainCapabilitiesFlags; + char * virConnectGetDomainCapabilities(virConnectPtr conn, const char *emulatorbin, const char *arch,
Jirka