[PATCH v2] virtio-gpu: Add definition for resource_uuid feature

Dorinda Bassey posted 1 patch 1 month, 2 weeks ago
hw/display/vhost-user-gpu.c    | 4 ++++
hw/display/virtio-gpu-base.c   | 3 +++
include/hw/virtio/virtio-gpu.h | 3 +++
3 files changed, 10 insertions(+)
[PATCH v2] virtio-gpu: Add definition for resource_uuid feature
Posted by Dorinda Bassey 1 month, 2 weeks ago
Add the VIRTIO_GPU_F_RESOURCE_UUID feature to enable the assignment
of resources UUIDs for export to other virtio devices.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
---
 hw/display/vhost-user-gpu.c    | 4 ++++
 hw/display/virtio-gpu-base.c   | 3 +++
 include/hw/virtio/virtio-gpu.h | 3 +++
 3 files changed, 10 insertions(+)

diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
index 14548f1a57..aa6c6416fa 100644
--- a/hw/display/vhost-user-gpu.c
+++ b/hw/display/vhost-user-gpu.c
@@ -631,6 +631,10 @@ vhost_user_gpu_device_realize(DeviceState *qdev, Error **errp)
         error_report("EDID requested but the backend doesn't support it.");
         g->parent_obj.conf.flags &= ~(1 << VIRTIO_GPU_FLAG_EDID_ENABLED);
     }
+    if (virtio_has_feature(g->vhost->dev.features,
+        VIRTIO_GPU_F_RESOURCE_UUID)) {
+        g->parent_obj.conf.flags |= 1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED;
+    }
 
     if (!virtio_gpu_base_device_realize(qdev, NULL, NULL, errp)) {
         return;
diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index 4fc7ef8896..7827536ac4 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -235,6 +235,9 @@ virtio_gpu_base_get_features(VirtIODevice *vdev, uint64_t features,
     if (virtio_gpu_context_init_enabled(g->conf)) {
         features |= (1 << VIRTIO_GPU_F_CONTEXT_INIT);
     }
+    if (virtio_gpu_resource_uuid_enabled(g->conf)) {
+        features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
+    }
 
     return features;
 }
diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
index 7a59379f5a..f12869376c 100644
--- a/include/hw/virtio/virtio-gpu.h
+++ b/include/hw/virtio/virtio-gpu.h
@@ -99,6 +99,7 @@ enum virtio_gpu_base_conf_flags {
     VIRTIO_GPU_FLAG_BLOB_ENABLED,
     VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED,
     VIRTIO_GPU_FLAG_RUTABAGA_ENABLED,
+    VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED,
 };
 
 #define virtio_gpu_virgl_enabled(_cfg) \
@@ -115,6 +116,8 @@ enum virtio_gpu_base_conf_flags {
     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
 #define virtio_gpu_rutabaga_enabled(_cfg) \
     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
+#define virtio_gpu_resource_uuid_enabled(_cfg) \
+    (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED))
 #define virtio_gpu_hostmem_enabled(_cfg) \
     (_cfg.hostmem > 0)
 
-- 
2.46.1
Re: [PATCH v2] virtio-gpu: Add definition for resource_uuid feature
Posted by Marc-André Lureau 2 weeks, 2 days ago
Hi Michael, Alex,

Any of you could take this in the next virtio-related PR?

thanks

On Mon, Oct 7, 2024 at 11:01 AM Dorinda Bassey <dbassey@redhat.com> wrote:

> Add the VIRTIO_GPU_F_RESOURCE_UUID feature to enable the assignment
> of resources UUIDs for export to other virtio devices.
>
> Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
> ---
>  hw/display/vhost-user-gpu.c    | 4 ++++
>  hw/display/virtio-gpu-base.c   | 3 +++
>  include/hw/virtio/virtio-gpu.h | 3 +++
>  3 files changed, 10 insertions(+)
>
> diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
> index 14548f1a57..aa6c6416fa 100644
> --- a/hw/display/vhost-user-gpu.c
> +++ b/hw/display/vhost-user-gpu.c
> @@ -631,6 +631,10 @@ vhost_user_gpu_device_realize(DeviceState *qdev,
> Error **errp)
>          error_report("EDID requested but the backend doesn't support
> it.");
>          g->parent_obj.conf.flags &= ~(1 << VIRTIO_GPU_FLAG_EDID_ENABLED);
>      }
> +    if (virtio_has_feature(g->vhost->dev.features,
> +        VIRTIO_GPU_F_RESOURCE_UUID)) {
> +        g->parent_obj.conf.flags |= 1 <<
> VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED;
> +    }
>
>      if (!virtio_gpu_base_device_realize(qdev, NULL, NULL, errp)) {
>          return;
> diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
> index 4fc7ef8896..7827536ac4 100644
> --- a/hw/display/virtio-gpu-base.c
> +++ b/hw/display/virtio-gpu-base.c
> @@ -235,6 +235,9 @@ virtio_gpu_base_get_features(VirtIODevice *vdev,
> uint64_t features,
>      if (virtio_gpu_context_init_enabled(g->conf)) {
>          features |= (1 << VIRTIO_GPU_F_CONTEXT_INIT);
>      }
> +    if (virtio_gpu_resource_uuid_enabled(g->conf)) {
> +        features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
> +    }
>
>      return features;
>  }
> diff --git a/include/hw/virtio/virtio-gpu.h
> b/include/hw/virtio/virtio-gpu.h
> index 7a59379f5a..f12869376c 100644
> --- a/include/hw/virtio/virtio-gpu.h
> +++ b/include/hw/virtio/virtio-gpu.h
> @@ -99,6 +99,7 @@ enum virtio_gpu_base_conf_flags {
>      VIRTIO_GPU_FLAG_BLOB_ENABLED,
>      VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED,
>      VIRTIO_GPU_FLAG_RUTABAGA_ENABLED,
> +    VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED,
>  };
>
>  #define virtio_gpu_virgl_enabled(_cfg) \
> @@ -115,6 +116,8 @@ enum virtio_gpu_base_conf_flags {
>      (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
>  #define virtio_gpu_rutabaga_enabled(_cfg) \
>      (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
> +#define virtio_gpu_resource_uuid_enabled(_cfg) \
> +    (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED))
>  #define virtio_gpu_hostmem_enabled(_cfg) \
>      (_cfg.hostmem > 0)
>
> --
> 2.46.1
>
>
>

-- 
Marc-André Lureau
Re: [PATCH v2] virtio-gpu: Add definition for resource_uuid feature
Posted by Michael S. Tsirkin 2 weeks, 2 days ago
On Thu, Nov 07, 2024 at 05:09:28PM +0400, Marc-André Lureau wrote:
> Hi Michael, Alex,
> 
> Any of you could take this in the next virtio-related PR?
> 
> thanks

Sorry, we are past soft freeze. So not unless this is a bugfix.
Re: [PATCH v2] virtio-gpu: Add definition for resource_uuid feature
Posted by Manos Pitsidianakis 1 month, 2 weeks ago
On Mon, 07 Oct 2024 10:00, Dorinda Bassey <dbassey@redhat.com> wrote:
>Add the VIRTIO_GPU_F_RESOURCE_UUID feature to enable the assignment
>of resources UUIDs for export to other virtio devices.
>
>Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
>---
> hw/display/vhost-user-gpu.c    | 4 ++++
> hw/display/virtio-gpu-base.c   | 3 +++
> include/hw/virtio/virtio-gpu.h | 3 +++
> 3 files changed, 10 insertions(+)
>
>diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
>index 14548f1a57..aa6c6416fa 100644
>--- a/hw/display/vhost-user-gpu.c
>+++ b/hw/display/vhost-user-gpu.c
>@@ -631,6 +631,10 @@ vhost_user_gpu_device_realize(DeviceState *qdev, Error **errp)
>         error_report("EDID requested but the backend doesn't support it.");
>         g->parent_obj.conf.flags &= ~(1 << VIRTIO_GPU_FLAG_EDID_ENABLED);
>     }
>+    if (virtio_has_feature(g->vhost->dev.features,
>+        VIRTIO_GPU_F_RESOURCE_UUID)) {
>+        g->parent_obj.conf.flags |= 1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED;
>+    }
> 
>     if (!virtio_gpu_base_device_realize(qdev, NULL, NULL, errp)) {
>         return;
>diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
>index 4fc7ef8896..7827536ac4 100644
>--- a/hw/display/virtio-gpu-base.c
>+++ b/hw/display/virtio-gpu-base.c
>@@ -235,6 +235,9 @@ virtio_gpu_base_get_features(VirtIODevice *vdev, uint64_t features,
>     if (virtio_gpu_context_init_enabled(g->conf)) {
>         features |= (1 << VIRTIO_GPU_F_CONTEXT_INIT);
>     }
>+    if (virtio_gpu_resource_uuid_enabled(g->conf)) {
>+        features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
>+    }
> 
>     return features;
> }
>diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
>index 7a59379f5a..f12869376c 100644
>--- a/include/hw/virtio/virtio-gpu.h
>+++ b/include/hw/virtio/virtio-gpu.h
>@@ -99,6 +99,7 @@ enum virtio_gpu_base_conf_flags {
>     VIRTIO_GPU_FLAG_BLOB_ENABLED,
>     VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED,
>     VIRTIO_GPU_FLAG_RUTABAGA_ENABLED,
>+    VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED,
> };
> 
> #define virtio_gpu_virgl_enabled(_cfg) \
>@@ -115,6 +116,8 @@ enum virtio_gpu_base_conf_flags {
>     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
> #define virtio_gpu_rutabaga_enabled(_cfg) \
>     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
>+#define virtio_gpu_resource_uuid_enabled(_cfg) \
>+    (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED))
> #define virtio_gpu_hostmem_enabled(_cfg) \
>     (_cfg.hostmem > 0)
> 
>-- 
>2.46.1
>
>

Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Re: [PATCH v2] virtio-gpu: Add definition for resource_uuid feature
Posted by Marc-André Lureau 1 month, 2 weeks ago
Hi

On Mon, Oct 7, 2024 at 11:00 AM Dorinda Bassey <dbassey@redhat.com> wrote:
>
> Add the VIRTIO_GPU_F_RESOURCE_UUID feature to enable the assignment
> of resources UUIDs for export to other virtio devices.
>
> Signed-off-by: Dorinda Bassey <dbassey@redhat.com>

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

> ---
>  hw/display/vhost-user-gpu.c    | 4 ++++
>  hw/display/virtio-gpu-base.c   | 3 +++
>  include/hw/virtio/virtio-gpu.h | 3 +++
>  3 files changed, 10 insertions(+)
>
> diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
> index 14548f1a57..aa6c6416fa 100644
> --- a/hw/display/vhost-user-gpu.c
> +++ b/hw/display/vhost-user-gpu.c
> @@ -631,6 +631,10 @@ vhost_user_gpu_device_realize(DeviceState *qdev, Error **errp)
>          error_report("EDID requested but the backend doesn't support it.");
>          g->parent_obj.conf.flags &= ~(1 << VIRTIO_GPU_FLAG_EDID_ENABLED);
>      }
> +    if (virtio_has_feature(g->vhost->dev.features,
> +        VIRTIO_GPU_F_RESOURCE_UUID)) {
> +        g->parent_obj.conf.flags |= 1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED;
> +    }
>
>      if (!virtio_gpu_base_device_realize(qdev, NULL, NULL, errp)) {
>          return;
> diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
> index 4fc7ef8896..7827536ac4 100644
> --- a/hw/display/virtio-gpu-base.c
> +++ b/hw/display/virtio-gpu-base.c
> @@ -235,6 +235,9 @@ virtio_gpu_base_get_features(VirtIODevice *vdev, uint64_t features,
>      if (virtio_gpu_context_init_enabled(g->conf)) {
>          features |= (1 << VIRTIO_GPU_F_CONTEXT_INIT);
>      }
> +    if (virtio_gpu_resource_uuid_enabled(g->conf)) {
> +        features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
> +    }
>
>      return features;
>  }
> diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
> index 7a59379f5a..f12869376c 100644
> --- a/include/hw/virtio/virtio-gpu.h
> +++ b/include/hw/virtio/virtio-gpu.h
> @@ -99,6 +99,7 @@ enum virtio_gpu_base_conf_flags {
>      VIRTIO_GPU_FLAG_BLOB_ENABLED,
>      VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED,
>      VIRTIO_GPU_FLAG_RUTABAGA_ENABLED,
> +    VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED,
>  };
>
>  #define virtio_gpu_virgl_enabled(_cfg) \
> @@ -115,6 +116,8 @@ enum virtio_gpu_base_conf_flags {
>      (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
>  #define virtio_gpu_rutabaga_enabled(_cfg) \
>      (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
> +#define virtio_gpu_resource_uuid_enabled(_cfg) \
> +    (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED))
>  #define virtio_gpu_hostmem_enabled(_cfg) \
>      (_cfg.hostmem > 0)
>
> --
> 2.46.1
>