On Wed, Dec 23, 2020 at 4:13 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > On Wed, Dec 23, 2020 at 02:32:07PM +0800, Yongji Xie wrote: > > Now I want to map/unmap some pages in an userland vma dynamically. The > > vm_insert_page() is being used for mapping. In the unmapping case, it > > looks like the zap_page_range() does what I want. So I export it. > > Otherwise, we need some ways to notify userspace to trigger it with > > madvise(MADV_DONTNEED), which might not be able to meet all our needs. > > For example, unmapping some pages in a memory shrinker function. > > > > So I'd like to know what's the limitation to use zap_page_range() in a > > module. And if we can't use it in a module, is there any acceptable > > way to achieve that? > > I think the anser is: don't play funny games with unmapped outside of > munmap. Especially as synchronization is very hard to get right. OK, I will try to let userspace do this. Thanks, Yongji