All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org, chegu_vinod@hp.com
Subject: [Qemu-devel] [RFC v2] Migration thread
Date: Fri, 07 Sep 2012 18:23:36 +0200	[thread overview]
Message-ID: <87a9x1ls3b.fsf@elfo.mitica> (raw)


Hi

here is v2 of the migration thread series.  There is still some "issues"
with locking in the error paths (they are at 54 patches now).

Changes from v1:
- migration stats series are included
- migration bitmap sync trace-events to know how long it takes
- file->last_error use almost removed
  reworked functions to return real error codes and work with that.
  Some more work needed here.
- new savevm for live migration pending method.  see last commit for
details.

Please test and comment.

Later, Juan.

The following changes since commit 6e4c0d1f03d6ab407509c32fab7cb4b8230f57ff:

  hw/pl110: Fix spelling of 'palette' (2012-09-06 17:04:33 +0200)

are available in the git repository at:

  http://repo.or.cz/r/qemu/quintela.git migration-thread-v2

for you to fetch changes up to 688feac0fbc287920dff537ed13fb8483c064f7f:

  savem: Add calculating a new save_live migration method: pending (2012-09-07 14:00:35 +0200)

----------------------------------------------------------------
Juan Quintela (49):
      buffered_file: g_realloc() can't fail
      fix migration sync
      migration: store end_time in a local variable
      migration: print total downtime for final phase of migration
      migration: rename expected_time to expected_downtime
      migration: export migrate_get_current()
      migration: print expected downtime in info migrate
      savevm: Factorize ram globals reset in its own function
      ram: introduce migration_bitmap_set_dirty()
      ram: Introduce migration_bitmap_test_and_reset_dirty()
      ram: Export last_ram_offset()
      ram: introduce migration_bitmap_sync()
      ram: create trace event for migration sync bitmap
      Separate migration bitmap
      migration: Add dirty_pages_rate to query migrate output
      buffered_file: rename opaque to migration_state
      buffered_file: opaque is MigrationState
      buffered_file: unfold migrate_fd_put_buffer
      buffered_file: unfold migrate_fd_put_ready
      buffered_file: unfold migrate_fd_put_buffer
      buffered_file: unfold migrate_fd_put_buffer
      buffered_file: We can access directly to bandwidth_limit
      buffered_file: callers of buffered_flush() already check for errors
      buffered_file: make buffered_flush return the error code
      migration: make migrate_fd_wait_for_unfreeze() return errors
      savevm: unexport qemu_fflush
      viritio-net: use qemu_get_buffer() in a temp buffer
      savevm: Remove qemu_fseek()
      savevm: make qemu_fflush() return an error code
      savevm: unfold qemu_fclose_internal()
      savevm: unexport qemu_ftell()
      savevm: make qemu_fill_buffer() be consistent
      savevm: Only qemu_fflush() can generate errors
      buffered_file: buffered_put_buffer() don't need to set last_error
      block-migration: make flush_blks() return errors
      block-migration:  Switch meaning of return value
      block-migration: handle errors with the return codes correctly
      savevm: un-export qemu_file_set_error()
      savevm: make qemu_file_put_notify() return errors
      buffered_file: Move from using a timer to use a thread
      migration: make qemu_fopen_ops_buffered() return void
      migration: stop all cpus correctly
      migration: make writes blocking
      migration: remove unfreeze logic
      migration: take finer locking
      buffered_file: Unfold the trick to restart generating migration data
      buffered_file: don't flush on put buffer
      buffered_file: unfold buffered_append in buffered_put_buffer
      savem: Add calculating a new save_live migration method: pending

Paolo Bonzini (2):
      split MRU ram list
      BufferedFile: append, then flush

Umesh Deshpande (2):
      add a version number to ram_list
      protect the ramlist with a separate mutex

 arch_init.c       | 174 ++++++++++++++++++++++++++++++++------------
 block-migration.c | 100 +++++++++----------------
 buffered_file.c   | 213 +++++++++++++++++++++---------------------------------
 buffered_file.h   |  12 +--
 cpu-all.h         |  17 ++++-
 exec-obsolete.h   |  10 ---
 exec.c            |  45 ++++++++++--
 hmp.c             |  12 +++
 hw/virtio-net.c   |   4 +-
 migration-exec.c  |   2 -
 migration-fd.c    |   6 --
 migration-tcp.c   |   2 +-
 migration-unix.c  |   2 -
 migration.c       | 151 +++++++++++++++++++-------------------
 migration.h       |  10 +++
 qapi-schema.json  |  18 ++++-
 qemu-file.h       |  11 ---
 qmp-commands.hx   |   9 +++
 savevm.c          | 144 ++++++++++++++++++------------------
 sysemu.h          |   1 +
 trace-events      |   4 +
 vmstate.h         |   1 +
 22 files changed, 498 insertions(+), 450 deletions(-)

             reply	other threads:[~2012-09-07 16:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-07 16:23 Juan Quintela [this message]
2012-09-07 17:08 ` [Qemu-devel] [RFC v2] Migration thread Paolo Bonzini
2012-09-07 19:52   ` Juan Quintela
2012-09-07 20:29     ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a9x1ls3b.fsf@elfo.mitica \
    --to=quintela@redhat.com \
    --cc=chegu_vinod@hp.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.