lkml.org 
[lkml]   [2020]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[RFC][PATCH 09/12] mm/vmscan: add page demotion counter
    From
    Date

    From: Yang Shi <yang.shi@linux.alibaba.com>

    Account the number of demoted pages into reclaim_state->nr_demoted.

    Add pgdemote_kswapd and pgdemote_direct VM counters showed in
    /proc/vmstat.

    [ daveh:
    - __count_vm_events() a bit, and made them look at the THP
    size directly rather than getting data from migrate_pages()
    ]

    Signed-off-by: Yang Shi <yang.shi@linux.alibaba.com>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Huang Ying <ying.huang@intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    ---

    b/include/linux/vm_event_item.h | 2 ++
    b/mm/vmscan.c | 6 ++++++
    b/mm/vmstat.c | 2 ++
    3 files changed, 10 insertions(+)

    diff -puN include/linux/vm_event_item.h~mm-vmscan-add-page-demotion-counter include/linux/vm_event_item.h
    --- a/include/linux/vm_event_item.h~mm-vmscan-add-page-demotion-counter 2020-10-06 13:39:30.204818419 -0700
    +++ b/include/linux/vm_event_item.h 2020-10-06 13:39:30.212818419 -0700
    @@ -33,6 +33,8 @@ enum vm_event_item { PGPGIN, PGPGOUT, PS
    PGREUSE,
    PGSTEAL_KSWAPD,
    PGSTEAL_DIRECT,
    + PGDEMOTE_KSWAPD,
    + PGDEMOTE_DIRECT,
    PGSCAN_KSWAPD,
    PGSCAN_DIRECT,
    PGSCAN_DIRECT_THROTTLE,
    diff -puN mm/vmscan.c~mm-vmscan-add-page-demotion-counter mm/vmscan.c
    --- a/mm/vmscan.c~mm-vmscan-add-page-demotion-counter 2020-10-06 13:39:30.206818419 -0700
    +++ b/mm/vmscan.c 2020-10-06 13:39:30.213818419 -0700
    @@ -147,6 +147,7 @@ struct scan_control {
    unsigned int immediate;
    unsigned int file_taken;
    unsigned int taken;
    + unsigned int demoted;
    } nr;

    /* for recording the reclaimed slab by now */
    @@ -1134,6 +1135,11 @@ static unsigned int demote_page_list(str
    target_nid, MIGRATE_ASYNC, MR_DEMOTION,
    &nr_succeeded);

    + if (current_is_kswapd())
    + __count_vm_events(PGDEMOTE_KSWAPD, nr_succeeded);
    + else
    + __count_vm_events(PGDEMOTE_DIRECT, nr_succeeded);
    +
    return nr_succeeded;
    }

    diff -puN mm/vmstat.c~mm-vmscan-add-page-demotion-counter mm/vmstat.c
    --- a/mm/vmstat.c~mm-vmscan-add-page-demotion-counter 2020-10-06 13:39:30.208818419 -0700
    +++ b/mm/vmstat.c 2020-10-06 13:39:30.214818419 -0700
    @@ -1244,6 +1244,8 @@ const char * const vmstat_text[] = {
    "pgreuse",
    "pgsteal_kswapd",
    "pgsteal_direct",
    + "pgdemote_kswapd",
    + "pgdemote_direct",
    "pgscan_kswapd",
    "pgscan_direct",
    "pgscan_direct_throttle",
    _
    \
     
     \ /
      Last update: 2020-10-06 22:52    [W:2.284 / U:0.248 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site