Link to the documentation:
https://lore.kernel.org/all/20240912144432.126717-1-aest...@redhat.com/T/#t

On Thu, Sep 12, 2024 at 4:53 PM Albert Esteve <aest...@redhat.com> wrote:

> Hi all,
>
> v2->v3:
> - Add track for mapped memory in VIRTIO
>   Shared memory regions, so that boundaries
>   can be verified when a request for
>   new mmap is received
> - Use address_space_read/write() for
>   MEM_READ/_WRITE handling methods.
> - Improve/fix support for flexible
>   array members for MEM_READ/_WRITE requests.
> - Split documentation into a separate patch.
> - Various small fixes from previous review.
>
> The usecase for this patch is, e.g., to support
> vhost-user-gpu RESOURCE_BLOB operations,
> or DAX Window request for virtio-fs. In
> general, any operation where a backend
> need to request the frontend to mmap an
> fd into a VIRTIO Shared Memory Region,
> so that the guest can then access it.
>
> After receiving the SHMEM_MAP/UNMAP request,
> the frontend will perform the mmap with the
> instructed parameters (i.e., shmid, shm_offset,
> fd_offset, fd, lenght).
>
> As there are already a couple devices
> that could benefit of such a feature,
> and more could require it in the future,
> the goal is to make the implementation
> generic.
>
> To that end, the VIRTIO Shared Memory
> Region list is declared in the `VirtIODevice`
> struct.
>
> This patch also includes:
> SHMEM_CONFIG frontend request that is
> specifically meant to allow generic
> vhost-user-device frontend to be able to
> query VIRTIO Shared Memory settings from the
> backend (as this device is generic and agnostic
> of the actual backend configuration).
>
> Finally, MEM_READ/WRITE backend requests are
> added to deal with a potential issue when having
> any backend sharing a descriptor that references
> a mapping to another backend. The first
> backend will not be able to see these
> mappings. So these requests are a fallback
> for vhost-user memory translation fails.
>
> Albert Esteve (5):
>   vhost-user: Add VIRTIO Shared Memory map request
>   virtio: Track shared memory mappings
>   vhost_user: Add frontend command for shmem config
>   vhost-user-dev: Add cache BAR
>   vhost_user: Add MEM_READ/WRITE backend requests
>
>  hw/virtio/vhost-user-base.c               |  37 ++-
>  hw/virtio/vhost-user-device-pci.c         |  39 +++-
>  hw/virtio/vhost-user.c                    | 273 ++++++++++++++++++++--
>  hw/virtio/virtio.c                        |  59 +++++
>  include/hw/virtio/vhost-backend.h         |   6 +
>  include/hw/virtio/vhost-user.h            |   1 +
>  include/hw/virtio/virtio.h                |  26 +++
>  subprojects/libvhost-user/libvhost-user.c | 144 ++++++++++++
>  subprojects/libvhost-user/libvhost-user.h |  90 +++++++
>  9 files changed, 648 insertions(+), 27 deletions(-)
>
> --
> 2.45.2
>
>

Reply via email to