Messages in this thread | | | Subject | Re: [PATCH] uio_pci_generic does not export memory resources | From | Alex Williamson <> | Date | Fri, 08 Jun 2012 08:16:49 -0600 |
| |
On Fri, 2012-06-08 at 15:16 +0200, Jan Kiszka wrote: > On 2012-06-08 15:03, Michael S. Tsirkin wrote: > >> + /* set master */ > >> + pci_set_master(pdev); > >> + > >> + /* set DMA mask */ > >> + err = pci_set_dma_mask(pdev, DMA_BIT_MASK(64)); > > > > uio currently only supports devices which do not > > do DMA. > > > > DMA from uio controlled devices is a no no unless > > it's behind an IOMMU which can protect us from > > random memory corruptions this could cause. > > > > In the later case it's OK but we need some code > > to check this and program the IOMMU appropriately. > > AKA: VFIO. :) > > Dominic, maybe you want to have a look at Alex's work: > https://github.com/awilliam/linux-vfio
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. I'm currently working to get this upstream, probably targeting 3.6 at this point, and would love to have more users to help make that happen. Please take a look at the vfio-3.4 branch in the tree above. See this tree for Qemu's usage of VFIO for device assignment: https://github.com/awilliam/qemu-vfio (vfio-ng)
Look forward to your feedback. Thanks,
Alex
| |