On Mon, Jun 8, 2020 at 6:43 PM Michael S. Tsirkin mst@redhat.com wrote:
On Fri, May 15, 2020 at 04:26:15PM +0900, David Stevens wrote:
if (virtio_has_feature(vgdev->vdev, VIRTIO_GPU_F_RESOURCE_UUID)) {
vgdev->has_resource_assign_uuid = true;
}
Just a question: this relies on DMA bufs so I assume it is not really assumed to work when DMA API is bypassed, right? Rather than worry what does it mean, how about just disabling this feature without PLATFORM_DMA for now?
By PLATFORM_DMA, do you mean CONFIG_DMA_SHARED_BUFFER?
Sorry, no. I mean VIRTIO_F_IOMMU_PLATFORM which in the future will be renamed to VIRTIO_F_PLATFORM_ACCESS.
Shouldn't things work independent of whether or not that feature is set? If a virtio driver properly uses the dma_buf APIs (which virtgpu seems to), then that should take care of any mapping/synchronization related to VIRTIO_F_IOMMU_PLATFORM. If anything, the case where VIRTIO_F_IOMMU_PLATFORM isn't set is easier, since then we know that the "the device has same access [sic] to memory addresses supplied to it as the driver has", according to the specification.
-David