• Ebru Akagunduz's avatar
    mm: add tracepoint for scanning pages · 7d2eba05
    Ebru Akagunduz authored
    This patch series makes swapin readahead up to a certain number to gain
    more thp performance and adds tracepoint for khugepaged_scan_pmd,
    collapse_huge_page, __collapse_huge_page_isolate.
    
    This patch series was written to deal with programs that access most,
    but not all, of their memory after they get swapped out.  Currently
    these programs do not get their memory collapsed into THPs after the
    system swapped their memory out, while they would get THPs before
    swapping happened.
    
    This patch series was tested with a test program, it allocates 400MB of
    memory, writes to it, and then sleeps.  I force the system to swap out
    all.  Afterwards, the test program touches the area by writing and
    leaves a piece of it without writing.  This shows how much swap in
    readahead made by the patch.
    
    Test results:
    
                            After swapped out
    -------------------------------------------------------------------
                  | Anonymous | AnonHugePages | Swap      | Fraction  |
    -------------------------------------------------------------------
    With patch    | 90076 kB    | 88064 kB    | 309928 kB |    %99    |
    -------------------------------------------------------------------
    Without patch | 194068 kB | 192512 kB     | 205936 kB |    %99    |
    -------------------------------------------------------------------
    
                            After swapped in
    -------------------------------------------------------------------
                  | Anonymous | AnonHugePages | Swap      | Fraction  |
    -------------------------------------------------------------------
    With patch    | 201408 kB | 198656 kB     | 198596 kB |    %98    |
    -------------------------------------------------------------------
    Without patch | 292624 kB | 192512 kB     | 107380 kB |    %65    |
    -------------------------------------------------------------------
    
    This patch (of 3):
    
    Using static tracepoints, data of functions is recorded.  It is good to
    automatize debugging without doing a lot of changes in the source code.
    
    This patch adds tracepoint for khugepaged_scan_pmd, collapse_huge_page
    and __collapse_huge_page_isolate.
    
    [dan.carpenter@oracle.com: add a missing tab]
    Signed-off-by: default avatarEbru Akagunduz <ebru.akagunduz@gmail.com>
    Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Acked-by: default avatarRik van Riel <riel@redhat.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Xie XiuQi <xiexiuqi@huawei.com>
    Cc: Cyrill Gorcunov <gorcunov@openvz.org>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@suse.cz>
    Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    7d2eba05
huge_memory.c 83.2 KB