Re: [RFC V2] virtio: Add platform specific DMA API translation for virito devices

From: Ram Pai
Date: Thu May 24 2018 - 02:28:30 EST


On Wed, May 23, 2018 at 09:50:02PM +0300, Michael S. Tsirkin wrote:
> subj: s/virito/virtio/
>
..snip..
> > machine_subsys_initcall_sync(pseries, tce_iommu_bus_notifier_init);
> > +
> > +bool platform_forces_virtio_dma(struct virtio_device *vdev)
> > +{
> > + /*
> > + * On protected guest platforms, force virtio core to use DMA
> > + * MAP API for all virtio devices. But there can also be some
> > + * exceptions for individual devices like virtio balloon.
> > + */
> > + return (of_find_compatible_node(NULL, NULL, "ibm,ultravisor") != NULL);
> > +}
>
> Isn't this kind of slow? vring_use_dma_api is on
> data path and supposed to be very fast.

Yes it is slow and not ideal. This won't be the final code. The final
code will cache the information in some global variable and used
in this function.

However this code was added to the RFC to illustrate the idea that dma
operation are needed only in a secure/protected environment.

RP