All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] hw/display: add vhost-user-media device
@ 2026-06-30 11:23 Albert Esteve
  2026-06-30 11:23 ` [PATCH 1/3] virtio_ids: Add ID for virtio media Albert Esteve
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Albert Esteve @ 2026-06-30 11:23 UTC (permalink / raw)
  To: qemu-devel
  Cc: manos.pitsidianakis, Stefano Garzarella, Marc-André Lureau,
	Michael S. Tsirkin, Cornelia Huck, Paolo Bonzini, Albert Esteve

This series introduces the QEMU frontend for the virtio-media device,
a VirtIO device that exposes V4L2 video device functionality to the guest
over the virtio-media protocol, as specified in the VirtIO specification
v1.4, section 5.22 [1].

Note on patch 1
---------------
Patch 1 adds a temporary virtio-media device ID to QEMU's copy of the
Linux standard headers. It is included to unblock testing but is marked
"DO NOT MERGE": it will be superseded once the corresponding kernel-side
patch [2] is merged upstream and QEMU's headers are updated to match.
Patches 2 and 3 depend on patch 1 for the VIRTIO_ID_MEDIA definition.

Overview
--------
Patch 2 introduces the vhost-user-media device frontend as defined by
the specification.

Patch 3 adds a 4 GiB shared memory PCI BAR (BAR 2) used by the guest
driver as a DMA cache for video buffer exchange with the host backend.
The region is exposed to the guest through a VirtIO shared memory
capability.

Testing
-------
The series was tested with:

  Guest driver: the virtio-media out-of-tree Linux kernel driver [3].
  An upstream series for this driver has also been posted [4].

  Host backend: the rust-vmm vhost-device-media backend [5]:
      cargo run -- -s /path/to/media.sock -d /dev/video0 --backend v4l2-proxy

  Full QEMU invocation:

      qemu-system-x86_64 \
          -chardev socket,path=/tmp/media.sock,id=media \
          -device vhost-user-media-pci,chardev=media,id=media \
          -object memory-backend-memfd,id=mem,size=4G,share=on \
          -numa node,memdev=mem

[1] https://docs.oasis-open.org/virtio/virtio/v1.4/cs01/virtio-v1.4-cs01.html
[2] https://lore.kernel.org/all/20260310-virtio-media-id-v1-1-be211bcf682b@redhat.com/
[3] https://github.com/chromeos/virtio-media/tree/main/driver
[4] https://lore.kernel.org/all/20260622204343.1994418-1-briandaniels@google.com/
[5] https://github.com/rust-vmm/vhost-device/pull/944

Albert Esteve (3):
  virtio_ids: Add ID for virtio media
  hw/display: add vhost-user-media device
  hw/display/vhost-user-media: add shared memory cache BAR

 hw/display/Kconfig                          |   5 +
 hw/display/meson.build                      |   3 +
 hw/display/vhost-user-media-pci.c           | 105 ++++++
 hw/display/vhost-user-media.c               | 397 ++++++++++++++++++++
 hw/virtio/virtio.c                          |   3 +-
 include/hw/virtio/vhost-user-media.h        |  47 +++
 include/standard-headers/linux/virtio_ids.h |   1 +
 7 files changed, 560 insertions(+), 1 deletion(-)
 create mode 100644 hw/display/vhost-user-media-pci.c
 create mode 100644 hw/display/vhost-user-media.c
 create mode 100644 include/hw/virtio/vhost-user-media.h

-- 
2.54.0



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

end of thread, other threads:[~2026-07-15 15:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-30 11:23 [PATCH 0/3] hw/display: add vhost-user-media device Albert Esteve
2026-06-30 11:23 ` [PATCH 1/3] virtio_ids: Add ID for virtio media Albert Esteve
2026-06-30 11:23 ` [PATCH 2/3] hw/display: add vhost-user-media device Albert Esteve
2026-06-30 11:27   ` Daniel P. Berrangé
2026-06-30 11:37     ` Albert Esteve
2026-06-30 11:23 ` [PATCH 3/3] hw/display/vhost-user-media: add shared memory cache BAR Albert Esteve
2026-07-15 15:40 ` [PATCH 0/3] hw/display: add vhost-user-media device Dorinda Bassey

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.