]> git.proxmox.com Git - mirror_qemu.git/commit - dump/dump.c
dump: populate guest_phys_blocks
authorLaszlo Ersek <lersek@redhat.com>
Tue, 6 Aug 2013 10:37:10 +0000 (12:37 +0200)
committerLuiz Capitulino <lcapitulino@redhat.com>
Thu, 8 Aug 2013 15:01:46 +0000 (11:01 -0400)
commitc5d7f60f0614250bd925071e25220ce5958f75d0
tree893fa3598476b807559ae2ab76e2db8da433b75c
parent5ee163e8ea2fb6610339f494e039159e08a69066
dump: populate guest_phys_blocks

While the machine is paused, in guest_phys_blocks_append() we register a
one-shot MemoryListener, solely for the initial collection of the valid
guest-physical memory ranges that happens at listener registration time.

For each range that is reported to guest_phys_blocks_region_add(), we
attempt to merge the range with the preceding one.

Ranges can only be joined if they are contiguous in both guest-physical
address space, and contiguous in host virtual address space.

The "maximal" ranges that remain in the end constitute the guest-physical
memory map that the dump will be based on.

Related RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=981582

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
dump.c
include/sysemu/memory_mapping.h
memory_mapping.c