On a Friday in 2021, Peter Krempa wrote:
>Blocking writes ensure that the mirroring converges even when the guest
>is I/O intensive with a fast local storage and slow mirror.
>
>This patchset does it by introducing flags which use the blocking mode
>as it will have performance impact, and for guests which do I/O in
>bursts it might be detrimental to their performance.
>
>One could argue that both the copy job and migration have the
>expectations of actually using the copy so ensuring that it converges
>might be also something we'd want to do by default. This would obviously
>greatly simplify this series, but I didn't want to change the default.
>
>Peter Krempa (17):
> qemu: monitor: Avoid ternary operators in helpers for
> drive/blockdev-mirror
> qemuMonitorJSONHandleShutdown: Use virTristateBoolFromBool
> qemuMonitorJSONEjectMedia: Use a bool directly for constructing JSON
> with 'b' modifier
> qemuMonitorJSONMigrate: Extract flags prior to constructing command
> qemuMonitorJSONGraphicsRelocate: Clean up command argument
> construction
> qemu: monitor: Add support for 'write-blocking' copy mode for
> blockdev-mirror
> include: virDomainBlockCopyFlags: Convert to prefix comments
> virDomainBlockCopy: Introduce VIR_DOMAIN_BLOCK_COPY_SYNCHRONOUS_WRITES
> flag
> qemuDomainBlockCopy: Implement
> VIR_DOMAIN_BLOCK_COPY_SYNCHRONOUS_WRITES
> include: virDomainMigrateFlags: Remove "block alignment" whitespace
> man: virsh: Separate paragrapsh describing distinct flags
> VIR_REQUIRE_FLAG_(GOTO|RET): Add parens around arguments in expansion
> virDomainMigrate: Introduce VIR_MIGRATE_NON_SHARED_SYNCHRONOUS_WRITES
> flag
> qemu: migration: Implement VIR_MIGRATE_NON_SHARED_SYNCHRONOUS_WRITES
> docs: Convert 'migration' doc to RST
> docs: migration: Add a paragraph about non-shared storage migration
> NEWS: Mention synchronous copy job additions
>
> NEWS.rst | 12 +
> docs/manpages/virsh.rst | 45 +-
> docs/meson.build | 2 +-
> docs/migration.html.in | 688 -------------------------------
> docs/migration.rst | 490 ++++++++++++++++++++++
> include/libvirt/libvirt-domain.h | 63 +--
> src/internal.h | 4 +-
> src/libvirt-domain.c | 26 ++
> src/qemu/qemu_driver.c | 17 +-
> src/qemu/qemu_migration.c | 17 +-
> src/qemu/qemu_migration.h | 1 +
> src/qemu/qemu_monitor.c | 10 +-
> src/qemu/qemu_monitor.h | 3 +-
> src/qemu/qemu_monitor_json.c | 67 ++-
> src/qemu/qemu_monitor_json.h | 3 +-
> tests/qemumonitorjsontest.c | 2 +-
> tools/virsh-domain.c | 22 +-
> 17 files changed, 707 insertions(+), 765 deletions(-)
> delete mode 100644 docs/migration.html.in
> create mode 100644 docs/migration.rst
>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Jano