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 will 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).
So I use dump-guest-memory only when the guest uses host device
in this patchset.
Note: the patchset for qemu is still queued. Luiz has acked,
but he waits an ACK from Jan and/or Anthony. They are too busy,
and donot reply.
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 (2):
qemu: implement qemu's dump-guest-memory
qemu: try to use qemu's dump-guest-meory when vm uses host device
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_driver.c | 39 +++++++++++++++++++++++++++++++++++++--
src/qemu/qemu_monitor.c | 36 ++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor.h | 13 +++++++++++++
src/qemu/qemu_monitor_json.c | 42 ++++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 7 +++++++
7 files changed, 137 insertions(+), 2 deletions(-)