Re: [Qemu-devel] [PATCH 00/19] Kemari for KVM v0.2.1

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

 



Oops.
Some patches were missing.  Will resend.

Yoshi

2010/12/24 Yoshiaki Tamura <tamura.yoshiaki@xxxxxxxxxxxxx>:
> Hi,
>
> This patch series is a revised version of Kemari for KVM, which
> applied comments for the previous post.  The current code is based on
> qemu.git 9ed5726c043958359b0f1fa44ab3e4f25f9d9a47.
>
> The changes from v0.2 -> v0.2.1 are:
>
>
> - Move event-tap to net/block layer and use stubs (Blue, Paul, MST, Kevin)
> - Tap bdrv_aio_flush (Marcelo)
> - Remove multiwrite interface in event-tap (Stefan)
> - Fix event-tap to use pio/mmio to replay both net/block (Stefan)
> - Improve error handling in event-tap (Stefan)
> - Fix leak in event-tap (Stefan)
> - Revise virtio last_avail_idx manipulation (MST)
> - Clean up migration.c hook (Marcelo)
> - Make deleting change state handler robust (Isaku, Anthony)
>
> Note that Making iov save/load common (Stefan) was no good becase of
> compile issue with ram_addr_t.
>
> The changes from v0.1.1 -> v0.2 are:
>
> - Introduce a queue in event-tap to make VM sync live.
> - Change transaction receiver to a state machine for async receiving.
> - Replace net/block layer functions with event-tap proxy functions.
> - Remove dirty bitmap optimization for now.
> - convert DPRINTF() in ft_trans_file to trace functions.
> - convert fprintf() in ft_trans_file to error_report().
> - improved error handling in ft_trans_file.
> - add a tmp pointer to qemu_del_vm_change_state_handler.
>
> The changes from v0.1 -> v0.1.1 are:
>
> - events are tapped in net/block layer instead of device emulation layer.
> - Introduce a new option for -incoming to accept FT transaction.
>
> - Removed writev() support to QEMUFile and FdMigrationState for now.
>  I would post this work in a different series.
>
> - Modified virtio-blk save/load handler to send inuse variable to
>  correctly replay.
>
> - Removed configure --enable-ft-mode.
> - Removed unnecessary check for qemu_realloc().
>
> The first 6 patches modify several functions of qemu to prepare
> introducing Kemari specific components.
>
> The next 6 patches are the components of Kemari.  They introduce
> event-tap and the FT transaction protocol file based on buffered file.
> The design document of FT transaction protocol can be found at,
> http://wiki.qemu.org/images/b/b1/Kemari_sender_receiver_0.5a.pdf
>
> Then the following 2 patches modifies net/block layer functions with
> event-tap functions.  Please note that if Kemari is off, event-tap
> will just passthrough, and there is most no intrusion to exisiting
> functions including normal live migration.
>
> Finally, the migration layer are modified to support Kemari in the
> last 3 patches.  Again, there shouldn't be any affection if a user
> doesn't specify Kemari specific options.  The transaction is now async
> on both sender and receiver side.  The sender side respects the
> max_downtime to decide when to switch from async to sync mode.
>
> The repository contains all patches I'm sending with this message.
> For those who want to try, please pull the following repository.  It
> also includes dirty bitmap optimization which aren't ready for posting
> yet.  To remove the dirty bitmap optimization, please look at HEAD~7
> of the tree.  Also, please note that it's based on a bit older version
> of qemu.git because of testing.  There aren't major conflicts with the
> patch series posted.
>
> git://kemari.git.sourceforge.net/gitroot/kemari/kemari
>
> Happy Holidays!
>
> Yoshi
>
> Yoshiaki Tamura (19):
>  Make QEMUFile buf expandable, and introduce qemu_realloc_buffer() and
>    qemu_clear_buffer().
>  Introduce read() to FdMigrationState.
>  Introduce skip_header parameter to qemu_loadvm_state().
>  qemu-char: export socket_set_nodelay().
>  vl.c: add deleted flag for deleting the handler.
>  virtio: update last_avail_idx when inuse is decreased.
>  Introduce fault tolerant VM transaction QEMUFile and ft_mode.
>  savevm: introduce util functions to control ft_trans_file from savevm
>    layer.
>  Introduce event-tap.
>  Call init handler of event-tap at main() in vl.c.
>  ioport: insert event_tap_ioport() to ioport_write().
>  Insert event_tap_mmio() to cpu_physical_memory_rw() in exec.c.
>  net: insert event-tap to qemu_send_packet() and
>    qemu_sendv_packet_async().
>  block: insert event-tap to bdrv_aio_writev() and bdrv_aio_flush().
>  savevm: introduce qemu_savevm_trans_{begin,commit}.
>  migration: introduce migrate_ft_trans_{put,get}_ready(), and modify
>    migrate_fd_put_ready() when ft_mode is on.
>  migration-tcp: modify tcp_accept_incoming_migration() to handle
>    ft_mode, and add a hack not to close fd when ft_mode is enabled.
>  Introduce -k option to enable FT migration mode (Kemari).
>  migration: add a parser to accept FT migration incoming mode.
>
>  Makefile.objs   |    1 +
>  Makefile.target |    1 +
>  block.c         |   11 +
>  event-tap.c     |  806 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  event-tap.h     |   42 +++
>  exec.c          |    4 +
>  ft_trans_file.c |  606 +++++++++++++++++++++++++++++++++++++++++
>  ft_trans_file.h |   72 +++++
>  hmp-commands.hx |    7 +-
>  hw/hw.h         |    7 +
>  hw/virtio.c     |    8 +-
>  ioport.c        |    2 +
>  migration-tcp.c |   60 ++++-
>  migration.c     |  280 +++++++++++++++++++-
>  migration.h     |    3 +
>  net.c           |    9 +
>  qemu-char.c     |    2 +-
>  qemu-tool.c     |   23 ++
>  qemu_socket.h   |    1 +
>  qmp-commands.hx |    7 +-
>  savevm.c        |  280 ++++++++++++++++++-
>  sysemu.h        |    4 +-
>  trace-events    |   25 ++
>  vl.c            |   16 +-
>  24 files changed, 2248 insertions(+), 29 deletions(-)
>  create mode 100644 event-tap.c
>  create mode 100644 event-tap.h
>  create mode 100644 ft_trans_file.c
>  create mode 100644 ft_trans_file.h
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux