On 2/3/20, 7:16 PM, "Daniel P. Berrangé" <berrange@redhat.com> wrote:

        On Mon, Feb 03, 2020 at 10:42:48AM -0300, Daniel Henrique Barboza wrote:
        > Hi Daniel,
        >
        > I am happy that Libvirt is pushing local migration/live patching support, but
        > at the same time I am wondering what changed from what you said here:

        Err, this isn't libvirt pushing local migration. I'm simply re-posting
        these patches on behalf of Shaju who is unable to post the patches due
        to our broken mail server.  Don't take this as meaning that I approve of
        the patches. They're simply here for discussion as any other patch
        proposal is.

Thank you for forwarding the patch to the list, Danpb.

        

        That is largely still my view.

Sure, and we will be happy to discuss this further, as noted below :)

        > To give you a background, we have live patching enhancements in IBM backlog
        > since a few years ago, and one on the reasons these were being postponed
        > time and time again were the lack of Libvirt support and this direction of
        > "Libvirt is not interested in supporting it". And this message above was being
        > used internally as the rationale for it.

       Hi Daniel HB,
       Thank you for pointing out the fact that this has been in discussion since 2013. While Shaju's patches were independent as an RFC, we will be happy to collaborate to push for a joint solution. The fact that this has been requested time and again, and the fact that most commercial cloud deployments out there already have an in-place upgrade story [1] [2] -- should be good reason we holistically examine the use case once again.
[1] https://kb.vmware.com/s/article/2005389
[2] https://dl.acm.org/doi/10.1145/3297858.3304034

Danpb had explained in much detail as to why mangling file and particularly socket paths can be messy in this patchset. However, even if  libvirtd blocks in-place migrations for such legacy VMs  until apps switch to more stringent XML semantics, it still may help cutting edge apps that intend to leverage this.

I understand the presence of collision-causing file and socket paths can easily be checked as pre-migration checks, and should be trivial to implement. 
We can include a revised patchset with this check in place. Support for this feature has been present in qemu for a while for this use-case, and so maybe it is time we pass on the goodness up the stack as well.

Happy to discuss more details on implementation and semantics,

Warm regards,
Prerna Saxena