Re: [dpdk-dev] [PATCH 2/2] uio: new driver to support PCI MSI-X

Avi Kivity
2015-10-06T12:16:04Z

On 10/06/2015 10:33 AM, Stephen Hemminger wrote:
> Other than implementation objections, so far the two main arguments
> against this reduce to:
> 1. If you allow UIO ioctl then it opens an API hook for all the crap out
> of tree UIO drivers to do what they want.
> 2. If you allow UIO MSI-X then you are expanding the usage of userspace
> device access in an insecure manner.
>
> Another alternative which I explored was making a version of VFIO that
> works without IOMMU. It solves #1 but actually increases the likely negative
> response to arguent #2. This would keep same API, and avoid having to
> modify UIO. But we would still have the same (if not more resistance)
> from IOMMU developers who believe all systems have to be secure against
> root.

vfio's charter was explicitly aiming for modern setups with iommus.

This could be revisited, but I agree it will have even more resistance,
justified IMO.

btw, (2) doesn't really add any insecurity. The user could already poke
at the msix tables (as well as perform DMA); they just couldn't get a
useful interrupt out of them.

Maybe a module parameter "allow_insecure_dma" can be added to
uio_pci_generic. Without the parameter, bus mastering and msix is
disabled, with the parameter it is allowed. This requires the sysadmin
to take a positive step in order to make use of their hardware.