Messages in this thread Patch in this message | | | Date | Fri, 1 Feb 2008 05:58:41 -0600 | From | Robin Holt <> | Subject | Extending mmu_notifiers to handle __xip_unmap in a sleepable context? |
| |
With this set of patches, I think we have enough to get xpmem working with most types of mappings. In the past, we operated without any of these callouts by significantly restricting why types of mappings could remotely fault and what types of operations the user could do. With this set, I am certain we can continue to meet the above assumptions.
That said, I would like to discuss __xip_unmap in more detail.
Currently, it is calling mmu_notifier _begin and _end under the i_mmap_lock. I _THINK_ the following will make it so we could support __xip_unmap (although I don't recall ever seeing that done on ia64 and don't even know what the circumstances are for its use).
Thanks, Robin
Index: mmu_notifiers-cl-v5/mm/filemap_xip.c =================================================================== --- mmu_notifiers-cl-v5.orig/mm/filemap_xip.c 2008-02-01 05:38:32.000000000 -0600 +++ mmu_notifiers-cl-v5/mm/filemap_xip.c 2008-02-01 05:39:08.000000000 -0600 @@ -184,6 +184,7 @@ __xip_unmap (struct address_space * mapp if (!page) return; + mmu_rmap_notifier(invalidate_page, page); spin_lock(&mapping->i_mmap_lock); vma_prio_tree_foreach(vma, &iter, &mapping->i_mmap, pgoff, pgoff) { mm = vma->vm_mm;
| |