On Mon, Dec 05, 2016 at 09:40:38AM -0800, Dan Williams wrote:
> If it is kernel only with physical addresess we don't need a
> it, so I'm not sure #1 is at all related to iopmem.
> Most people who want #1 probably can just mmap
> /sys/../pci/../resourceX to get a user handle to it, or pass around
> __iomem pointers in the kernel. This has been asked for before with
> I'm still not really clear what iopmem is for, or why DAX should ever
> be involved in this..
Right, by default remap_pfn_range() does not establish DMA capable
mappings. You can think of iopmem as remap_pfn_range() converted to
use devm_memremap_pages(). Given the extra constraints of
devm_memremap_pages() it seems reasonable to have those DMA capable
mappings be optionally established via a separate driver.
Except the iopmem driver claims the PCI ID, and presents a block
interface which is really *NOT* what people who have asked for this in
the past have wanted. IIRC it was embedded stuff eg RDMA video
directly out of a capture card or a similar kind of thinking.
It is a good point about devm_memremap_pages limitations, but maybe
that just says to create a /sys/.../resource_dmableX ?
Or is there some reason why people want a filesystem on top of BAR
memory? That does not seem to have been covered yet..