Re: [PATCH v2 0/1] Implementation of resource_query_layout

From: Zhang, Julia
Date: Wed Jan 10 2024 - 04:41:09 EST


I see, I will implement this. Thank you very much.

On 2023/12/27 09:29, Gurchetan Singh wrote:
>
>
> On Thu, Dec 21, 2023 at 2:01 AM Julia Zhang <julia.zhang@xxxxxxx <mailto:julia.zhang@xxxxxxx>> wrote:
>
> Hi all,
>
> Sorry to late reply. This is v2 of the implementation of
> resource_query_layout. This adds a new ioctl to let guest query information
> of host resource, which is originally from Daniel Stone. We add some
> changes to support query the correct stride of host resource before it's
> created, which is to support to blit data from dGPU to virtio iGPU for dGPU
> prime feature.
>
> Changes from v1 to v2:
> -Squash two patches to a single patch.
> -A small modification of VIRTIO_GPU_F_RESOURCE_QUERY_LAYOUT
>
>
> Below is description of v1:
> This add implementation of resource_query_layout to get the information of
> how the host has actually allocated the buffer. This function is now used
> to query the stride for guest linear resource for dGPU prime on guest VMs.
>
>
> You can use a context specific protocol or even the virgl capabilities [for a linear strided resource].  For example, Sommelier does the following:
>
> https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/vm_tools/sommelier/virtualization/virtgpu_channel.cc#549 <https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/vm_tools/sommelier/virtualization/virtgpu_channel.cc#549>
>
> i.e, you should be able to avoid extra ioctl + hypercall.
>  
>
>
> v1 of kernel side:
>  https:
> //lore.kernel.org/xen-devel/20231110074027.24862-1-julia.zhang@xxxxxxx/T/#t <http://lore.kernel.org/xen-devel/20231110074027.24862-1-julia.zhang@xxxxxxx/T/#t>
>
> v1 of qemu side:
> https:
> //lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@xxxxxxx/T/#t <http://lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@xxxxxxx/T/#t>
>
> Daniel Stone (1):
>   drm/virtio: Implement RESOURCE_GET_LAYOUT ioctl
>
>  drivers/gpu/drm/virtio/virtgpu_drv.c   |  1 +
>  drivers/gpu/drm/virtio/virtgpu_drv.h   | 22 ++++++++-
>  drivers/gpu/drm/virtio/virtgpu_ioctl.c | 66 ++++++++++++++++++++++++++
>  drivers/gpu/drm/virtio/virtgpu_kms.c   |  8 +++-
>  drivers/gpu/drm/virtio/virtgpu_vq.c    | 63 ++++++++++++++++++++++++
>  include/uapi/drm/virtgpu_drm.h         | 21 ++++++++
>  include/uapi/linux/virtio_gpu.h        | 30 ++++++++++++
>  7 files changed, 208 insertions(+), 3 deletions(-)
>
> --
> 2.34.1
>