diff options
author | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2015-12-16 11:47:36 +0000 |
---|---|---|
committer | Timothy Pearson <tpearson@raptorengineering.com> | 2019-11-29 19:28:24 -0600 |
commit | 29bfd3d77b566ea59bf6ee584fd85c789512ba4c (patch) | |
tree | 89fb802e3e38bd5055f4bebd7c40a4b8a251b2e5 | |
parent | 31482f2f04e89f4372637810a5123a7f8b12baa1 (diff) | |
download | hqemu-29bfd3d77b566ea59bf6ee584fd85c789512ba4c.zip hqemu-29bfd3d77b566ea59bf6ee584fd85c789512ba4c.tar.gz |
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>
-rw-r--r-- | docs/qmp-events.txt | 14 | ||||
-rw-r--r-- | migration/ram.c | 4 | ||||
-rw-r--r-- | qapi/event.json | 13 |
3 files changed, 31 insertions, 0 deletions
diff --git a/docs/qmp-events.txt b/docs/qmp-events.txt index d2f1ce4..52eb7e2 100644 --- a/docs/qmp-events.txt +++ b/docs/qmp-events.txt @@ -496,6 +496,20 @@ Example: {"timestamp": {"seconds": 1432121972, "microseconds": 744001}, "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 ---- diff --git a/migration/ram.c b/migration/ram.c index 0490f00..102d1f2 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -27,6 +27,7 @@ */ #include <stdint.h> #include <zlib.h> +#include "qapi-event.h" #include "qemu/bitops.h" #include "qemu/bitmap.h" #include "qemu/timer.h" @@ -682,6 +683,9 @@ static void migration_bitmap_sync(void) num_dirty_pages_period = 0; } s->dirty_sync_count = bitmap_sync_count; + if (migrate_use_events()) { + qapi_event_send_migration_pass(bitmap_sync_count, NULL); + } } /** diff --git a/qapi/event.json b/qapi/event.json index f0cef01..390fd45 100644 --- a/qapi/event.json +++ b/qapi/event.json @@ -255,6 +255,19 @@ '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 # # Emitted when guest executes ACPI _OST method. |