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 >