• William Lam's avatar
    mm: compaction: include compound page count for scanning in pageblock isolation · b717d6b9
    William Lam authored
    The number of scanned pages can be lower than the number of isolated pages
    when isolating mirgratable or free pageblock.  The metric is being
    reported in trace event and also used in vmstat.
    
    some example output from trace where it shows nr_taken can be greater
    than nr_scanned:
    
    Produced by kernel v5.19-rc6
    kcompactd0-42      [001] .....  1210.268022: mm_compaction_isolate_migratepages: range=(0x107ae4 ~ 0x107c00) nr_scanned=265 nr_taken=255
    [...]
    kcompactd0-42      [001] .....  1210.268382: mm_compaction_isolate_freepages: range=(0x215800 ~ 0x215a00) nr_scanned=13 nr_taken=128
    kcompactd0-42      [001] .....  1210.268383: mm_compaction_isolate_freepages: range=(0x215600 ~ 0x215680) nr_scanned=1 nr_taken=128
    
    mm_compaction_isolate_migratepages does not seem to have this
    behaviour, but for the reason of consistency, nr_scanned should also be
    taken care of in that side.
    
    This behaviour is confusing since currently the count for isolated pages
    takes account of compound page but not for the case of scanned pages.  And
    given that the number of isolated pages(nr_taken) reported in
    mm_compaction_isolate_template trace event is on a single-page basis, the
    ambiguity when reporting the number of scanned pages can be removed by
    also including compound page count.
    
    Link: https://lkml.kernel.org/r/20220711202806.22296-1-william.lam@bytedance.comSigned-off-by: default avatarWilliam Lam <william.lam@bytedance.com>
    Reviewed-by: default avatarPunit Agrawal <punit.agrawal@bytedance.com>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    b717d6b9
compaction.c 84.2 KB