On Thu, Feb 25, 2016 at 08:01:44PM +0100, Andrea Arcangeli wrote: > Another problem is that khugepaged isn't able to collapse shared > readonly anon pages, mostly because of the rmap complexities. I agree > with Kirill we should be looking into how make this work, although I > doubt the simpler refcounting is going to help much in this regard as > the problem is in dealing with rmap, not so much with refcounts. Could you elaborate on problems with rmap? I have looked into this deeply yet. Do you see anything what would prevent following basic scheme: - Identify series of small pages as candidate for collapsing into a compound page. Not sure how difficult it would be. I guess it can be done by looking for adjacent pages which belong to the same anon_vma. - Setup migration entries for pte which maps these pages. - Collapse small pages into compound page. IIUC, it only will be possible if these pages are not pinned. - Replace migration entries with ptes which point to subpages of the new compound page. - Scan over all vmas mapping this compound page, looking for VMA suitable for huge page. We cannot collapse it right away due lock inversion of anon_vma->rwsem vs. mmap_sem. - For found VMAs, collapse page table into PMD one VMA a time under down_write(mmap_sem). Even if would fail to create any PMDs, we would reduce LRU pressure by collapsing small pages into compound one. -- Kirill A. Shutemov -- 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>