qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 87d2f8: arch_init/ram_load: add error message


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 87d2f8: arch_init/ram_load: add error message for block le...
Date: Thu, 27 Jun 2013 11:00:09 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 87d2f8254347879f80b3a834834a6b934dea5ecc
      
https://github.com/qemu/qemu/commit/87d2f8254347879f80b3a834834a6b934dea5ecc
  Author: Alon Levy <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M arch_init.c

  Log Message:
  -----------
  arch_init/ram_load: add error message for block length mismatch

Makes it easier to debug situations where the source and target have
different ram blocks in a device and migration fails due to that, for
instance a BAR size change on a PCI device.

Signed-off-by: Alon Levy <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 9ef051e5536b6368a1076046ec6c4ec4ac12b5c6
      
https://github.com/qemu/qemu/commit/9ef051e5536b6368a1076046ec6c4ec4ac12b5c6
  Author: Peter Lieven <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M arch_init.c

  Log Message:
  -----------
  Revert "migration: do not sent zero pages in bulk stage"

Not sending zero pages breaks migration if a page is zero
at the source but not at the destination. This can e.g. happen
if different BIOS versions are used at source and destination.
It has also been reported that migration on pseries is completely
broken with this patch.

This effectively reverts commit f1c72795af573b24a7da5eb52375c9aba8a37972.

Conflicts:

        arch_init.c

Signed-off-by: Peter Lieven <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 211ea74022f51164a7729030b28eec90b6c99a08
      
https://github.com/qemu/qemu/commit/211ea74022f51164a7729030b28eec90b6c99a08
  Author: Peter Lieven <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M arch_init.c

  Log Message:
  -----------
  migration: do not overwrite zero pages

on incoming migration do not memset pages to zero if they already read as zero.
this will allocate a new zero page and consume memory unnecessarily. even
if we madvise a MADV_DONTNEED later this will only deallocate the memory
asynchronously.

Signed-off-by: Peter Lieven <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: f4abc9d621823b14a6cd508c66c1ecb21f96349e
      
https://github.com/qemu/qemu/commit/f4abc9d621823b14a6cd508c66c1ecb21f96349e
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    A docs/rdma.txt

  Log Message:
  -----------
  rdma: add documentation

docs/rdma.txt contains full documentation,
wiki links, github url and contact information.

Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Chegu Vinod <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 2b0ce0797d6bfb13ebefe010da86abced0b7a9b3
      
https://github.com/qemu/qemu/commit/2b0ce0797d6bfb13ebefe010da86abced0b7a9b3
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M arch_init.c
    M include/migration/migration.h
    M include/migration/qemu-file.h
    M savevm.c

  Log Message:
  -----------
  rdma: introduce qemu_update_position()

RDMA writes happen asynchronously, and thus the performance accounting
also needs to be able to occur asynchronously. This allows anybody
to call into savevm.c to update both f->pos as well as into arch_init.c
to update the acct_info structure with up-to-date values when
the RDMA transfer actually completes.

Reviewed-by: Juan Quintela <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 9f05d0c3a4f9e8fcb13ed09cc350af45a627809a
      
https://github.com/qemu/qemu/commit/9f05d0c3a4f9e8fcb13ed09cc350af45a627809a
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M include/block/coroutine.h
    M qemu-coroutine-io.c
    M savevm.c

  Log Message:
  -----------
  rdma: export yield_until_fd_readable()

The RDMA event channel can be made non-blocking just like a TCP
socket. Exporting this function allows us to yield so that the
QEMU monitor remains available.

Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Chegu Vinod <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 7e114f8cf24a01893226e3a4d22a288125515cfd
      
https://github.com/qemu/qemu/commit/7e114f8cf24a01893226e3a4d22a288125515cfd
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M hmp.c
    M include/migration/migration.h
    M migration.c
    M qapi-schema.json

  Log Message:
  -----------
  rdma: export throughput w/ MigrationStats QMP

This exposes throughput (in megabits/sec) through QMP.

Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Chegu Vinod <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: bc1256f7f187cc7d491bfe3861249a60873adbbc
      
https://github.com/qemu/qemu/commit/bc1256f7f187cc7d491bfe3861249a60873adbbc
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M include/migration/qemu-file.h
    M savevm.c

  Log Message:
  -----------
  rdma: introduce qemu_file_mode_is_not_valid()

QEMUFileRDMA also has read and write modes. This function is now
shared to reduce code duplication.

Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Chegu Vinod <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: be903b2ae7ca750bde2549432c5536087436cf49
      
https://github.com/qemu/qemu/commit/be903b2ae7ca750bde2549432c5536087436cf49
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M include/migration/qemu-file.h
    M savevm.c

  Log Message:
  -----------
  rdma: export qemu_fflush()

RDMA uses this to flush the control channel before sending its
own message to handle page registrations.

Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Chegu Vinod <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: bd2fa51fcdba3408f308df1b08fae04053ecdee5
      
https://github.com/qemu/qemu/commit/bd2fa51fcdba3408f308df1b08fae04053ecdee5
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M exec.c
    M include/exec/cpu-common.h

  Log Message:
  -----------
  rdma: introduce qemu_ram_foreach_block()

This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.

Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Chegu Vinod <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 43487c678d6e4e7182bfa70d2bc75422578782aa
      
https://github.com/qemu/qemu/commit/43487c678d6e4e7182bfa70d2bc75422578782aa
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M include/migration/migration.h
    M include/migration/qemu-file.h
    M savevm.c

  Log Message:
  -----------
  rdma: new QEMUFileOps hooks

These are the prototypes and implementation of new hooks that
RDMA takes advantage of to perform dynamic page registration.

An optional hook is also introduced for a custom function
to be able to override the default save_page function.

Also included are the prototypes and accessor methods used by
arch_init.c which invoke funtions inside savevm.c to call out
to the hooks that may or may not have been overridden
inside of QEMUFileOps.

Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Chegu Vinod <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 60d9222c8f50c3e5dd3df9ee84ddd1d1c4b35389
      
https://github.com/qemu/qemu/commit/60d9222c8f50c3e5dd3df9ee84ddd1d1c4b35389
  Author: Michael R. Hines <address@hidden>
  Date:   2013-06-26 (Wed, 26 Jun 2013)

  Changed paths:
    M include/migration/migration.h
    M migration.c
    M qapi-schema.json

  Log Message:
  -----------
  rdma: introduce capability x-rdma-pin-all

This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.

For example, using an 8GB RAM virtual machine with all 8GB of memory in
active use and the VM itself is completely idle using a 40 gbps infiniband link:

1. x-rdma-pin-all disabled total time: approximately 7.5 seconds @ 9.5 Gbps
2. x-rdma-pin-all enabled total time: approximately 4 seconds @ 26 Gbps

These numbers would of course scale up to whatever size virtual machine
you have to migrate using RDMA.

Enabling this feature does *not* have any measurable affect on
migration *downtime*. This is because, without this feature, all of the
memory will have already been registered already in advance during
the bulk round and does not need to be re-registered during the successive
iteration rounds.

Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Chegu Vinod <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Tested-by: Chegu Vinod <address@hidden>
Tested-by: Michael R. Hines <address@hidden>
Signed-off-by: Michael R. Hines <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: c394ace828a559be13ec0bde15b476970f186dad
      
https://github.com/qemu/qemu/commit/c394ace828a559be13ec0bde15b476970f186dad
  Author: Anthony Liguori <address@hidden>
  Date:   2013-06-27 (Thu, 27 Jun 2013)

  Changed paths:
    M arch_init.c
    A docs/rdma.txt
    M exec.c
    M hmp.c
    M include/block/coroutine.h
    M include/exec/cpu-common.h
    M include/migration/migration.h
    M include/migration/qemu-file.h
    M migration.c
    M qapi-schema.json
    M qemu-coroutine-io.c
    M savevm.c

  Log Message:
  -----------
  Merge remote-tracking branch 'quintela/migration.next' into staging

# By Michael R. Hines (9) and others
# Via Juan Quintela
* quintela/migration.next:
  rdma: introduce capability x-rdma-pin-all
  rdma: new QEMUFileOps hooks
  rdma: introduce qemu_ram_foreach_block()
  rdma: export qemu_fflush()
  rdma: introduce qemu_file_mode_is_not_valid()
  rdma: export throughput w/ MigrationStats QMP
  rdma: export yield_until_fd_readable()
  rdma: introduce qemu_update_position()
  rdma: add documentation
  migration: do not overwrite zero pages
  Revert "migration: do not sent zero pages in bulk stage"
  arch_init/ram_load: add error message for block length mismatch

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


Compare: https://github.com/qemu/qemu/compare/3e5087329489...c394ace828a5

reply via email to

[Prev in Thread] Current Thread [Next in Thread]