[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [RFC PATCH 00/23] Kemari for KVM v0.1.1
From: |
Yoshiaki Tamura |
Subject: |
[Qemu-devel] Re: [RFC PATCH 00/23] Kemari for KVM v0.1.1 |
Date: |
Wed, 09 Jun 2010 17:36:11 +0900 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 |
Hi,
I rebased the patch series to the head of both qemu.git
(26ebe46848ecb2462cc53d4de20ac6590709643b) and qemu-kvm.git
(3f505ec990599aeb960ed7031a2bb7b233ea4927). The repository contains branches
for both tree.
git://kemari.git.sourceforge.net/gitroot/kemari/kemari
Patches for qemu.git are in master branch, and patches for qemu-kvm.git are in
kemari-v0.1.1-kvm.
I would split 23 patches into small chunks and send it separately to make
reviewing easier, and hopefully have feedbacks.
Thanks,
Yoshi
Yoshiaki Tamura wrote:
> 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-kvm.git
> 2b644fd0e737407133c88054ba498e772ce01f27.
>
> On the contrary to the previous version, this series doesn't require any
> modifications to KVM. The I/O events are caputured in net/block layer instead
> of device emulation layer. The transmission/transaction protocol, and most of
> the control logic is implemented in QEMU.
>
> We prepared a demonstration video again. This time the guest is Windows XP
> without virtio drivers. The demonstration scenario is,
>
> 1. Play with a guest VM (This guest has e1000 and ide)
> # The guest image should be a NFS/SAN.
> 2. Start incoming side with, -incoming<protocol>:<address>:<port>,ft_mode
> 3. Start Kemari to synchronize the VM by running the following command in
> QEMU.
> Just add "-k" option to usual migrate command.
> migrate -d -k tcp:192.168.0.20:4444
> 3. Check the status by calling info migrate.
> 4. Go back to the VM to play the pinball.
> 5. Kill the the VM. (VNC client also disappears)
> 6. Press "c" to continue the VM on the other host.
> 7. Bring up the VNC client (Sorry, it pops outside of video capture.)
> 8. Confirm that the pinball works, then shutdown.
>
> http://www.osrg.net/kemari/download/kemari-kvm-winxp.mov
>
> The repository contains all patches we're sending with this message. For
> those
> who want to try, please pull the following repository.
>
> git://kemari.git.sourceforge.net/gitroot/kemari/kemari
>
> 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().
>
> I hope people like this approach, and looking forward to suggestions/comments.
>
> Thanks,
>
> Yoshi
>
> Yoshiaki Tamura (23):
> Modify DIRTY_FLAG value and introduce DIRTY_IDX to use as indexes of
> bit-based phys_ram_dirty.
> Introduce cpu_physical_memory_get_dirty_range().
> Use cpu_physical_memory_set_dirty_range() to update phys_ram_dirty.
> Use cpu_physical_memory_get_dirty_range() to check multiple dirty
> pages.
> 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().
> Introduce some socket util functions.
> Introduce fault tolerant VM transaction QEMUFile and ft_mode.
> Introduce util functions to control ft_transaction from savevm layer.
> Introduce qemu_savevm_state_all().
> Insent event-tap callbacks to net/block layer.
> Introduce event-tap.
> Call init handler of event-tap at main().
> Insert event_tap_ioport() to ioport_write().
> Insert event_tap_mmio() to cpu_physical_memory_rw().
> Skip assert() when event_tap_state weren't EVENT_TAP_OFF.
> Call event_tap_replay() at vm_start().
> Introduce ft_tranx_ready(), and modify migrate_fd_put_ready() when
> ft_mode is on.
> Modify tcp_accept_incoming_migration() to handle ft_mode, and add a
> hack not to close fd when ft_mode is enabled.
> virtio-blk: Modify save/load handler to handle inuse varialble.
> Introduce -k option to enable FT migration mode (Kemari).
> Add a parser to accept FT migration incoming mode.
>
> Makefile.objs | 1 +
> Makefile.target | 1 +
> block.c | 22 +++
> block.h | 4 +
> cpu-all.h | 134 ++++++++++++++++-
> event-tap.c | 184 ++++++++++++++++++++++++
> event-tap.h | 32 ++++
> exec.c | 131 +++++++++++++----
> ft_transaction.c | 418
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ft_transaction.h | 54 +++++++
> hw/hw.h | 7 +
> hw/virtio.c | 8 +-
> ioport.c | 2 +
> migration-exec.c | 2 +-
> migration-fd.c | 2 +-
> migration-tcp.c | 52 +++++++-
> migration-unix.c | 2 +-
> migration.c | 110 ++++++++++++++-
> migration.h | 3 +
> net/queue.c | 18 +++
> net/queue.h | 3 +
> osdep.c | 13 ++
> qemu-char.c | 25 +++-
> qemu-kvm.c | 23 ++--
> qemu-monitor.hx | 7 +-
> qemu_socket.h | 4 +
> savevm.c | 146 +++++++++++++++++--
> sysemu.h | 3 +-
> vl.c | 57 +++++---
> 29 files changed, 1371 insertions(+), 97 deletions(-)
> create mode 100644 event-tap.c
> create mode 100644 event-tap.h
> create mode 100644 ft_transaction.c
> create mode 100644 ft_transaction.h
>
>
>
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] Re: [RFC PATCH 00/23] Kemari for KVM v0.1.1,
Yoshiaki Tamura <=