• K
    mm, proc: adjust PSS calculation · afd9883f
    Kirill A. Shutemov 提交于
    The goal of this patchset is to make refcounting on THP pages cheaper
    with simpler semantics and allow the same THP compound page to be mapped
    with PMD and PTEs.  This is required to get reasonable THP-pagecache
    implementation.
    
    With the new refcounting design it's much easier to protect against
    split_huge_page(): simple reference on a page will make you the deal.
    It makes gup_fast() implementation simpler and doesn't require
    special-case in futex code to handle tail THP pages.
    
    It should improve THP utilization over the system since splitting THP in
    one process doesn't necessary lead to splitting the page in all other
    processes have the page mapped.
    
    The patchset drastically lower complexity of get_page()/put_page()
    codepaths.  I encourage people look on this code before-and-after to
    justify time budget on reviewing this patchset.
    
    This patch (of 37):
    
    With new refcounting all subpages of the compound page are not necessary
    have the same mapcount.  We need to take into account mapcount of every
    sub-page.
    Signed-off-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Tested-by: NSasha Levin <sasha.levin@oracle.com>
    Tested-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Acked-by: NJerome Marchand <jmarchan@redhat.com>
    Acked-by: NVlastimil Babka <vbabka@suse.cz>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Steve Capper <steve.capper@linaro.org>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@suse.cz>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    afd9883f
task_mmu.c 41.0 KB