[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] savevm snapshot
From: |
sridhar kulkarni |
Subject: |
[Qemu-devel] savevm snapshot |
Date: |
Tue, 23 Jan 2018 11:23:44 +0000 (UTC) |
I am working on creating a snapshot for ARM based VM running on A7. We don't
use disk images, so to save the snapshot I am passing "-drive if=none,
format=qcow2, file=/home/sridhar/qemu_disk_images/dummy.qcow2" as dummy disk to
save the snapshot.
Then from qemu monitor, I run the "savevm" command. The savevm seems to execute
and return, however I don't see the RAM being copied correctly, and loadvm
fails to restore the VM state.
When I debugged, I can see that in "ram_control_save_page", the condition
highlighted in bold below fails and function returns RAM_SAVE_CONTROL_NOT_SUPP.
Am I missing something here? From the documents available on qemu.org, I can
see that savevm should take care of saving RAM contents as well, and it should
work seamlessly.
Can you help on this?
-Sridhar
| size_t ram_control_save_page(QEMUFile *f, ram_addr_t block_offset, |
| | ram_addr_t offset, size_t size, |
| | uint64_t *bytes_sent) |
| | { |
| | if (f->hooks && f->hooks->save_page) { |
| | int ret = f->hooks->save_page(f, f->opaque, block_offset, |
| | offset, size, bytes_sent); |
| | |
| | if (ret != RAM_SAVE_CONTROL_DELAYED) { |
| | if (bytes_sent && *bytes_sent > 0) { |
| | qemu_update_position(f, *bytes_sent); |
| | } else if (ret < 0) { |
| | qemu_file_set_error(f, ret); |
| | } |
| | } |
| | |
| | return ret; |
| | } |
| | |
| | return RAM_SAVE_CONTROL_NOT_SUPP; |
| | } |
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] savevm snapshot,
sridhar kulkarni <=