Commit 14c1f7de authored by Stefan Hajnoczi's avatar Stefan Hajnoczi
Browse files

Merge remote-tracking branch 'quintela/tags/migration/20170518' into staging



migration/next for 20170518

# gpg: Signature made Thu 18 May 2017 06:23:26 PM BST
# gpg:                using RSA key 0xF487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>"
# gpg:                 aka "Juan Quintela <quintela@trasno.org>"
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* quintela/tags/migration/20170518:
  migration: Make savevm.c target independent
  exec: Create include for target_page_size()
  migration: migration.h was not needed
  migration: Remove vmstate.h from migration.h
  migration: Remove qemu-file.h from vmstate.h
  migration: Split vmstate-types.c from vmstate.c
  migration: Move qjson.h to migration/
  migration: Remove migration.h from colo.h
  migration: Export qemu-file-channel.c functions in its own file
  migration: Split migration/channel.c for channel operations
  migration: Create migration/xbzrle.h
  block migration: Allow compile time disable
  migration: Remove old MigrationParams
  migration: Remove use of old MigrationParams
  migration: Create block capability
  hmp: Use visitor api for hmp_migrate_set_parameter()
  postcopy: Require RAMBlocks that are whole pages
  migration: Fix non-multiple of page size migration

Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parents 56821559 46d702b1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -146,7 +146,7 @@ obj-$(CONFIG_KVM) += kvm-all.o
obj-y += memory.o cputlb.o
obj-y += memory_mapping.o
obj-y += dump.o
obj-y += migration/ram.o migration/savevm.o
obj-y += migration/ram.o
LIBS := $(libs_softmmu) $(LIBS)

# Hardware support
+0 −1
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@
#include "trace.h"
#include "qed.h"
#include "qapi/qmp/qerror.h"
#include "migration/migration.h"
#include "sysemu/block-backend.h"

static const AIOCBInfo qed_aiocb_info = {
+11 −0
Original line number Diff line number Diff line
@@ -316,6 +316,7 @@ vte=""
virglrenderer=""
tpm="yes"
libssh2=""
live_block_migration="yes"
numa=""
tcmalloc="no"
jemalloc="no"
@@ -1169,6 +1170,10 @@ for opt do
  ;;
  --enable-libssh2) libssh2="yes"
  ;;
  --disable-live-block-migration) live_block_migration="no"
  ;;
  --enable-live-block-migration) live_block_migration="yes"
  ;;
  --disable-numa) numa="no"
  ;;
  --enable-numa) numa="yes"
@@ -1401,6 +1406,7 @@ disabled with --disable-FEATURE, default is enabled if available:
  libnfs          nfs support
  smartcard       smartcard support (libcacard)
  libusb          libusb (for usb passthrough)
  live-block-migration   Block migration in the main migration stream
  usb-redir       usb network redirection support
  lzo             support of lzo compression library
  snappy          support of snappy compression library
@@ -5216,6 +5222,7 @@ echo "TPM support $tpm"
echo "libssh2 support   $libssh2"
echo "TPM passthrough   $tpm_passthrough"
echo "QOM debugging     $qom_cast_debug"
echo "Live block migration $live_block_migration"
echo "lzo support       $lzo"
echo "snappy support    $snappy"
echo "bzip2 support     $bzip2"
@@ -5782,6 +5789,10 @@ if test "$libssh2" = "yes" ; then
  echo "LIBSSH2_LIBS=$libssh2_libs" >> $config_host_mak
fi

if test "$live_block_migration" = "yes" ; then
  echo "CONFIG_LIVE_BLOCK_MIGRATION=y" >> $config_host_mak
fi

# USB host support
if test "$libusb" = "yes"; then
  echo "HOST_USB=libusb legacy" >> $config_host_mak
+10 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include "qemu/cutils.h"
#include "cpu.h"
#include "exec/exec-all.h"
#include "exec/target_page.h"
#include "tcg.h"
#include "hw/qdev-core.h"
#if !defined(CONFIG_USER_ONLY)
@@ -3443,6 +3444,15 @@ size_t qemu_target_page_size(void)
    return TARGET_PAGE_SIZE;
}

int qemu_target_page_bits(void)
{
    return TARGET_PAGE_BITS;
}

int qemu_target_page_bits_min(void)
{
    return TARGET_PAGE_BITS_MIN;
}
#endif

/*
+19 −4
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@
#include "monitor/qdev.h"
#include "qapi/opts-visitor.h"
#include "qapi/qmp/qerror.h"
#include "qapi/string-input-visitor.h"
#include "qapi/string-output-visitor.h"
#include "qapi/util.h"
#include "qapi-visit.h"
@@ -326,6 +327,10 @@ void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict)
        monitor_printf(mon, "%s: %" PRId64 "\n",
            MigrationParameter_lookup[MIGRATION_PARAMETER_X_CHECKPOINT_DELAY],
            params->x_checkpoint_delay);
        assert(params->has_block_incremental);
        monitor_printf(mon, "%s: %s\n",
            MigrationParameter_lookup[MIGRATION_PARAMETER_BLOCK_INCREMENTAL],
                       params->block_incremental ? "on" : "off");
    }

    qapi_free_MigrationParameters(params);
@@ -1524,8 +1529,10 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
{
    const char *param = qdict_get_str(qdict, "parameter");
    const char *valuestr = qdict_get_str(qdict, "value");
    Visitor *v = string_input_visitor_new(valuestr);
    uint64_t valuebw = 0;
    long valueint = 0;
    int64_t valueint = 0;
    bool valuebool = false;
    Error *err = NULL;
    bool use_int_value = false;
    int i, ret;
@@ -1580,12 +1587,19 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
                p.has_x_checkpoint_delay = true;
                use_int_value = true;
                break;
            case MIGRATION_PARAMETER_BLOCK_INCREMENTAL:
                p.has_block_incremental = true;
                visit_type_bool(v, param, &valuebool, &err);
                if (err) {
                    goto cleanup;
                }
                p.block_incremental = valuebool;
                break;
            }

            if (use_int_value) {
                if (qemu_strtol(valuestr, NULL, 10, &valueint) < 0) {
                    error_setg(&err, "Unable to parse '%s' as an int",
                               valuestr);
                visit_type_int(v, param, &valueint, &err);
                if (err) {
                    goto cleanup;
                }
                /* Set all integers; only one has_FOO will be set, and
@@ -1609,6 +1623,7 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
    }

 cleanup:
    visit_free(v);
    if (err) {
        error_report_err(err);
    }
Loading