Messages in this thread | | | Subject | Re: [PATCH] ummunotify: Userspace support for MMU notifications | From | Peter Zijlstra <> | Date | Thu, 15 Apr 2010 15:48:42 +0200 |
| |
On Wed, 2010-04-14 at 11:52 +0300, Gleb Natapov wrote: > On Tue, Apr 13, 2010 at 08:02:54PM +0200, Peter Zijlstra wrote: > > On Tue, 2010-04-13 at 10:57 -0700, Roland Dreier wrote: > > > Are those system calls the only possible way that virtual to physical > > > mappings can change? Can't page migration or something like that > > > potentially affect things? And even if you did have hooks into every > > > system call that mattered (keep in mind that relying on glibc is not > > > enough, since an MPI application may not use glibc) would decoding them > > > and figuring out what happened really be preferable to a single event > > > type that tells you exactly what address range was affected? > > > > Yeah, virtual<->physical maps can change through swapping, page > > migration, memory compaction, huge-page aggregation (the latter two not > > yet being upstream). > > > > Even mlock() doesn't pin virtual<->physical maps. > Pages registered for RDMA are GUPed so no method above should touch > them. Fork+cow or unmap/map on the other hand can change > virtual<->physical maps. GUPed pages are still GUPed, but they are no > longer mapped into process' virtual address space. MPI copes with > Fork+cow by marking registered memory as MADV_DONTFORK.
Sure, holding a page-ref will pin the physical page, but that is not something userspace usually has means to.
| |