On Thu, Nov 25, 2010 at 6:06 AM, Yoshiaki Tamura <tamura.yoshiaki@xxxxxxxxxxxxx> 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. -- 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