qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] virtio-gpu: add blob migration support
@ 2023-09-07 13:09 marcandre.lureau
  2023-09-07 13:09 ` [PATCH v2 1/5] virtio-gpu: block migration of VMs with blob=true marcandre.lureau
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: marcandre.lureau @ 2023-09-07 13:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michael S. Tsirkin, kraxel, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Hi,

This is a follow-up of the previous patch "[PATCH] virtio-gpu: block migration
of VMs with blob=true". Now that migration support is implemented, we can decide
to drop the migration blocker patch, or apply and revert it, so that
backporting of a quick fix is made easier.

Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=2236353

Marc-André Lureau (5):
  virtio-gpu: block migration of VMs with blob=true
  virtio-gpu: factor out restore mapping
  virtio-gpu: move scanout restoration to post_load
  virtio-gpu: add virtio-gpu/blob vmstate subsection
  Revert "virtio-gpu: block migration of VMs with blob=true"

 hw/display/virtio-gpu.c | 174 +++++++++++++++++++++++++++++++++-------
 1 file changed, 146 insertions(+), 28 deletions(-)

-- 
2.41.0



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/5] virtio-gpu: block migration of VMs with blob=true
  2023-09-07 13:09 [PATCH v2 0/5] virtio-gpu: add blob migration support marcandre.lureau
@ 2023-09-07 13:09 ` marcandre.lureau
  2023-09-07 13:09 ` [PATCH v2 2/5] virtio-gpu: factor out restore mapping marcandre.lureau
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: marcandre.lureau @ 2023-09-07 13:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michael S. Tsirkin, kraxel, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

"blob" resources don't have an associated pixman image:

#0  pixman_image_get_stride (image=0x0) at ../pixman/pixman-image.c:921
#1  0x0000562327c25236 in virtio_gpu_save (f=0x56232bb13b00, opaque=0x56232b555a60, size=0, field=0x5623289ab6c8 <__compound_literal.3+104>, vmdesc=0x56232ab59fe0) at ../hw/display/virtio-gpu.c:1225

Related to:
https://bugzilla.redhat.com/show_bug.cgi?id=2236353

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 hw/display/virtio-gpu.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index bbd5c6561a..d6909bfa97 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -26,6 +26,7 @@
 #include "hw/virtio/virtio-gpu-pixman.h"
 #include "hw/virtio/virtio-bus.h"
 #include "hw/qdev-properties.h"
+#include "migration/blocker.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
 #include "qapi/error.h"
@@ -44,6 +45,8 @@ static void virtio_gpu_cleanup_mapping(VirtIOGPU *g,
                                        struct virtio_gpu_simple_resource *res);
 static void virtio_gpu_reset_bh(void *opaque);
 
+static Error *blob_mig_blocker;
+
 void virtio_gpu_update_cursor_data(VirtIOGPU *g,
                                    struct virtio_gpu_scanout *s,
                                    uint32_t resource_id)
@@ -1374,6 +1377,14 @@ void virtio_gpu_device_realize(DeviceState *qdev, Error **errp)
             error_setg(errp, "blobs and virgl are not compatible (yet)");
             return;
         }
+
+        if (!blob_mig_blocker) {
+            error_setg(&blob_mig_blocker,
+                       "virtio-gpu blob VMs are currently not migratable.");
+        }
+        if (migrate_add_blocker(blob_mig_blocker, errp)) {
+            return;
+        }
     }
 
     if (!virtio_gpu_base_device_realize(qdev,
@@ -1400,6 +1411,9 @@ static void virtio_gpu_device_unrealize(DeviceState *qdev)
 {
     VirtIOGPU *g = VIRTIO_GPU(qdev);
 
+    if (virtio_gpu_blob_enabled(g->parent_obj.conf)) {
+        migrate_del_blocker(blob_mig_blocker);
+    }
     g_clear_pointer(&g->ctrl_bh, qemu_bh_delete);
     g_clear_pointer(&g->cursor_bh, qemu_bh_delete);
     g_clear_pointer(&g->reset_bh, qemu_bh_delete);
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/5] virtio-gpu: factor out restore mapping
  2023-09-07 13:09 [PATCH v2 0/5] virtio-gpu: add blob migration support marcandre.lureau
  2023-09-07 13:09 ` [PATCH v2 1/5] virtio-gpu: block migration of VMs with blob=true marcandre.lureau
@ 2023-09-07 13:09 ` marcandre.lureau
  2023-09-07 13:09 ` [PATCH v2 3/5] virtio-gpu: move scanout restoration to post_load marcandre.lureau
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: marcandre.lureau @ 2023-09-07 13:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michael S. Tsirkin, kraxel, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

The same function is going to be used next to restore "blob" resources.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 hw/display/virtio-gpu.c | 60 ++++++++++++++++++++++-------------------
 1 file changed, 33 insertions(+), 27 deletions(-)

diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index d6909bfa97..a58cb68f1c 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1237,6 +1237,35 @@ static int virtio_gpu_save(QEMUFile *f, void *opaque, size_t size,
     return vmstate_save_state(f, &vmstate_virtio_gpu_scanouts, g, NULL);
 }
 
+static bool virtio_gpu_load_restore_mapping(VirtIOGPU *g,
+                                            struct virtio_gpu_simple_resource *res)
+{
+    int i;
+
+    for (i = 0; i < res->iov_cnt; i++) {
+        hwaddr len = res->iov[i].iov_len;
+        res->iov[i].iov_base =
+            dma_memory_map(VIRTIO_DEVICE(g)->dma_as, res->addrs[i], &len,
+                           DMA_DIRECTION_TO_DEVICE, MEMTXATTRS_UNSPECIFIED);
+
+        if (!res->iov[i].iov_base || len != res->iov[i].iov_len) {
+            /* Clean up the half-a-mapping we just created... */
+            if (res->iov[i].iov_base) {
+                dma_memory_unmap(VIRTIO_DEVICE(g)->dma_as, res->iov[i].iov_base,
+                                 len, DMA_DIRECTION_TO_DEVICE, 0);
+            }
+            /* ...and the mappings for previous loop iterations */
+            res->iov_cnt = i;
+            virtio_gpu_cleanup_mapping(g, res);
+            return false;
+        }
+    }
+
+    QTAILQ_INSERT_HEAD(&g->reslist, res, next);
+    g->hostmem += res->hostmem;
+    return true;
+}
+
 static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size,
                            const VMStateField *field)
 {
@@ -1299,35 +1328,12 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size,
         qemu_get_buffer(f, (void *)pixman_image_get_data(res->image),
                         pixman_image_get_stride(res->image) * res->height);
 
-        /* restore mapping */
-        for (i = 0; i < res->iov_cnt; i++) {
-            hwaddr len = res->iov[i].iov_len;
-            res->iov[i].iov_base =
-                dma_memory_map(VIRTIO_DEVICE(g)->dma_as, res->addrs[i], &len,
-                               DMA_DIRECTION_TO_DEVICE,
-                               MEMTXATTRS_UNSPECIFIED);
-
-            if (!res->iov[i].iov_base || len != res->iov[i].iov_len) {
-                /* Clean up the half-a-mapping we just created... */
-                if (res->iov[i].iov_base) {
-                    dma_memory_unmap(VIRTIO_DEVICE(g)->dma_as,
-                                     res->iov[i].iov_base,
-                                     len,
-                                     DMA_DIRECTION_TO_DEVICE,
-                                     0);
-                }
-                /* ...and the mappings for previous loop iterations */
-                res->iov_cnt = i;
-                virtio_gpu_cleanup_mapping(g, res);
-                pixman_image_unref(res->image);
-                g_free(res);
-                return -EINVAL;
-            }
+        if (!virtio_gpu_load_restore_mapping(g, res)) {
+            pixman_image_unref(res->image);
+            g_free(res);
+            return -EINVAL;
         }
 
-        QTAILQ_INSERT_HEAD(&g->reslist, res, next);
-        g->hostmem += res->hostmem;
-
         resource_id = qemu_get_be32(f);
     }
 
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/5] virtio-gpu: move scanout restoration to post_load
  2023-09-07 13:09 [PATCH v2 0/5] virtio-gpu: add blob migration support marcandre.lureau
  2023-09-07 13:09 ` [PATCH v2 1/5] virtio-gpu: block migration of VMs with blob=true marcandre.lureau
  2023-09-07 13:09 ` [PATCH v2 2/5] virtio-gpu: factor out restore mapping marcandre.lureau
@ 2023-09-07 13:09 ` marcandre.lureau
  2023-09-07 13:09 ` [PATCH v2 4/5] virtio-gpu: add virtio-gpu/blob vmstate subsection marcandre.lureau
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: marcandre.lureau @ 2023-09-07 13:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michael S. Tsirkin, kraxel, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

As we are going to introduce an extra subsection for "blob" resources,
scanout have to be restored after.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 hw/display/virtio-gpu.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index a58cb68f1c..6ebf98ca0e 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1271,7 +1271,6 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size,
 {
     VirtIOGPU *g = opaque;
     struct virtio_gpu_simple_resource *res;
-    struct virtio_gpu_scanout *scanout;
     uint32_t resource_id, pformat;
     void *bits = NULL;
     int i;
@@ -1339,6 +1338,17 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size,
 
     /* load & apply scanout state */
     vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1);
+
+    return 0;
+}
+
+static int virtio_gpu_post_load(void *opaque, int version_id)
+{
+    VirtIOGPU *g = opaque;
+    struct virtio_gpu_scanout *scanout;
+    struct virtio_gpu_simple_resource *res;
+    int i;
+
     for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {
         /* FIXME: should take scanout.r.{x,y} into account */
         scanout = &g->parent_obj.scanout[i];
@@ -1521,6 +1531,7 @@ static const VMStateDescription vmstate_virtio_gpu = {
         } /* device */,
         VMSTATE_END_OF_LIST()
     },
+    .post_load = virtio_gpu_post_load,
 };
 
 static Property virtio_gpu_properties[] = {
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 4/5] virtio-gpu: add virtio-gpu/blob vmstate subsection
  2023-09-07 13:09 [PATCH v2 0/5] virtio-gpu: add blob migration support marcandre.lureau
                   ` (2 preceding siblings ...)
  2023-09-07 13:09 ` [PATCH v2 3/5] virtio-gpu: move scanout restoration to post_load marcandre.lureau
@ 2023-09-07 13:09 ` marcandre.lureau
  2023-09-07 13:09 ` [PATCH v2 5/5] Revert "virtio-gpu: block migration of VMs with blob=true" marcandre.lureau
  2023-09-19 12:51 ` [PATCH v2 0/5] virtio-gpu: add blob migration support Marc-André Lureau
  5 siblings, 0 replies; 10+ messages in thread
From: marcandre.lureau @ 2023-09-07 13:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michael S. Tsirkin, kraxel, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 hw/display/virtio-gpu.c | 101 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 6ebf98ca0e..63e60745f8 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1220,6 +1220,9 @@ static int virtio_gpu_save(QEMUFile *f, void *opaque, size_t size,
     assert(QTAILQ_EMPTY(&g->cmdq));
 
     QTAILQ_FOREACH(res, &g->reslist, next) {
+        if (res->blob_size) {
+            continue;
+        }
         qemu_put_be32(f, res->resource_id);
         qemu_put_be32(f, res->width);
         qemu_put_be32(f, res->height);
@@ -1342,6 +1345,74 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size,
     return 0;
 }
 
+static int virtio_gpu_blob_save(QEMUFile *f, void *opaque, size_t size,
+                                const VMStateField *field, JSONWriter *vmdesc)
+{
+    VirtIOGPU *g = opaque;
+    struct virtio_gpu_simple_resource *res;
+    int i;
+
+    /* in 2d mode we should never find unprocessed commands here */
+    assert(QTAILQ_EMPTY(&g->cmdq));
+
+    QTAILQ_FOREACH(res, &g->reslist, next) {
+        if (!res->blob_size) {
+            continue;
+        }
+        qemu_put_be32(f, res->resource_id);
+        qemu_put_be32(f, res->blob_size);
+        qemu_put_be32(f, res->iov_cnt);
+        for (i = 0; i < res->iov_cnt; i++) {
+            qemu_put_be64(f, res->addrs[i]);
+            qemu_put_be32(f, res->iov[i].iov_len);
+        }
+    }
+    qemu_put_be32(f, 0); /* end of list */
+
+    return 0;
+}
+
+static int virtio_gpu_blob_load(QEMUFile *f, void *opaque, size_t size,
+                                const VMStateField *field)
+{
+    VirtIOGPU *g = opaque;
+    struct virtio_gpu_simple_resource *res;
+    uint32_t resource_id;
+    int i;
+
+    resource_id = qemu_get_be32(f);
+    while (resource_id != 0) {
+        res = virtio_gpu_find_resource(g, resource_id);
+        if (res) {
+            return -EINVAL;
+        }
+
+        res = g_new0(struct virtio_gpu_simple_resource, 1);
+        res->resource_id = resource_id;
+        res->blob_size = qemu_get_be32(f);
+        res->iov_cnt = qemu_get_be32(f);
+        res->addrs = g_new(uint64_t, res->iov_cnt);
+        res->iov = g_new(struct iovec, res->iov_cnt);
+
+        /* read data */
+        for (i = 0; i < res->iov_cnt; i++) {
+            res->addrs[i] = qemu_get_be64(f);
+            res->iov[i].iov_len = qemu_get_be32(f);
+        }
+
+        if (!virtio_gpu_load_restore_mapping(g, res)) {
+            g_free(res);
+            return -EINVAL;
+        }
+
+        virtio_gpu_init_udmabuf(res);
+
+        resource_id = qemu_get_be32(f);
+    }
+
+    return 0;
+}
+
 static int virtio_gpu_post_load(void *opaque, int version_id)
 {
     VirtIOGPU *g = opaque;
@@ -1506,6 +1577,32 @@ virtio_gpu_set_config(VirtIODevice *vdev, const uint8_t *config)
     }
 }
 
+static bool virtio_gpu_blob_state_needed(void *opaque)
+{
+    VirtIOGPU *g = VIRTIO_GPU(opaque);
+
+    return virtio_gpu_blob_enabled(g->parent_obj.conf);
+}
+
+const VMStateDescription vmstate_virtio_gpu_blob_state = {
+    .name = "virtio-gpu/blob",
+    .minimum_version_id = VIRTIO_GPU_VM_VERSION,
+    .version_id = VIRTIO_GPU_VM_VERSION,
+    .needed = virtio_gpu_blob_state_needed,
+    .fields = (VMStateField[]){
+        {
+            .name = "virtio-gpu/blob",
+            .info = &(const VMStateInfo) {
+                .name = "blob",
+                .get = virtio_gpu_blob_load,
+                .put = virtio_gpu_blob_save,
+            },
+            .flags = VMS_SINGLE,
+        } /* device */,
+        VMSTATE_END_OF_LIST()
+    },
+};
+
 /*
  * For historical reasons virtio_gpu does not adhere to virtio migration
  * scheme as described in doc/virtio-migration.txt, in a sense that no
@@ -1531,6 +1628,10 @@ static const VMStateDescription vmstate_virtio_gpu = {
         } /* device */,
         VMSTATE_END_OF_LIST()
     },
+    .subsections = (const VMStateDescription*[]) {
+        &vmstate_virtio_gpu_blob_state,
+        NULL
+    },
     .post_load = virtio_gpu_post_load,
 };
 
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 5/5] Revert "virtio-gpu: block migration of VMs with blob=true"
  2023-09-07 13:09 [PATCH v2 0/5] virtio-gpu: add blob migration support marcandre.lureau
                   ` (3 preceding siblings ...)
  2023-09-07 13:09 ` [PATCH v2 4/5] virtio-gpu: add virtio-gpu/blob vmstate subsection marcandre.lureau
@ 2023-09-07 13:09 ` marcandre.lureau
  2023-09-19 12:51 ` [PATCH v2 0/5] virtio-gpu: add blob migration support Marc-André Lureau
  5 siblings, 0 replies; 10+ messages in thread
From: marcandre.lureau @ 2023-09-07 13:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michael S. Tsirkin, kraxel, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

If we decide to apply this patch (for easier backporting reasons), we
can now revert it.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 hw/display/virtio-gpu.c | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 63e60745f8..206b759a9c 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -26,7 +26,6 @@
 #include "hw/virtio/virtio-gpu-pixman.h"
 #include "hw/virtio/virtio-bus.h"
 #include "hw/qdev-properties.h"
-#include "migration/blocker.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
 #include "qapi/error.h"
@@ -45,8 +44,6 @@ static void virtio_gpu_cleanup_mapping(VirtIOGPU *g,
                                        struct virtio_gpu_simple_resource *res);
 static void virtio_gpu_reset_bh(void *opaque);
 
-static Error *blob_mig_blocker;
-
 void virtio_gpu_update_cursor_data(VirtIOGPU *g,
                                    struct virtio_gpu_scanout *s,
                                    uint32_t resource_id)
@@ -1464,14 +1461,6 @@ void virtio_gpu_device_realize(DeviceState *qdev, Error **errp)
             error_setg(errp, "blobs and virgl are not compatible (yet)");
             return;
         }
-
-        if (!blob_mig_blocker) {
-            error_setg(&blob_mig_blocker,
-                       "virtio-gpu blob VMs are currently not migratable.");
-        }
-        if (migrate_add_blocker(blob_mig_blocker, errp)) {
-            return;
-        }
     }
 
     if (!virtio_gpu_base_device_realize(qdev,
@@ -1498,9 +1487,6 @@ static void virtio_gpu_device_unrealize(DeviceState *qdev)
 {
     VirtIOGPU *g = VIRTIO_GPU(qdev);
 
-    if (virtio_gpu_blob_enabled(g->parent_obj.conf)) {
-        migrate_del_blocker(blob_mig_blocker);
-    }
     g_clear_pointer(&g->ctrl_bh, qemu_bh_delete);
     g_clear_pointer(&g->cursor_bh, qemu_bh_delete);
     g_clear_pointer(&g->reset_bh, qemu_bh_delete);
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/5] virtio-gpu: add blob migration support
  2023-09-07 13:09 [PATCH v2 0/5] virtio-gpu: add blob migration support marcandre.lureau
                   ` (4 preceding siblings ...)
  2023-09-07 13:09 ` [PATCH v2 5/5] Revert "virtio-gpu: block migration of VMs with blob=true" marcandre.lureau
@ 2023-09-19 12:51 ` Marc-André Lureau
  2023-09-19 15:09   ` Peter Xu
  5 siblings, 1 reply; 10+ messages in thread
From: Marc-André Lureau @ 2023-09-19 12:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, kraxel, Juan Quintela, Peter Xu,
	Leonardo Bras Soares Passos

Hi

On Thu, Sep 7, 2023 at 5:15 PM <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Hi,
>
> This is a follow-up of the previous patch "[PATCH] virtio-gpu: block migration
> of VMs with blob=true". Now that migration support is implemented, we can decide
> to drop the migration blocker patch, or apply and revert it, so that
> backporting of a quick fix is made easier.
>
> Fixes:
> https://bugzilla.redhat.com/show_bug.cgi?id=2236353
>
> Marc-André Lureau (5):
>   virtio-gpu: block migration of VMs with blob=true
>   virtio-gpu: factor out restore mapping
>   virtio-gpu: move scanout restoration to post_load
>   virtio-gpu: add virtio-gpu/blob vmstate subsection
>   Revert "virtio-gpu: block migration of VMs with blob=true"
>
>  hw/display/virtio-gpu.c | 174 +++++++++++++++++++++++++++++++++-------
>  1 file changed, 146 insertions(+), 28 deletions(-)
>
> --
> 2.41.0
>

ping



-- 
Marc-André Lureau


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/5] virtio-gpu: add blob migration support
  2023-09-19 12:51 ` [PATCH v2 0/5] virtio-gpu: add blob migration support Marc-André Lureau
@ 2023-09-19 15:09   ` Peter Xu
  2023-11-06 10:44     ` Marc-André Lureau
  0 siblings, 1 reply; 10+ messages in thread
From: Peter Xu @ 2023-09-19 15:09 UTC (permalink / raw)
  To: Marc-André Lureau
  Cc: qemu-devel, Michael S. Tsirkin, kraxel, Juan Quintela,
	Leonardo Bras Soares Passos

On Tue, Sep 19, 2023 at 04:51:21PM +0400, Marc-André Lureau wrote:
> Hi
> 
> On Thu, Sep 7, 2023 at 5:15 PM <marcandre.lureau@redhat.com> wrote:
> >
> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >
> > Hi,
> >
> > This is a follow-up of the previous patch "[PATCH] virtio-gpu: block migration
> > of VMs with blob=true". Now that migration support is implemented, we can decide
> > to drop the migration blocker patch, or apply and revert it, so that
> > backporting of a quick fix is made easier.
> >
> > Fixes:
> > https://bugzilla.redhat.com/show_bug.cgi?id=2236353
> >
> > Marc-André Lureau (5):
> >   virtio-gpu: block migration of VMs with blob=true
> >   virtio-gpu: factor out restore mapping
> >   virtio-gpu: move scanout restoration to post_load
> >   virtio-gpu: add virtio-gpu/blob vmstate subsection
> >   Revert "virtio-gpu: block migration of VMs with blob=true"
> >
> >  hw/display/virtio-gpu.c | 174 +++++++++++++++++++++++++++++++++-------
> >  1 file changed, 146 insertions(+), 28 deletions(-)

For migration:

Acked-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/5] virtio-gpu: add blob migration support
  2023-09-19 15:09   ` Peter Xu
@ 2023-11-06 10:44     ` Marc-André Lureau
  2023-11-07 12:21       ` Laszlo Ersek
  0 siblings, 1 reply; 10+ messages in thread
From: Marc-André Lureau @ 2023-11-06 10:44 UTC (permalink / raw)
  To: Peter Xu
  Cc: qemu-devel, Michael S. Tsirkin, kraxel, Juan Quintela,
	Leonardo Bras Soares Passos, Laszlo Ersek

Hi

On Tue, Sep 19, 2023 at 7:09 PM Peter Xu <peterx@redhat.com> wrote:
>
> On Tue, Sep 19, 2023 at 04:51:21PM +0400, Marc-André Lureau wrote:
> > Hi
> >
> > On Thu, Sep 7, 2023 at 5:15 PM <marcandre.lureau@redhat.com> wrote:
> > >
> > > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > >
> > > Hi,
> > >
> > > This is a follow-up of the previous patch "[PATCH] virtio-gpu: block migration
> > > of VMs with blob=true". Now that migration support is implemented, we can decide
> > > to drop the migration blocker patch, or apply and revert it, so that
> > > backporting of a quick fix is made easier.
> > >
> > > Fixes:
> > > https://bugzilla.redhat.com/show_bug.cgi?id=2236353
> > >
> > > Marc-André Lureau (5):
> > >   virtio-gpu: block migration of VMs with blob=true
> > >   virtio-gpu: factor out restore mapping
> > >   virtio-gpu: move scanout restoration to post_load
> > >   virtio-gpu: add virtio-gpu/blob vmstate subsection
> > >   Revert "virtio-gpu: block migration of VMs with blob=true"
> > >
> > >  hw/display/virtio-gpu.c | 174 +++++++++++++++++++++++++++++++++-------
> > >  1 file changed, 146 insertions(+), 28 deletions(-)
>
> For migration:
>
> Acked-by: Peter Xu <peterx@redhat.com>
>

Anyone else to check this series? Laszlo perhaps?

Or should I just send it as part of the next gpu-stuff PR?

thanks



-- 
Marc-André Lureau


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/5] virtio-gpu: add blob migration support
  2023-11-06 10:44     ` Marc-André Lureau
@ 2023-11-07 12:21       ` Laszlo Ersek
  0 siblings, 0 replies; 10+ messages in thread
From: Laszlo Ersek @ 2023-11-07 12:21 UTC (permalink / raw)
  To: Marc-André Lureau, Peter Xu
  Cc: qemu-devel, Michael S. Tsirkin, kraxel, Juan Quintela,
	Leonardo Bras Soares Passos

On 11/6/23 11:44, Marc-André Lureau wrote:
> Hi
> 
> On Tue, Sep 19, 2023 at 7:09 PM Peter Xu <peterx@redhat.com> wrote:
>>
>> On Tue, Sep 19, 2023 at 04:51:21PM +0400, Marc-André Lureau wrote:
>>> Hi
>>>
>>> On Thu, Sep 7, 2023 at 5:15 PM <marcandre.lureau@redhat.com> wrote:
>>>>
>>>> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>>>>
>>>> Hi,
>>>>
>>>> This is a follow-up of the previous patch "[PATCH] virtio-gpu: block migration
>>>> of VMs with blob=true". Now that migration support is implemented, we can decide
>>>> to drop the migration blocker patch, or apply and revert it, so that
>>>> backporting of a quick fix is made easier.
>>>>
>>>> Fixes:
>>>> https://bugzilla.redhat.com/show_bug.cgi?id=2236353
>>>>
>>>> Marc-André Lureau (5):
>>>>   virtio-gpu: block migration of VMs with blob=true
>>>>   virtio-gpu: factor out restore mapping
>>>>   virtio-gpu: move scanout restoration to post_load
>>>>   virtio-gpu: add virtio-gpu/blob vmstate subsection
>>>>   Revert "virtio-gpu: block migration of VMs with blob=true"
>>>>
>>>>  hw/display/virtio-gpu.c | 174 +++++++++++++++++++++++++++++++++-------
>>>>  1 file changed, 146 insertions(+), 28 deletions(-)
>>
>> For migration:
>>
>> Acked-by: Peter Xu <peterx@redhat.com>
>>
> 
> Anyone else to check this series? Laszlo perhaps?

Sorry, I don't have the patches, plus I'm already loaded with other
reviews elsehwere :/

> Or should I just send it as part of the next gpu-stuff PR?

You appear to have an ACK from Peter; I'd say run with it. Gerd is on CC
so I'm comfortable saying this.

Laszlo



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-11-07 12:23 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-07 13:09 [PATCH v2 0/5] virtio-gpu: add blob migration support marcandre.lureau
2023-09-07 13:09 ` [PATCH v2 1/5] virtio-gpu: block migration of VMs with blob=true marcandre.lureau
2023-09-07 13:09 ` [PATCH v2 2/5] virtio-gpu: factor out restore mapping marcandre.lureau
2023-09-07 13:09 ` [PATCH v2 3/5] virtio-gpu: move scanout restoration to post_load marcandre.lureau
2023-09-07 13:09 ` [PATCH v2 4/5] virtio-gpu: add virtio-gpu/blob vmstate subsection marcandre.lureau
2023-09-07 13:09 ` [PATCH v2 5/5] Revert "virtio-gpu: block migration of VMs with blob=true" marcandre.lureau
2023-09-19 12:51 ` [PATCH v2 0/5] virtio-gpu: add blob migration support Marc-André Lureau
2023-09-19 15:09   ` Peter Xu
2023-11-06 10:44     ` Marc-André Lureau
2023-11-07 12:21       ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).