[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/12] arch_init: introduce ram_save_local()
From: |
Lei Li |
Subject: |
[Qemu-devel] [PATCH 05/12] arch_init: introduce ram_save_local() |
Date: |
Fri, 26 Jul 2013 04:18:12 +0800 |
Signed-off-by: Lei Li <address@hidden>
---
arch_init.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/arch_init.c b/arch_init.c
index a418071..7eeb52f 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -757,6 +757,38 @@ static int ram_page_save(QEMUFile *f)
return bytes_sent;
}
+static int ram_save_local(QEMUFile *f, void *opaque)
+{
+ uint64_t bytes_sent = 0;
+ uint64_t total_ram_bytes = ram_bytes_total();
+
+ qemu_mutex_lock_ramlist();
+
+ while (total_ram_bytes) {
+ void *ram;
+ MemoryRegion *mr;
+
+ bytes_sent = ram_page_save(f);
+ /* No more ram pages. */
+ if (bytes_sent == 0) {
+ return bytes_sent;
+ }
+
+ mr = last_block_local->mr;
+ ram = memory_region_get_ram_ptr(mr) + last_offset_local;
+
+ /* DONTNEED the ram page that has already copied. */
+ qemu_madvise(ram, bytes_sent, QEMU_MADV_DONTNEED);
+ total_ram_bytes -= bytes_sent;
+ }
+
+ qemu_mutex_unlock_ramlist();
+
+ qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
+
+ return bytes_sent;
+}
+
static int load_xbzrle(QEMUFile *f, ram_addr_t addr, void *host)
{
int ret, rc = 0;
--
1.7.7.6
- [Qemu-devel] [PATCH 0/12 RFC v2] Localhost migration, Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 04/12] arch_init: introduce ram_page_save(), Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 03/12] rename is_active to is_block_active, Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 02/12] savevm: export qemu_save_device_state(), Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 05/12] arch_init: introduce ram_save_local(),
Lei Li <=
- [Qemu-devel] [PATCH 06/12] arch_init: add save_local_setup to savevm_ram_handlers, Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 07/12] savevm: introduce qemu_savevm_local(), Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 08/12] savevm: adjust is_ram check in register_savevm_live(), Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 01/12] migration: export MIG_STATE_xxx flags, Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 12/12] hmp: add hmp_localhost_migration interface, Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 10/12] migration-local: implementation of incoming part, Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 09/12] migration-local: implementation of outgoing part, Lei Li, 2013/07/25
- [Qemu-devel] [PATCH 11/12] migration-local: add option to commandline for incoming-local, Lei Li, 2013/07/25
- Re: [Qemu-devel] [PATCH 0/12 RFC v2] Localhost migration, Paolo Bonzini, 2013/07/26