qemu: capabilities: Add detection of the 'savevm' fix for -blockdev

The 'savevm' HMP command didn't work properly with blockdev as it tried
to do snapshot of everything including the protocol nodes accessing
files which are not snapshottable. Qemu fixed this bug so now we need to
detect it to allow enabling blockdev.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Peter Krempa 2019-09-17 17:10:08 +02:00
parent e0300f92fc
commit 5b4b503be6
4 changed files with 5 additions and 0 deletions

View File

@ -551,6 +551,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
/* 345 */
"arm-max-cpu",
"blockdev-file-dynamic-auto-read-only",
"savevm-monitor-nodes",
);
@ -1397,6 +1398,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
{ "nbd-server-add/arg-type/bitmap", QEMU_CAPS_NBD_BITMAP },
{ "blockdev-add/arg-type/+file/drop-cache", QEMU_CAPS_MIGRATION_FILE_DROP_CACHE },
{ "blockdev-add/arg-type/+file/$dynamic-auto-read-only", QEMU_CAPS_BLOCK_FILE_AUTO_READONLY_DYNAMIC },
{ "human-monitor-command/$savevm-monitor-nodes", QEMU_CAPS_SAVEVM_MONITOR_NODES },
};
typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;

View File

@ -532,6 +532,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
/* 345 */
QEMU_CAPS_ARM_MAX_CPU, /* max-arm-cpu type exists */
QEMU_CAPS_BLOCK_FILE_AUTO_READONLY_DYNAMIC, /* the auto-read-only property of block backends for files is dynamic */
QEMU_CAPS_SAVEVM_MONITOR_NODES, /* 'savevm' handles monitor-owned nodes properly */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;

View File

@ -171,6 +171,7 @@
<flag name='ramfb'/>
<flag name='arm-max-cpu'/>
<flag name='blockdev-file-dynamic-auto-read-only'/>
<flag name='savevm-monitor-nodes'/>
<version>4001050</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>61700242</microcodeVersion>

View File

@ -214,6 +214,7 @@
<flag name='vhost-user-vga'/>
<flag name='ramfb'/>
<flag name='blockdev-file-dynamic-auto-read-only'/>
<flag name='savevm-monitor-nodes'/>
<version>4001092</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100242</microcodeVersion>