On Wed, 10 Mar 2021 14:40:11 -0400 Jason Gunthorpe <j...@nvidia.com> wrote:
> On Wed, Mar 10, 2021 at 11:34:06AM -0700, Alex Williamson wrote: > > > > I think after the address_space changes this should try to stick with > > > a normal io_rmap_pfn_range() done outside the fault handler. > > > > I assume you're suggesting calling io_remap_pfn_range() when device > > memory is enabled, > > Yes, I think I saw Peter thinking along these lines too > > Then fault just always causes SIGBUS if it gets called Trying to use the address_space approach because otherwise we'd just be adding back vma list tracking, it looks like we can't call io_remap_pfn_range() while holding the address_space i_mmap_rwsem via i_mmap_lock_write(), like done in unmap_mapping_range(). lockdep identifies a circular lock order issue against fs_reclaim. Minimally we also need vma_interval_tree_iter_{first,next} exported in order to use vma_interval_tree_foreach(). Suggestions? Thanks, Alex