On Sun, Jul 14, 2013 at 7:11 AM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > Sorry if this was already discussed... I am still trying to think if > we can make a simpler patch. > > So, iiuc, the main problem is that if you want to track a vma you need > to prevent the merging with other vma's. > > Question: is it important that vma's with the same vma_name should be > _merged_ automatically? > > If not, can't we make "do not merge" a separate feature and then add > vma_name? > > IOW, please forget about vma_name for the moment. Can't we start with > the trivial patch below? It simply adds the new vm flag which blocks > the merging, and MADV_ to set/clear it. > > Yes, this is more limited. Once you set VM_TAINTED this vma is always > isolated. If you unmap a page in this vma, you create 2 isolated vma's. > If, for example, you do MADV_DONTFORK + MADV_DOFORK inside the tainted > vma, you will have 2 adjacent VM_TAINTED vma's with the same flags after > that. But you can do MADV_UNTAINT + MADV_TAINT again if you want to > merge them back. And perhaps this feature is useful even without the > naming. And perhaps we can also add MAP_TAINTED. > > Now about vma_name. In this case PR_SET_VMA or MADV_NAME should simply > set/overwrite vma_name and nothing else, no need to do merge/split vma. > > And if we add MAP_TAINTED, MAP_ANONYMOUS can reuse pgoff as vma_name > (we only need a simple changes in do_mmap_pgoff and mmap_region). But > this is minor. > > Or this is too simple/ugly? Probably yes, this means that an allocator > which simply does a lot of MAP_ANONYMOUS + MADV_TAINT will create more > vma's than it needs. So I won't insist but I'd like to ask anyway. This is no different than using a new tmpfs file for every mmap (although it saves the struct file and the inode), it results in a huge increase in the number of vmas. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>