On Tue, Jun 09, 2015 at 11:00:17PM +0300, Konstantin Khlebnikov wrote: > From: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx> > > This patch sets bit 56 in pagemap if this page is mapped only once. > It allows to detect exclusively used pages without exposing PFN: > > present file exclusive state > 0 0 0 non-present > 1 1 0 file page mapped somewhere else > 1 1 1 file page mapped only here > 1 0 0 anon non-CoWed page (shared with parent/child) > 1 0 1 anon CoWed page (or never forked) > > CoWed pages in MAP_FILE|MAP_PRIVATE areas are anon in this context. > > Mmap-exclusive bit doesn't reflect potential page-sharing via swapcache: > page could be mapped once but has several swap-ptes which point to it. > Application could detect that by swap bit in pagemap entry and touch > that pte via /proc/pid/mem to get real information. > > Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx> > Link: http://lkml.kernel.org/r/CAEVpBa+_RyACkhODZrRvQLs80iy0sqpdrd0AaP_-tgnX3Y9yNQ@xxxxxxxxxxxxxx > > --- > > v2: > * handle transparent huge pages > * invert bit and rename shared -> exclusive (less confusing name) > --- ... > @@ -1119,6 +1122,13 @@ static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, > else > pmd_flags2 = 0; > > + if (pmd_present(*pmd)) { > + struct page *page = pmd_page(*pmd); > + > + if (page_mapcount(page) == 1) > + pmd_flags2 |= __PM_MMAP_EXCLUSIVE; > + } > + Could you do the same thing for huge_pte_to_pagemap_entry(), too? Thanks, Naoya Horiguchi -- 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