[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251110125213.12633-1-slp@redhat.com>
Date: Mon, 10 Nov 2025 13:52:10 +0100
From: Sergio Lopez <slp@...hat.com>
To: David Airlie <airlied@...hat.com>,
Gerd Hoffmann <kraxel@...hat.com>,
Dmitry Osipenko <dmitry.osipenko@...labora.com>,
Gurchetan Singh <gurchetansingh@...omium.org>,
Chia-I Wu <olvaffe@...il.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
Simona Vetter <simona@...ll.ch>,
"Michael S. Tsirkin" <mst@...hat.com>,
Jason Wang <jasowang@...hat.com>,
Xuan Zhuo <xuanzhuo@...ux.alibaba.com>,
Eugenio Pérez <eperezma@...hat.com>,
dri-devel@...ts.freedesktop.org,
virtualization@...ts.linux.dev,
linux-kernel@...r.kernel.org
Cc: Sergio Lopez <slp@...hat.com>
Subject: [PATCH 0/3] drm/virtio: introduce F_BLOB_ALIGNMENT support
There's an incresing number of machines supporting multiple page sizes
and on these machines the host and a guest can be running, each one,
with a different page size.
For what pertains to virtio-gpu, this is not a problem if the page size
of the guest happens to be bigger or equal than the host, but will
potentially lead to failures in memory allocations and/or mappings
otherwise.
To deal with this, the virtio-spec was extended to introduce with the
VIRTIO_GPU_F_BLOB_ALIGNMENT feature [1]. If this feature is negotiated,
we must use the "blob_alignment" field in the config to ensure every
CREATE_BLOB and MAP_BLOB is properly aligned before sending it to the
device.
We also introduce the VIRTGPU_PARAM_BLOB_ALIGNMENT parameter to allow
userspace to query the alignment restrictions for blobs.
This supersedes "drm/virtio: introduce the HOST_PAGE_SIZE feature" [2].
[1] https://github.com/oasis-tcs/virtio-spec/commit/f9abfd55cb663837dda1153b826216dcf4d25b84
[2] https://lkml.org/lkml/2024/7/23/438
Sergio Lopez (3):
drm/virtio: support VIRTIO_GPU_F_BLOB_ALIGNMENT
drm/virtio: honor blob_alignment requirements
drm/virtio: add VIRTGPU_PARAM_BLOB_ALIGNMENT to params
drivers/gpu/drm/virtio/virtgpu_drv.c | 1 +
drivers/gpu/drm/virtio/virtgpu_drv.h | 4 +++-
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 5 +++++
drivers/gpu/drm/virtio/virtgpu_kms.c | 14 +++++++++++---
drivers/gpu/drm/virtio/virtgpu_object.c | 6 ++++--
drivers/gpu/drm/virtio/virtgpu_prime.c | 7 +++++--
drivers/gpu/drm/virtio/virtgpu_vq.c | 12 +++++++++++-
drivers/gpu/drm/virtio/virtgpu_vram.c | 10 ++++++++--
include/uapi/drm/virtgpu_drm.h | 1 +
include/uapi/linux/virtio_gpu.h | 9 +++++++++
10 files changed, 58 insertions(+), 11 deletions(-)
--
2.51.0
Powered by blists - more mailing lists