1. 19 2月, 2018 6 次提交
  2. 09 2月, 2018 2 次提交
  3. 06 2月, 2018 1 次提交
    • J
      qemu: Convert jobInfo stats into a union · 93412bb8
      John Ferlan 提交于
      Convert the stats field in _qemuDomainJobInfo to be a union. This
      will allow for the collection of various different types of stats
      in the same field.
      
      When starting the async job that will end up being used for stats,
      set the @statsType value appropriately. The @mirrorStats are
      special and are used with stats.mig in order to generate the
      returned job stats for a migration.
      
      Using the NONE should avoid the possibility that some random
      async job would try to return stats for migration even though
      a migration is not in progress.
      
      For now a migration and a save job will use the same statsType
      Reviewed-by: NJiri Denemark <jdenemar@redhat.com>
      93412bb8
  4. 02 2月, 2018 1 次提交
    • P
      qemu: migration: Refresh device information after transferring state · 93db7eea
      Peter Krempa 提交于
      In my first approach in 4b480d10 I overlooked the comment in
      qemuMigrationRunIncoming stating that during actual migration the
      qemuMigrationRunIncoming does not wait until the migration is complete
      but rather offloads that to the Finish phase of migration.
      
      This means that during actual migration qemuProcessRefreshState was
      called prior to qemu actually transferring the full state and thus the
      queries did not get the correct information. The approach worked only
      for restore, where we wait for the migration to finish during qemu
      startup.
      
      Fix the issue by calling qemuProcessRefreshState both from
      qemuProcessStart if there's no incomming migration and from
      qemuMigrationFinish so that the code actually works as expected.
      93db7eea
  5. 19 1月, 2018 1 次提交
  6. 12 1月, 2018 1 次提交
    • J
      qemu: Fix type of a completed job · e8784e78
      Jiri Denemark 提交于
      Libvirt 3.7.0 and earlier libvirt reported a migration job as completed
      immediately after QEMU finished sending migration data at which point
      migration was not really complete yet. Commit v3.7.0-29-g3f2d6d82
      fixed this, but caused a regression in reporting statistics for
      completed jobs which started reporting the job as still running. This
      happened because the completed job statistics including the job status
      are copied from the running job before we finally mark it as completed.
      
      Let's make sure QEMU_DOMAIN_JOB_STATUS_COMPLETED is always set in the
      completed job info even when the job has not finished yet.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1523036Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
      e8784e78
  7. 06 12月, 2017 1 次提交
  8. 03 11月, 2017 2 次提交
    • A
      Remove backslash alignment attempts · 3e7db8d3
      Andrea Bolognani 提交于
      Right-aligning backslashes when defining macros or using complex
      commands in Makefiles looks cute, but as soon as any changes is
      required to the code you end up with either distractingly broken
      alignment or unnecessarily big diffs where most of the changes
      are just pushing all backslashes a few characters to one side.
      
      Generated using
      
        $ git grep -El '[[:blank:]][[:blank:]]\\$' | \
          grep -E '*\.([chx]|am|mk)$$' | \
          while read f; do \
            sed -Ei 's/[[:blank:]]*[[:blank:]]\\$/ \\/g' "$f"; \
          done
      Signed-off-by: NAndrea Bolognani <abologna@redhat.com>
      3e7db8d3
    • J
      qemu: Rename TLS related migration parameters · af1d2fe2
      Jiri Denemark 提交于
      The parameters used "migrate" prefix which is pretty redundant and
      qemuMonitorMigrationParams structure is our internal representation of
      QEMU migration parameters and it is supposed to use names which match
      QEMU names.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      Reviewed-by: NJohn Ferlan <jferlan@redhat.com>
      af1d2fe2
  9. 26 10月, 2017 2 次提交
    • J
      qemu: Enabled pause-before-switchover migration capability · 32c29f10
      Jiri Denemark 提交于
      QEMU identified a race condition between the device state serialization
      and the end of storage migration. Both QEMU and libvirt needs to be
      updated to fix this.
      
      Our migration work flow is modified so that after starting the migration
      we to wait for QEMU to enter "pre-switchover", "postcopy-active", or
      "completed" state. Once there, we cancel all block jobs as usual. But if
      QEMU is in "pre-switchover", we need to resume the migration afterwards
      and wait again for the real end (either "postcopy-active" or
      "completed" state).
      
      Old QEMU will just enter either "postcopy-active" or "completed"
      directly, which is still correctly handled even by new libvirt. The
      "pre-switchover" state will only be entered if QEMU supports it and the
      pause-before-switchover capability was enabled. Thus all combinations of
      libvirt and QEMU will work, but only new QEMU with new libvirt will
      avoid the race condition.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      32c29f10
    • J
      qemu: Add pause-before-switchover migration capability · 6addde24
      Jiri Denemark 提交于
      This new capability enables a pause before device state serialization so
      that we can finish all block jobs without racing with the end of the
      migration. The pause is indicated by "pre-switchover" state. Once we're
      done QEMU enters "device" migration state.
      
      This patch just defines the new capability and QEMU migration states and
      their mapping to our job states.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      6addde24
  10. 23 10月, 2017 7 次提交
  11. 20 10月, 2017 1 次提交
  12. 19 10月, 2017 1 次提交
    • P
      qemu: send allowReboot in migration cookie · e859da6f
      Pavel Hrdina 提交于
      We need to send allowReboot in the migration cookie to ensure the same
      behavior of the virDomainSetLifecycleAction() API on the destination.
      
      Consider this scenario:
      
          1. On the source the domain is started with:
              <on_poweroff>destroy</on_poweroff>
              <on_reboot>restart</on_reboot>
              <on_crash>destroy</on_crash>
      
          2. User calls an API to set "destroy" for <on_reboot>:
              <on_poweroff>destroy</on_poweroff>
              <on_reboot>destroy</on_reboot>
              <on_crash>destroy</on_crash>
      
          3. The guest is migrated to a different host
      
          4a. Without the allowReboot in the migration cookie the QEMU
              process on destination would be started with -no-reboot
              which would prevent using the virDomainSetLifecycleAction() API
              for the rest of the guest lifetime.
      
          4b. With the allowReboot in the migration cookie the QEMU process
              on destination is started without -no-reboot like it was started
              on the source host and the virDomainSetLifecycleAction() API
              continues to work.
      
      The following patch adds a QEMU implementation of the
      virDomainSetLifecycleAction() API and that implementation disallows
      using the API if all actions are set to "destroy" because we add
      "-no-reboot" on the QEMU command line.  Changing the lifecycle action
      is in this case pointless because the QEMU process is always terminated.
      Reviewed-by: NJohn Ferlan <jferlan@redhat.com>
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      e859da6f
  13. 17 10月, 2017 1 次提交
  14. 05 10月, 2017 2 次提交
  15. 25 9月, 2017 1 次提交
  16. 14 9月, 2017 1 次提交
  17. 07 9月, 2017 9 次提交