RE: [PATCH v2 2/5] drm/virtio: Add a helper to map and note the dma addrs and lengths

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dmitry,

> Subject: Re: [PATCH v2 2/5] drm/virtio: Add a helper to map and note the
> dma addrs and lengths
> 
> On 10/22/24 07:51, Kasireddy, Vivek wrote:
> > Hi Dmitry,
> >
> >>
> >> On 8/13/24 06:49, Vivek Kasireddy wrote:
> >>> +long virtgpu_dma_buf_import_sgt(struct virtio_gpu_mem_entry
> **ents,
> >>> +				unsigned int *nents,
> >>> +				struct virtio_gpu_object *bo,
> >>> +				struct dma_buf_attachment *attach)
> >>> +{
> >>> +	struct scatterlist *sl;
> >>> +	struct sg_table *sgt;
> >>> +	long i, ret;
> >>> +
> >>> +	dma_resv_assert_held(attach->dmabuf->resv);
> >>> +
> >>> +	ret = dma_resv_wait_timeout(attach->dmabuf->resv,
> >>> +				    DMA_RESV_USAGE_KERNEL,
> >>> +				    false, MAX_SCHEDULE_TIMEOUT);
> >>
> >> Why this wait is needed?
> > The intention was to wait for any pending operations on the backing object
> > to finish and let it become idle before mapping and accessing the
> underlying
> > memory. But I suspect this wait may not be necessary given that we would
> > have already called dma_buf_pin() at this point, which would have had the
> > desired effect?
> 
> Looking at the dma_buf_map_attachment() code, I see that it does both of
> pinning and waiting for the fence by itself. Hence should be safe to
> drop both dma_buf_pin() and dma_resv_wait_timeout(), please test.
Sure, I'll retest again but it looks like dma_buf_map_attachment() pins and
or waits for fence only in specific situations. That is, it pins only if the exporter
is non-dynamic and if CONFIG_DMABUF_MOVE_NOTIFY is not enabled. And,
it waits for the fence only if the importer is non-dynamic. Since I have only tested
with a dynamic exporter (Xe driver), I did not encounter any issues but it makes
sense to augment the code to account for non-dynamic exporters as well.

> 
> BTW, is any DG2 GPU suitable for testing of this patchset? Will I be
> able to test it using a regular consumer A750 card?
Yes, you can test with any DG2 dGPU as long as you can passthrough it to the
Guest VM. And, if there is an iGPU available on the Host, you can use GTK/SDL UI
for local display or Spice UI for remote display if there is no iGPU on the Host.
This is exactly how I started testing this patch series but I am now predominantly
testing this series with SRIOV enabled iGPUs and dGPUs.

Thanks,
Vivek

> 
> --
> Best regards,
> Dmitry




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux