summaryrefslogtreecommitdiffstats
path: root/memory_mapping.c
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2016-02-18 13:16:52 +0800
committerTimothy Pearson <tpearson@raptorengineering.com>2019-11-29 19:45:30 -0600
commit0333ae80eb4f7cca346b4b7e28dd1797f22bf6a2 (patch)
tree609420df97a2b9ab1c568af75de1340fc6eda3ee /memory_mapping.c
parent2f62085d5b22fed7a21f237ce7f6d21f33307eef (diff)
downloadhqemu-0333ae80eb4f7cca346b4b7e28dd1797f22bf6a2.zip
hqemu-0333ae80eb4f7cca346b4b7e28dd1797f22bf6a2.tar.gz
dump-guest-memory: add "detach" support
If "detach" is provided, one thread is created to do the dump work, while main thread will return immediately. For each GuestPhysBlock, adding one more field "mr" to points to MemoryRegion that it belongs, also ref the mr before use. Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Message-Id: <1455772616-8668-8-git-send-email-peterx@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'memory_mapping.c')
-rw-r--r--memory_mapping.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/memory_mapping.c b/memory_mapping.c
index 04db3ac..c8855de 100644
--- a/memory_mapping.c
+++ b/memory_mapping.c
@@ -178,6 +178,7 @@ void guest_phys_blocks_free(GuestPhysBlockList *list)
QTAILQ_FOREACH_SAFE(p, &list->head, next, q) {
QTAILQ_REMOVE(&list->head, p, next);
+ memory_region_unref(p->mr);
g_free(p);
}
list->num = 0;
@@ -241,6 +242,8 @@ static void guest_phys_blocks_region_add(MemoryListener *listener,
block->target_start = target_start;
block->target_end = target_end;
block->host_addr = host_addr;
+ block->mr = section->mr;
+ memory_region_ref(section->mr);
QTAILQ_INSERT_TAIL(&g->list->head, block, next);
++g->list->num;
OpenPOWER on IntegriCloud