On Tue, 2013-04-02 at 16:08 -0500, Stuart Yoder wrote:
> On Tue, Apr 2, 2013 at 3:57 PM, Scott Wood
<address@hidden> wrote:
> >> > C. Explicit mapping using normal DMA map. The last idea
is that
> >> > we would introduce a new ioctl to give user-space an fd
to
> >> > the MSI bank, which could be mmapped. The flow would be
> >> > something like this:
> >> > -for each group user space calls new ioctl
> >> > VFIO_GROUP_GET_MSI_FD
> >> > -user space mmaps the fd, getting a vaddr
> >> > -user space does a normal DMA map for desired iova
> >> > This approach makes everything explicit, but adds a new
ioctl
> >> > applicable most likely only to the PAMU (type2 iommu).
> >>
> >> And the DMA_MAP of that mmap then allows userspace to select the
window
> >> used? This one seems like a lot of overhead, adding a new
ioctl, new
> >> fd, mmap, special mapping path, etc.
> >
> >
> > There's going to be special stuff no matter what. This would
keep it
> > separated from the IOMMU map code.
> >
> > I'm not sure what you mean by "overhead" here... the runtime
overhead of
> > setting things up is not particularly relevant as long as it's
reasonable.
> > If you mean development and maintenance effort, keeping things
well
> > separated should help.
>
> We don't need to change DMA_MAP. If we can simply add a new "type
2"
> ioctl that allows user space to set which windows are MSIs, it
seems vastly
> less complex than an ioctl to supply a new fd, mmap of it, etc.
>
> So maybe 2 ioctls:
> VFIO_IOMMU_GET_MSI_COUNT