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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information