Dmitry Osipenko <[email protected]> writes:

> On 4/2/25 20:45, Sergio Lopez wrote:
>> 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 improve this situation, we introduce here the HOST_PAGE_SIZE feature.
>> This feature indicates that the host has an extended virtio_gpu_config
>> structure that include it's own page size a new field.
>>
>> On the second commit, we also add a new param that can be read with
>> VIRTGPU_GETPARAM by userspace applications running in the guest to
>> obtain the host's page size and find out the right alignment to be used
>> in shared memory allocations.
>>
>> There has been a discussion in virtio-comments about whether the
>> information about alignment restrictions must be shared in a generic or
>> in a device-specific way, favoring the latter:
>>
>> https://lore.kernel.org/virtio-comment/cy8pr12mb7195b5e575099cd9ca1f2f39dc...@cy8pr12mb7195.namprd12.prod.outlook.com/T/#t
>>
>> v2:
>>  - Rebase on top of current upstream.
>>  - Make a reference in the cover to the discussion about how device
>>    page alignment restrictions should be shared with the driver.
>>
>> Signed-off-by: Sergio Lopez <[email protected]>
>> ---
>> Sergio Lopez (2):
>>       drm/virtio: introduce the HOST_PAGE_SIZE feature
>>       drm/virtio: add VIRTGPU_PARAM_HOST_PAGE_SIZE 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 |  5 +++++
>>  drivers/gpu/drm/virtio/virtgpu_kms.c   | 13 ++++++++++---
>>  include/uapi/drm/virtgpu_drm.h         |  1 +
>>  include/uapi/linux/virtio_gpu.h        |  5 +++++
>>  6 files changed, 24 insertions(+), 3 deletions(-)
>> ---
>> base-commit: acc4d5ff0b61eb1715c498b6536c38c1feb7f3c1
>> change-id: 20250402-virtio-gpu-host-page-size-282c99dfe44c
>>
>> Best regards,
>
> Hi Sergio,
>
> Curious if this feature still wanted. The protocol was updated many
> months ago with the VIRTIO_GPU_F_BLOB_ALIGNMENT addition.

Yes, we still need it to avoid having to carry downstream patches in
Mesa with a hack to hardcoded the alignment.

I'll prepare a new patch series (referencing this one) next week.

Thanks,
Sergio.

Reply via email to