On 4/28/26 22:44, Sergio Lopez wrote:
> There's an increasing 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
> 
> Changes in v2:
> - Rebased.
> - Moved blob size alignment validation to verify_blob(), rejecting
> misaligned sizes early in the ioctl path instead of checking in
> virtio_gpu_cmd_resource_create_blob() and virtio_gpu_cmd_map()
> (Dmitry Osipenko).
> 
> 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   |  2 ++
>  drivers/gpu/drm/virtio/virtgpu_ioctl.c | 10 ++++++++++
>  drivers/gpu/drm/virtio/virtgpu_kms.c   | 14 +++++++++++---
>  include/uapi/drm/virtgpu_drm.h         |  1 +
>  include/uapi/linux/virtio_gpu.h        |  9 +++++++++
>  6 files changed, 34 insertions(+), 3 deletions(-)
> 

Applied to misc-next, thanks

-- 
Best regards,
Dmitry

Reply via email to