
On 11/18/2015 01:12 PM, Pavel Boldin wrote:
The provided patchset implements NBD disk migration over a tunnelled connection provided by libvirt.
[...]
daemon/remote.c | 50 ++++ docs/apibuild.py | 1 + docs/hvsupport.pl | 1 + include/libvirt/libvirt-domain.h | 3 + src/driver-hypervisor.h | 8 + src/libvirt-domain.c | 43 ++++ src/libvirt_internal.h | 6 + src/libvirt_private.syms | 1 + src/qemu/qemu_driver.c | 24 ++ src/qemu/qemu_migration.c | 495 +++++++++++++++++++++++++++++++++------ src/qemu/qemu_migration.h | 6 + src/qemu/qemu_monitor.c | 12 + src/qemu/qemu_monitor.h | 2 + src/qemu/qemu_monitor_json.c | 35 +++ src/qemu/qemu_monitor_json.h | 2 + src/remote/remote_driver.c | 91 +++++-- src/remote/remote_protocol.x | 19 +- src/remote_protocol-structs | 8 + src/security/virt-aa-helper.c | 4 +- 19 files changed, 719 insertions(+), 92 deletions(-)
Although not my area of expertise - figured I could give this series at least a glance as I'm working my way through the list I had of unread patches. Also I was only able to git am -3 the first 15 patches... after that some other change gets in the way. You may need to fix up a few things and repost. Maybe go with shorter series to at least make progress... Some high level thoughts... First off - obviously it's a larger series. You see 21 patches and know you have to set aside the time for proper review... Of course many are short which is exactly what is "requested", still I assume the quantity causes the "put this on my todo list" reaction - hence the delay in anyone looking. Not an excuse for having something upstream for a bit without review, but I hope it's a logical explanation... Second - I note liberal usage of "unsigned char uuid[VIR_UUID_BUFLEN] in function headers. I believe those should be replaced by "const unsigned char *uuid" instead. IIRC this can lead to buffer overflow type issues (think stack space for args). Third - could this tunnel be possibly used more generically? That is this use is for NBD, but just the barebones indicate it's an extra communication stream/channel. Would it be beneficial to pass more than a remote_uuid. Perhaps remote resource name and/or uri? A number of migrate API's seem to use a cookie - is that something that would be useful? That's a finer technical detail that I hope can be worked out. Hopefully someone with that finer and detailed technical knowledge of the migration protocol will also jump in ;-) John