All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Eugenio Pérez" <eperezma@redhat.com>
To: qemu-devel@nongnu.org
Cc: Stefano Garzarella <sgarzare@redhat.com>,
	Shannon Nelson <snelson@pensando.io>,
	Jason Wang <jasowang@redhat.com>,
	Gautam Dawar <gdawar@xilinx.com>,
	Laurent Vivier <lvivier@redhat.com>,
	alvaro.karsz@solid-run.com, longpeng2@huawei.com,
	virtualization@lists.linux-foundation.org,
	Stefan Hajnoczi <stefanha@redhat.com>, Cindy Lu <lulu@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	si-wei.liu@oracle.com, Liuxiangdong <liuxiangdong5@huawei.com>,
	Parav Pandit <parav@mellanox.com>, Eli Cohen <eli@mellanox.com>,
	Zhu Lingshan <lingshan.zhu@intel.com>,
	Harpreet Singh Anand <hanand@xilinx.com>,
	"Gonglei (Arei)" <arei.gonglei@huawei.com>,
	Lei Yang <leiyang@redhat.com>
Subject: [PATCH v4 13/15] vdpa: block migration if SVQ does not admit a feature
Date: Fri, 24 Feb 2023 16:54:36 +0100	[thread overview]
Message-ID: <20230224155438.112797-14-eperezma@redhat.com> (raw)
In-Reply-To: <20230224155438.112797-1-eperezma@redhat.com>

Next patches enable devices to be migrated even if vdpa netdev has not
been started with x-svq. However, not all devices are migratable, so we
need to block migration if we detect that.

Block migration if we detect the device expose a feature SVQ does not
know how to work with.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
 hw/virtio/vhost-vdpa.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 25b64ae854..8702780ad6 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -443,6 +443,21 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque, Error **errp)
         return 0;
     }
 
+    /*
+     * If dev->shadow_vqs_enabled at initialization that means the device has
+     * been started with x-svq=on, so don't block migration
+     */
+    if (dev->migration_blocker == NULL && !v->shadow_vqs_enabled) {
+        /* We don't have dev->features yet */
+        uint64_t features;
+        ret = vhost_vdpa_get_dev_features(dev, &features);
+        if (unlikely(ret)) {
+            error_setg_errno(errp, -ret, "Could not get device features");
+            return ret;
+        }
+        vhost_svq_valid_features(features, &dev->migration_blocker);
+    }
+
     /*
      * Similar to VFIO, we end up pinning all guest memory and have to
      * disable discarding of RAM.
-- 
2.31.1



  parent reply	other threads:[~2023-02-24 15:56 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-24 15:54 [PATCH v4 00/15] Dynamically switch to vhost shadow virtqueues at vdpa net migration Eugenio Pérez
2023-02-24 15:54 ` [PATCH v4 01/15] vdpa net: move iova tree creation from init to start Eugenio Pérez
2023-02-27  7:04   ` Jason Wang
2023-02-27  7:04     ` Jason Wang
2023-03-01  7:01     ` Eugenio Perez Martin
2023-03-03  3:32       ` Jason Wang
2023-03-03  3:32         ` Jason Wang
2023-03-03  8:00         ` Eugenio Perez Martin
2023-03-06  3:43           ` Jason Wang
2023-03-06  3:43             ` Jason Wang
2023-02-24 15:54 ` [PATCH v4 02/15] vdpa: Remember last call fd set Eugenio Pérez
2023-02-24 15:54 ` [PATCH v4 03/15] vdpa: stop svq at vhost_vdpa_dev_start(false) Eugenio Pérez
2023-02-27  7:15   ` Jason Wang
2023-02-27  7:15     ` Jason Wang
2023-03-03 16:29     ` Eugenio Perez Martin
2023-02-24 15:54 ` [PATCH v4 04/15] vdpa: Negotiate _F_SUSPEND feature Eugenio Pérez
2023-02-24 15:54 ` [PATCH v4 05/15] vdpa: move vhost reset after get vring base Eugenio Pérez
2023-02-27  7:22   ` Jason Wang
2023-02-27  7:22     ` Jason Wang
2023-03-01 19:11     ` Eugenio Perez Martin
2023-02-24 15:54 ` [PATCH v4 06/15] vdpa: add vhost_vdpa->suspended parameter Eugenio Pérez
2023-02-27  7:24   ` Jason Wang
2023-02-27  7:24     ` Jason Wang
2023-03-01 19:11     ` Eugenio Perez Martin
2023-02-24 15:54 ` [PATCH v4 07/15] vdpa: add vhost_vdpa_suspend Eugenio Pérez
2023-02-27  7:27   ` Jason Wang
2023-02-27  7:27     ` Jason Wang
2023-03-01  1:30   ` Si-Wei Liu
2023-03-01  1:30     ` Si-Wei Liu
2023-03-03 16:34     ` Eugenio Perez Martin
2023-02-24 15:54 ` [PATCH v4 08/15] vdpa: rewind at get_base, not set_base Eugenio Pérez
2023-02-27  7:34   ` Jason Wang
2023-02-27  7:34     ` Jason Wang
2023-02-24 15:54 ` [PATCH v4 09/15] vdpa: add vdpa net migration state notifier Eugenio Pérez
2023-02-27  8:08   ` Jason Wang
2023-02-27  8:08     ` Jason Wang
2023-03-01 19:26     ` Eugenio Perez Martin
2023-03-03  3:34       ` Jason Wang
2023-03-03  3:34         ` Jason Wang
2023-03-03  8:42         ` Eugenio Perez Martin
2023-02-24 15:54 ` [PATCH v4 10/15] vdpa: disable RAM block discard only for the first device Eugenio Pérez
2023-02-27  8:11   ` Jason Wang
2023-02-27  8:11     ` Jason Wang
2023-03-02 15:11     ` Eugenio Perez Martin
2023-02-24 15:54 ` [PATCH v4 11/15] vdpa net: block migration if the device has CVQ Eugenio Pérez
2023-02-27  8:12   ` Jason Wang
2023-02-27  8:12     ` Jason Wang
2023-03-02 15:13     ` Eugenio Perez Martin
2023-02-24 15:54 ` [PATCH v4 12/15] vdpa: block migration if device has unsupported features Eugenio Pérez
2023-02-27  8:15   ` Jason Wang
2023-02-27  8:15     ` Jason Wang
2023-02-27  8:19     ` Jason Wang
2023-02-27  8:19       ` Jason Wang
2023-03-01 19:32       ` Eugenio Perez Martin
2023-03-03  3:48         ` Jason Wang
2023-03-03  3:48           ` Jason Wang
2023-03-03  8:58           ` Eugenio Perez Martin
2023-03-06  3:42             ` Jason Wang
2023-03-06  3:42               ` Jason Wang
2023-03-06 11:32               ` Eugenio Perez Martin
2023-03-07  6:48                 ` Jason Wang
2023-03-07  6:48                   ` Jason Wang
2023-02-24 15:54 ` Eugenio Pérez [this message]
2023-02-24 15:54 ` [PATCH v4 14/15] vdpa net: allow VHOST_F_LOG_ALL Eugenio Pérez
2023-02-24 15:54 ` [PATCH v4 15/15] vdpa: return VHOST_F_LOG_ALL in vhost-vdpa devices Eugenio Pérez
2023-02-27 12:40 ` [PATCH v4 00/15] Dynamically switch to vhost shadow virtqueues at vdpa net migration Alvaro Karsz
2023-02-27 12:40   ` Alvaro Karsz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230224155438.112797-14-eperezma@redhat.com \
    --to=eperezma@redhat.com \
    --cc=alvaro.karsz@solid-run.com \
    --cc=arei.gonglei@huawei.com \
    --cc=eli@mellanox.com \
    --cc=gdawar@xilinx.com \
    --cc=hanand@xilinx.com \
    --cc=jasowang@redhat.com \
    --cc=leiyang@redhat.com \
    --cc=lingshan.zhu@intel.com \
    --cc=liuxiangdong5@huawei.com \
    --cc=longpeng2@huawei.com \
    --cc=lulu@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=mst@redhat.com \
    --cc=parav@mellanox.com \
    --cc=qemu-devel@nongnu.org \
    --cc=sgarzare@redhat.com \
    --cc=si-wei.liu@oracle.com \
    --cc=snelson@pensando.io \
    --cc=stefanha@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.