On Wed, Apr 29, 2015 at 11:33 PM, Linus Torvalds <[email protected]> wrote: > On Wed, Apr 29, 2015 at 12:36 PM, Kirill A. Shutemov > <[email protected]> wrote: >> >> Emm.. I have hard time to understand how writable bit is enough to get >> soft-dirty-alike functionality. > > I don't think it is. > > For anonymous pages, maybe you can play tricks with comparing the page > 'anon_vma' with the vma->anon_vma. > > I haven't really thought that through, but does something like > > static inline bool page_is_dirty_in_vma(struct page *page, struct > vm_area_struct *vma) > { > struct anon_vma *anon_vma = vma->anon_vma; > > return page->mapping == (void *)anon_vma + PAGE_MAPPING_ANON; > } > > end up working as a "page has been dirtied in this mapping"?
This's no longer true. After recent fixes for "anon_vma endless growing" new vma might reuse old anon_vma from grandparent vma. > > If the page came from another process and hasn't been written to, it > will have the anon_vma pointing to the originalting vma. > > I may be high on some bad drugs, though. As mentioned, I didn't really > think this through. > > Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

