Currently, we use migrate to dump guest's memory. There is one
restriction in migrate command: the device's status should be
stored in qemu because the device's status should be passed to
target machine.
If we passthrough a host device to guest, the device's status
is stored in the real device. So migrate command will fail.
We usually use dump when guest is panicked. So there is no need
to store device's status in the vmcore.
qemu have a new monitor command dump-guest-memory to dump
guest memory, but it doesn't support async now(it will support
later when the common async API is implemented).
Changes from v4 to v5:
1. address Martin Kletzander's comment
Changes from v3 to v4:
1. allow the user to specify the core file's format
Changes from v2 to v3:
1. qemu supports the fd that is associated with a pipe, socket, or FIFO.
So pass a pipe fd to qemu and O_DIRECT can work now.
Change from v1 to v2:
1. remove the implemention for text mode.
Wen Congyang (3):
qemu: implement qemu's dump-guest-memory
qemu: allow the client to choose the vmcore's format
virsh: allow the user to specify vmcore's format
include/libvirt/libvirt.h.in | 1 +
src/qemu/qemu_capabilities.c | 5 +++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_driver.c | 60 ++++++++++++++++++++++++++++++++---------
src/qemu/qemu_monitor.c | 37 ++++++++++++++++++++++++++
src/qemu/qemu_monitor.h | 12 ++++++++
src/qemu/qemu_monitor_json.c | 34 +++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 6 ++++
tools/virsh.c | 3 ++
tools/virsh.pod | 5 +++-
12 files changed, 152 insertions(+), 14 deletions(-)