qemu-devel
[Top][All Lists]
Advanced

[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
> 
> 
> 
> 




reply via email to

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