On Tue, 2017-08-08 at 08:19 -0700, Mike Kravetz wrote: > The other question I was trying to bring up is "What does > MADV_WIPEONFORK > mean for various types of mappings?" For example, if we allow > MADV_WIPEONFORK on a file backed mapping what does that mapping look > like in the child after fork? Does it have any connection at all to > the > file? Or, do we drop all references to the file and essentially > transform > it to a private (or shared?) anonymous mapping after fork. What > about > System V shared memory? What about hugetlb?
My current patch turns any file-backed VMA into an empty anonymous VMA if MADV_WIPEONFORK was used on that VMA. > If the use case is fairly specific, then perhaps it makes sense to > make MADV_WIPEONFORK not applicable (EINVAL) for mappings where the > result is 'questionable'. That would be a question for Florian and Colm. If they are OK with MADV_WIPEONFORK only working on anonymous VMAs (no file mapping), that certainly could be implemented. On the other hand, I am not sure that introducing cases where MADV_WIPEONFORK does not implement wipe-on-fork semantics would reduce user confusion...

