Re: [Qemu-devel] [PATCH 00/21] Kemari for KVM 0.2

Blue Swirl
2010-11-26T18:39:57Z

On Thu, Nov 25, 2010 at 6:06 AM, Yoshiaki Tamura
<tamura.yoshiaki@lab.ntt.co.jp> wrote:
> Hi,
>
> This patch series is a revised version of Kemari for KVM, which
> applied comments for the previous post and KVM Forum 2010.  The
> current code is based on qemu.git
> f711df67d611e4762966a249742a5f7499e19f99.
>
> For general information about Kemari, I've made a wiki page at
> qemu.org.
>
> http://wiki.qemu.org/Features/FaultTolerance
>
> 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 4 patches modifies dma-helpers, virtio-blk
> virtio-net and e1000 to replace net/block layer functions with
> event-tap proxy 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.

Would it be possible to make the changes only in the block/net layer,
so that the devices are not modified at all? That is, the proxy
function would always replaces the unproxied version.

Somehow I find some similarities to instrumentation patches. Perhaps
the instrumentation framework could be used (maybe with some changes)
for Kemari as well? That could be beneficial to both.