mbox series

[v2,0/1] Implementation of resource_query_layout

Message ID 20231221100016.4022353-1-julia.zhang@amd.com (mailing list archive)
Headers show
Series Implementation of resource_query_layout | expand

Message

Zhang, Julia Dec. 21, 2023, 10 a.m. UTC
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.

v1 of kernel side:
 https:
//lore.kernel.org/xen-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t

v1 of qemu side:
https:
//lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@amd.com/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(-)

Comments

Gurchetan Singh Dec. 27, 2023, 1:29 a.m. UTC | #1
On Thu, Dec 21, 2023 at 2:01 AM Julia Zhang <julia.zhang@amd.com> 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

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@amd.com/T/#t
>
> v1 of qemu side:
> https:
> //
> lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@amd.com/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
>
>
Zhang, Julia Jan. 10, 2024, 9:40 a.m. UTC | #2
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@amd.com <mailto:julia.zhang@amd.com>> 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@amd.com/T/#t <http://lore.kernel.org/xen-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t>
> 
>     v1 of qemu side:
>     https:
>     //lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t <http://lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@amd.com/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
>