[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/19] Kemari for KVM v0.2.1
From: |
Yoshiaki Tamura |
Subject: |
Re: [Qemu-devel] [PATCH 00/19] Kemari for KVM v0.2.1 |
Date: |
Fri, 24 Dec 2010 12:17:58 +0900 |
Oops.
Some patches were missing. Will resend.
Yoshi
2010/12/24 Yoshiaki Tamura <address@hidden>:
> 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
>
>
>
- [Qemu-devel] [PATCH 10/17] Call init handler of event-tap at main() in vl.c., (continued)
- [Qemu-devel] [PATCH 10/17] Call init handler of event-tap at main() in vl.c., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 06/17] virtio: update last_avail_idx when inuse is decreased., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 13/17] net: insert event-tap to qemu_send_packet() and qemu_sendv_packet_async()., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 03/17] Introduce skip_header parameter to qemu_loadvm_state()., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 08/17] savevm: introduce util functions to control ft_trans_file from savevm layer., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 02/17] Introduce read() to FdMigrationState., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 16/17] migration: introduce migrate_ft_trans_{put, get}_ready(), and modify migrate_fd_put_ready() when ft_mode is on., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 09/17] Introduce event-tap., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 05/17] vl.c: add deleted flag for deleting the handler., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 07/17] Introduce fault tolerant VM transaction QEMUFile and ft_mode., Yoshiaki Tamura, 2010/12/23
- Re: [Qemu-devel] [PATCH 00/19] Kemari for KVM v0.2.1,
Yoshiaki Tamura <=
- [Qemu-devel] [PATCH 00/19] Kemari for KVM v0.2.1, Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 03/19] Introduce skip_header parameter to qemu_loadvm_state()., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 02/19] Introduce read() to FdMigrationState., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 10/19] Call init handler of event-tap at main() in vl.c., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 04/19] qemu-char: export socket_set_nodelay()., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 01/19] Make QEMUFile buf expandable, and introduce qemu_realloc_buffer() and qemu_clear_buffer()., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 12/19] Insert event_tap_mmio() to cpu_physical_memory_rw() in exec.c., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 05/19] vl.c: add deleted flag for deleting the handler., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 11/19] ioport: insert event_tap_ioport() to ioport_write()., Yoshiaki Tamura, 2010/12/23
- [Qemu-devel] [PATCH 07/19] Introduce fault tolerant VM transaction QEMUFile and ft_mode., Yoshiaki Tamura, 2010/12/23