On 7/18/2025 4:48 AM, Lei Yang wrote:
Hi Steve

I tested your patch which hit a problem under enable/disable nic mq
state(The full test scenario is live migration vm at local under
enable/disable vm nic mq state):
Run command: /qemu-img info /home/images/vm1.qcow2 --output=json
Error info: qemu-img: Could not open '/home/images/vm1.qcow2': Failed
to get shared "write" lock

In the same environment if I remove the enable/disable nic mq steps,
it can work well.

Note: This issue has not been reproduced 100%, but in order to confirm
this is really a bug, I test the following:
1. Live migration vm at local under enable/disable nic mq state: 3/5
reproduce ratio
2. Only live migration 5 times are all passed.

Thank you Lei for testing this.  I would like to debug it, but I need
more information:

* did you add the cpr=on option for tap devices, or is this just
  a regression test of existing functionality?

* What platform: linux or windows?

* Is this a publicly available test that I can run?  I cannot find any
  reference to "Live migration vm at local under enable/disable nic mq state"

If this is not a public test, can you provide more detail on the commands
issued at each step in the test?

Thanks!

- Steve

On Fri, Jul 18, 2025 at 4:48 AM Steve Sistare <steven.sist...@oracle.com> wrote:

Tap and vhost devices can be preserved during cpr-transfer using
traditional live migration methods, wherein the management layer
creates new interfaces for the target and fiddles with 'ip link'
to deactivate the old interface and activate the new.

However, CPR can simply send the file descriptors to new QEMU,
with no special management actions required.  The user enables
this behavior by specifing '-netdev tap,cpr=on'.  The default
is cpr=off.

Steve Sistare (8):
   migration: stop vm earlier for cpr
   migration: cpr setup notifier
   vhost: reset vhost devices for cpr
   cpr: delete all fds
   Revert "vhost-backend: remove vhost_kernel_reset_device()"
   tap: common return label
   tap: cpr support
   tap: postload fix for cpr

  qapi/net.json             |   5 +-
  include/hw/virtio/vhost.h |   1 +
  include/migration/cpr.h   |   3 +-
  include/net/tap.h         |   1 +
  hw/net/virtio-net.c       |  20 +++++++
  hw/vfio/device.c          |   2 +-
  hw/virtio/vhost-backend.c |   6 ++
  hw/virtio/vhost.c         |  32 +++++++++++
  migration/cpr.c           |  24 ++++++--
  migration/migration.c     |  38 ++++++++-----
  net/tap-win32.c           |   5 ++
  net/tap.c                 | 141 +++++++++++++++++++++++++++++++++++-----------
  12 files changed, 223 insertions(+), 55 deletions(-)

--
1.8.3.1





Reply via email to