Messages in this thread | | | Subject | Re: [RFC v2 PATCH 2/2] mm: mmap: zap pages with read mmap_sem for large mapping | From | Yang Shi <> | Date | Wed, 20 Jun 2018 09:23:17 -0700 |
| |
On 6/20/18 12:17 AM, Michal Hocko wrote: > On Tue 19-06-18 14:13:05, Yang Shi wrote: >> >> On 6/19/18 3:02 AM, Peter Zijlstra wrote: > [...] >>> Hold up, two things: you having to copy most of do_munmap() didn't seem >>> to suggest a helper function? And second, since when are we allowed to >> Yes, they will be extracted into a helper function in the next version. >> >> May bad, I don't think it is allowed. We could reform this to: >> >> acquire write mmap_sem >> vma lookup (split vmas) >> release write mmap_sem >> >> acquire read mmap_sem >> zap pages >> release read mmap_sem >> >> I'm supposed this is safe as what Michal said before. > I didn't get to read your patches carefully yet but I am wondering why > do you need to split in the first place. Why cannot you simply unmap the > range (madvise(DONTNEED)) under the read lock and then take the lock for > write to finish the rest?
Yes, we can. I just thought splitting vma up-front sounds more straight forward. But, I neglected the write mmap_sem issue. Will move the vma split into later write mmap_sem in the next version.
Thanks, Yang
| |