xen: Introduce xen_modified_memory.

This function is to be used during live migration. Every write access to the
guest memory should call this funcion so the Xen tools knows which pages are
dirty.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
This commit is contained in:
Anthony PERARD 2012-10-03 13:48:45 +00:00 committed by Stefano Stabellini
parent 39f42439d0
commit 910b38e4dc
3 changed files with 26 additions and 0 deletions

View file

@ -1228,3 +1228,24 @@ void xen_shutdown_fatal_error(const char *fmt, ...)
/* destroy the domain */
qemu_system_shutdown_request();
}
void xen_modified_memory(ram_addr_t start, ram_addr_t length)
{
if (unlikely(xen_in_migration)) {
int rc;
ram_addr_t start_pfn, nb_pages;
if (length == 0) {
length = TARGET_PAGE_SIZE;
}
start_pfn = start >> TARGET_PAGE_BITS;
nb_pages = ((start + length + TARGET_PAGE_SIZE - 1) >> TARGET_PAGE_BITS)
- start_pfn;
rc = xc_hvm_modified_memory(xen_xc, xen_domid, start_pfn, nb_pages);
if (rc) {
fprintf(stderr,
"%s failed for "RAM_ADDR_FMT" ("RAM_ADDR_FMT"): %i, %s\n",
__func__, start, nb_pages, rc, strerror(-rc));
}
}
}