<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 21, 2023 at 2:01 AM Julia Zhang <<a href="mailto:julia.zhang@amd.com">julia.zhang@amd.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
Sorry to late reply. This is v2 of the implementation of<br>
resource_query_layout. This adds a new ioctl to let guest query information<br>
of host resource, which is originally from Daniel Stone. We add some<br>
changes to support query the correct stride of host resource before it's<br>
created, which is to support to blit data from dGPU to virtio iGPU for dGPU<br>
prime feature. <br>
<br>
Changes from v1 to v2:<br>
-Squash two patches to a single patch. <br>
-A small modification of VIRTIO_GPU_F_RESOURCE_QUERY_LAYOUT<br>
<br>
<br>
Below is description of v1:<br>
This add implementation of resource_query_layout to get the information of<br>
how the host has actually allocated the buffer. This function is now used<br>
to query the stride for guest linear resource for dGPU prime on guest VMs.<br></blockquote><div><br></div><div>You can use a context specific protocol or even the virgl capabilities [for a linear strided resource].  For example, Sommelier does the following:</div><div><br></div><div><a href="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</a><br></div><div><br></div><div>i.e, you should be able to avoid extra ioctl + hypercall.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
v1 of kernel side:<br>
 https:<br>
//<a href="http://lore.kernel.org/xen-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t" rel="noreferrer" target="_blank">lore.kernel.org/xen-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t</a><br>
<br>
v1 of qemu side:<br>
https:<br>
//<a href="http://lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t" rel="noreferrer" target="_blank">lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t</a><br>
<br>
Daniel Stone (1):<br>
  drm/virtio: Implement RESOURCE_GET_LAYOUT ioctl<br>
<br>
 drivers/gpu/drm/virtio/virtgpu_drv.c   |  1 +<br>
 drivers/gpu/drm/virtio/virtgpu_drv.h   | 22 ++++++++-<br>
 drivers/gpu/drm/virtio/virtgpu_ioctl.c | 66 ++++++++++++++++++++++++++<br>
 drivers/gpu/drm/virtio/virtgpu_kms.c   |  8 +++-<br>
 drivers/gpu/drm/virtio/virtgpu_vq.c    | 63 ++++++++++++++++++++++++<br>
 include/uapi/drm/virtgpu_drm.h         | 21 ++++++++<br>
 include/uapi/linux/virtio_gpu.h        | 30 ++++++++++++<br>
 7 files changed, 208 insertions(+), 3 deletions(-)<br>
<br>
-- <br>
2.34.1<br>
<br>
</blockquote></div></div>