Commit 3d0bf8df authored by Peter Maydell's avatar Peter Maydell
Browse files

Merge remote-tracking branch 'remotes/dgilbert/tags/pull-migration-20170710a' into staging



Migration pull 2017-07-10

# gpg: Signature made Mon 10 Jul 2017 18:04:57 BST
# gpg:                using RSA key 0x0516331EBC5BFDE7
# gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 45F5 C71B 4A0C B7FB 977A  9FA9 0516 331E BC5B FDE7

* remotes/dgilbert/tags/pull-migration-20170710a:
  migration: Make compression_threads use save/load_setup/cleanup()
  migration: Convert ram to use new load_setup()/load_cleanup()
  migration: Create load_setup()/cleanup() methods
  migration: Rename cleanup() to save_cleanup()
  migration: Rename save_live_setup() to save_setup()
  doc: update TYPE_MIGRATION documents
  doc: add item for "-M enforce-config-section"
  vl: move global property, migrate init earlier
  migration: fix handling for --only-migratable

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parents 6b06e3e4 f0afa331
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1945,7 +1945,7 @@ static int htab_load(QEMUFile *f, void *opaque, int version_id)
    return 0;
}

static void htab_cleanup(void *opaque)
static void htab_save_cleanup(void *opaque)
{
    sPAPRMachineState *spapr = opaque;

@@ -1953,10 +1953,10 @@ static void htab_cleanup(void *opaque)
}

static SaveVMHandlers savevm_htab_handlers = {
    .save_live_setup = htab_save_setup,
    .save_setup = htab_save_setup,
    .save_live_iterate = htab_save_iterate,
    .save_live_complete_precopy = htab_save_complete,
    .cleanup = htab_cleanup,
    .save_cleanup = htab_save_cleanup,
    .load_state = htab_load,
};

+0 −1
Original line number Diff line number Diff line
@@ -53,7 +53,6 @@ bool migration_has_finished(MigrationState *);
bool migration_has_failed(MigrationState *);
/* ...and after the device transmission */
bool migration_in_postcopy_after_devices(MigrationState *);
void migration_only_migratable_set(void);
void migration_global_dump(Monitor *mon);

#endif
+4 −2
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ typedef struct SaveVMHandlers {
    /* This runs inside the iothread lock.  */
    SaveStateHandler *save_state;

    void (*cleanup)(void *opaque);
    void (*save_cleanup)(void *opaque);
    int (*save_live_complete_postcopy)(QEMUFile *f, void *opaque);
    int (*save_live_complete_precopy)(QEMUFile *f, void *opaque);

@@ -33,12 +33,14 @@ typedef struct SaveVMHandlers {
    int (*save_live_iterate)(QEMUFile *f, void *opaque);

    /* This runs outside the iothread lock!  */
    int (*save_live_setup)(QEMUFile *f, void *opaque);
    int (*save_setup)(QEMUFile *f, void *opaque);
    void (*save_live_pending)(QEMUFile *f, void *opaque,
                              uint64_t threshold_size,
                              uint64_t *non_postcopiable_pending,
                              uint64_t *postcopiable_pending);
    LoadStateHandler *load_state;
    int (*load_setup)(QEMUFile *f, void *opaque);
    int (*load_cleanup)(void *opaque);
} SaveVMHandlers;

int register_savevm_live(DeviceState *dev,
+2 −2
Original line number Diff line number Diff line
@@ -1008,12 +1008,12 @@ static bool block_is_active(void *opaque)
}

static SaveVMHandlers savevm_block_handlers = {
    .save_live_setup = block_save_setup,
    .save_setup = block_save_setup,
    .save_live_iterate = block_save_iterate,
    .save_live_complete_precopy = block_save_complete,
    .save_live_pending = block_save_pending,
    .load_state = block_load,
    .cleanup = block_migration_cleanup,
    .save_cleanup = block_migration_cleanup,
    .is_active = block_is_active,
};

+1 −1
Original line number Diff line number Diff line
@@ -350,7 +350,7 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
    /* Disable block migration */
    migrate_set_block_enabled(false, &local_err);
    qemu_savevm_state_header(fb);
    qemu_savevm_state_begin(fb);
    qemu_savevm_state_setup(fb);
    qemu_mutex_lock_iothread();
    qemu_savevm_state_complete_precopy(fb, false, false);
    qemu_mutex_unlock_iothread();
Loading