Messages in this thread | | | Date | Thu, 30 Apr 2015 12:50:04 +0100 | Subject | Re: Regression: Requiring CAP_SYS_ADMIN for /proc/<pid>/pagemap causes application-level breakage | From | Mark Williamson <> |
| |
On Wed, Apr 29, 2015 at 10:02 PM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > On Wed, Apr 29, 2015 at 1:44 PM, Konstantin Khlebnikov <koct9i@gmail.com> wrote: >> >> This's no longer true. After recent fixes for "anon_vma endless growing" new vma >> might reuse old anon_vma from grandparent vma. > > Oh well. I guess that was too simple. > > If Mark is ok with the rule that "it's not reliably if you have two > nested forks" (ie it only works if you exec for every fork you do), it > should still work, right? It sounds like Mark doesn't necessarily need > to handle the *generic* case.
Yes, it sounds like that should be OK for us. Our usecase is pretty restricted, so we're a long way off requiring a generic solution.
Our code will always fork() a fresh child in which to monitor memory changes. We run the operations we're interested in, use pagemap to figure out "what changed" (by comparing whether the pagemap_entry_t values are different from their parent) and then throw away the child process.
Currently our code does an entry-by-entry compare of pagemap, so anything that exposes writes as a change to values in there would allow us to run unmodified. That would be really nice. That said, I think we'd still be OK to modify our own code too if we can find a solution that would continue to function on older kernel releases, -stable trees, etc.
Thanks, Mark
| |