Thread (255 messages) 255 messages, 11 authors, 2021-10-29

RE: [RFC 11/20] iommu/iommufd: Add IOMMU_IOASID_ALLOC/FREE

From: "Tian, Kevin" <kevin.tian@intel.com>
Date: 2021-10-13 07:15:06
Also in: linux-iommu, lkml

From: Jean-Philippe Brucker <redacted>
Sent: Tuesday, October 12, 2021 4:34 PM

On Mon, Oct 11, 2021 at 08:38:17PM -0300, Jason Gunthorpe wrote:
quoted
On Mon, Oct 11, 2021 at 09:49:57AM +0100, Jean-Philippe Brucker wrote:
quoted
Seems like we don't need the negotiation part?  The host kernel
communicates available IOVA ranges to userspace including holes (patch
17), and userspace can check that the ranges it needs are within the IOVA
space boundaries. That part is necessary for DPDK as well since it needs
to know about holes in the IOVA space where DMA wouldn't work as
expected
quoted
quoted
(MSI doorbells for example).
I haven't looked super closely at DPDK, but the other simple VFIO app
I am aware of struggled to properly implement this semantic (Indeed it
wasn't even clear to the author this was even needed).

It requires interval tree logic inside the application which is not a
trivial algorithm to implement in C.

I do wonder if the "simple" interface should have an option more like
the DMA API where userspace just asks to DMA map some user memory
and
quoted
gets back the dma_addr_t to use. Kernel manages the allocation
space/etc.
Agreed, it's tempting to use IOVA = VA but the two spaces aren't
necessarily compatible. An extension that plugs into the IOVA allocator
could be useful to userspace drivers.
Make sense. We can have a flag in IOMMUFD_MAP_DMA to tell whether
the user provides vaddr or expects the kernel to allocate and return.

Thanks
Kevin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help