mirror of https://github.com/xemu-project/xemu.git
Migration: Emit event at start of pass
Emit an event each time we sync the dirty bitmap on the source; this helps libvirt use postcopy by giving it a kick when it might be a good idea to start the postcopy. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Message-Id: <1450266458-3178-5-git-send-email-dgilbert@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
parent
6ba996bb45
commit
4addcd4fdc
|
@ -496,6 +496,20 @@ Example:
|
||||||
{"timestamp": {"seconds": 1432121972, "microseconds": 744001},
|
{"timestamp": {"seconds": 1432121972, "microseconds": 744001},
|
||||||
"event": "MIGRATION", "data": {"status": "completed"}}
|
"event": "MIGRATION", "data": {"status": "completed"}}
|
||||||
|
|
||||||
|
MIGRATION_PASS
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Emitted from the source side of a migration at the start of each pass
|
||||||
|
(when it syncs the dirty bitmap)
|
||||||
|
|
||||||
|
Data: None.
|
||||||
|
|
||||||
|
- "pass": An incrementing count (starting at 1 on the first pass)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
{"timestamp": {"seconds": 1449669631, "microseconds": 239225},
|
||||||
|
"event": "MIGRATION_PASS", "data": {"pass": 2}}
|
||||||
|
|
||||||
STOP
|
STOP
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
*/
|
*/
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
|
#include "qapi-event.h"
|
||||||
#include "qemu/bitops.h"
|
#include "qemu/bitops.h"
|
||||||
#include "qemu/bitmap.h"
|
#include "qemu/bitmap.h"
|
||||||
#include "qemu/timer.h"
|
#include "qemu/timer.h"
|
||||||
|
@ -682,6 +683,9 @@ static void migration_bitmap_sync(void)
|
||||||
num_dirty_pages_period = 0;
|
num_dirty_pages_period = 0;
|
||||||
}
|
}
|
||||||
s->dirty_sync_count = bitmap_sync_count;
|
s->dirty_sync_count = bitmap_sync_count;
|
||||||
|
if (migrate_use_events()) {
|
||||||
|
qapi_event_send_migration_pass(bitmap_sync_count, NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -254,6 +254,19 @@
|
||||||
{ 'event': 'MIGRATION',
|
{ 'event': 'MIGRATION',
|
||||||
'data': {'status': 'MigrationStatus'}}
|
'data': {'status': 'MigrationStatus'}}
|
||||||
|
|
||||||
|
##
|
||||||
|
# @MIGRATION_PASS
|
||||||
|
#
|
||||||
|
# Emitted from the source side of a migration at the start of each pass
|
||||||
|
# (when it syncs the dirty bitmap)
|
||||||
|
#
|
||||||
|
# @pass: An incrementing count (starting at 1 on the first pass)
|
||||||
|
#
|
||||||
|
# Since: 2.6
|
||||||
|
##
|
||||||
|
{ 'event': 'MIGRATION_PASS',
|
||||||
|
'data': { 'pass': 'int' } }
|
||||||
|
|
||||||
##
|
##
|
||||||
# @ACPI_DEVICE_OST
|
# @ACPI_DEVICE_OST
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue