vdagent is not working properly after live migration

Operating system: ArchLinux

  • OS/kernel version: openEuler-20.03-LTS-SP1 with kernel 4.19
  • Architecture: x86_64
  • QEMU version: 7.2.50
  • QEMU command line:
    qemu-kvm ... -chardev qemu-vdagent,id=charchannel0,name=vdagent,clipboard=on,mouse=on -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 ...
    or using libvirt xml:
    <channel type='qemu-vdagent'>     
      <source>    
        <clipboard copypaste='yes'/>    
        <mouse mode='client'/>    
      </source>    
      <target type='virtio' name='com.redhat.spice.0'/>    
    </channel>    

Goal

After live migration, vnc copy/paste feature(or vdagent) can still work.

Technical details

  1. below serials introduce cut+paste support for vnc
    https://lists.nongnu.org/archive/html/qemu-devel/2021-05/msg05837.html
  2. but it lacks implmentation for migration support
    https://lore.kernel.org/qemu-devel/20210831133132.1697228-1-marcandre.lureau@redhat.com/
    qemu-project/qemu/-/commit/90208bc9657b7e0f8a6bc6af82b69c65c97b2d64

Additional information

when validating on windows server 2016 Datacenter Evaluation, i found that if vdagent process or vdservice is restarted, copy/paste from host to guest or reverse will work again. i am wondering if we should send something(eg, a event?) to guest to let it reopen the port after live migration? image

Edited by pengcheng.deng