I used it now, Thanks! On Fri, Jul 17, 2026 at 10:39 AM Albert Esteve <[email protected]> wrote:
> On Thu, Jul 16, 2026 at 3:25 PM Dorinda Bassey <[email protected]> wrote: > > > > From: Matej Hrica <[email protected]> > > > > Add a 'hostmem' property to the vhost-user-gpu which enables the shared > > memory in the parent object. > > > > Register a container MR in the shmem_list for SHMEM_MAP/UNMAP > > operations. A container MR is used so that SHMEM_MAP FD-backed > > subregions each get their own KVM memory slot with the correct > > backing fd. > > > > Signed-off-by: Matej Hrica <[email protected]> > > Signed-off-by: Dorinda Bassey <[email protected]> > > --- > > hw/display/vhost-user-gpu.c | 16 ++++++++++++++++ > > 1 file changed, 16 insertions(+) > > > > diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c > > index 06549c98e07..7e4580aa895 100644 > > --- a/hw/display/vhost-user-gpu.c > > +++ b/hw/display/vhost-user-gpu.c > > @@ -655,6 +655,21 @@ vhost_user_gpu_device_realize(DeviceState *qdev, > Error **errp) > > } > > > > g->vhost_gpu_fd = -1; > > + > > + /* > > + * If shared memory is enabled, register the hostmem region for > > + * SHMEM_MAP/UNMAP operations. > > + */ > > + if (virtio_gpu_hostmem_enabled(g->parent_obj.conf)) { > > + VirtioSharedMemory *shmem = g_new0(VirtioSharedMemory, 1); > > + shmem->shmid = VIRTIO_GPU_SHM_ID_HOST_VISIBLE; > > + memory_region_init(&shmem->mr, OBJECT(vdev), > > + "vhost-user-gpu-shmem", > > + g->parent_obj.conf.hostmem); > > + memory_region_add_subregion(&g->parent_obj.hostmem, 0, > &shmem->mr); > > + QTAILQ_INIT(&shmem->mmaps); > > + QSIMPLEQ_INSERT_TAIL(&vdev->shmem_list, shmem, entry); > > + } > > Why not just use virtio_new_shmem_region()? > > > } > > > > static struct vhost_dev *vhost_user_gpu_get_vhost(VirtIODevice *vdev) > > @@ -665,6 +680,7 @@ static struct vhost_dev > *vhost_user_gpu_get_vhost(VirtIODevice *vdev) > > > > static const Property vhost_user_gpu_properties[] = { > > VIRTIO_GPU_BASE_PROPERTIES(VhostUserGPU, parent_obj.conf), > > + DEFINE_PROP_SIZE("hostmem", VhostUserGPU, parent_obj.conf.hostmem, > 0), > > }; > > > > static void > > -- > > 2.52.0 > > > >
