Re: [PATCH] uio_pci_generic does not export memory resources

Alex Williamson
2012-06-08T17:11:34Z

On Fri, 2012-06-08 at 18:44 +0200, Hans J. Koch wrote:
> On Fri, Jun 08, 2012 at 06:16:18PM +0200, Andreas Hartmann wrote:
> > Hi Dominic,
> >
> > Dominic Eschweiler wrote:
> > > Am Freitag, den 08.06.2012, 08:16 -0600 schrieb Alex Williamson:
> > >> Yes, thanks Jan. This is exactly what VFIO does. VFIO provides
> > >> secure config space access, resource access, DMA mapping services, and
> > >> full interrupt support to userspace.
>
> VFIO is not a "better UIO". It *requires* an IOMMU. Dominic didn't say on
> what CPU he's working, so it's not clear if he can use VFIO at all.
>
> UIO is intended for general use with devices that have mappable registers
> and don't fit into any other subsystem. No more, no less.

VFIO is a secure UIO. An IOMMU is required for any model that allows a
user to program DMA of a device, whether VFIO or something else. As
Michael noted, if we allow UIO PCI to enable bus master, we open
ourselves up to a whole world of problems with a user suddenly having
access to and DMA'able memory in the system. So really, add that the
device must only use PIO to your list of requirements for UIO, which
rules out any kind of high speed device. Thanks,

Alex