[lttng-dev] [PATCH lttng-modules 4/5] fix: mm: move recent_rotated pages calculation to shrink_inactive_list() (v5.2)

Michael Jeanson mjeanson at efficios.com
Tue May 21 16:33:13 EDT 2019

See upstream commit:

  commit 886cf1901db962cee5f8b82b9b260079a5e8a4eb
  Author: Kirill Tkhai <ktkhai at virtuozzo.com>
  Date:   Mon May 13 17:16:51 2019 -0700

    mm: move recent_rotated pages calculation to shrink_inactive_list()

    Patch series "mm: Generalize putback functions"]

    putback_inactive_pages() and move_active_pages_to_lru() are almost
    similar, so this patchset merges them ina single function.

    This patch (of 4):

    The patch moves the calculation from putback_inactive_pages() to
    shrink_inactive_list().  This makes putback_inactive_pages() looking more
    similar to move_active_pages_to_lru().

    To do that, we account activated pages in reclaim_stat::nr_activate.
    Since a page may change its LRU type from anon to file cache inside
    shrink_page_list() (see ClearPageSwapBacked()), we have to account pages
    for the both types.  So, nr_activate becomes an array.

    Previously we used nr_activate to account PGACTIVATE events, but now we
    account them into pgactivate variable (since they are about number of
    pages in general, not about sum of hpage_nr_pages).

Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
 instrumentation/events/lttng-module/mm_vmscan.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/instrumentation/events/lttng-module/mm_vmscan.h b/instrumentation/events/lttng-module/mm_vmscan.h
index 417472c..3f9ffde 100644
--- a/instrumentation/events/lttng-module/mm_vmscan.h
+++ b/instrumentation/events/lttng-module/mm_vmscan.h
@@ -625,7 +625,8 @@ LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
 		ctf_integer(unsigned long, nr_writeback, stat->nr_writeback)
 		ctf_integer(unsigned long, nr_congested, stat->nr_congested)
 		ctf_integer(unsigned long, nr_immediate, stat->nr_immediate)
-		ctf_integer(unsigned long, nr_activate, stat->nr_activate)
+		ctf_integer(unsigned long, nr_activate0, stat->nr_activate[0])
+		ctf_integer(unsigned long, nr_activate1, stat->nr_activate[1])
 		ctf_integer(unsigned long, nr_ref_keep, stat->nr_ref_keep)
 		ctf_integer(unsigned long, nr_unmap_fail, stat->nr_unmap_fail)
 		ctf_integer(int, priority, priority)

More information about the lttng-dev mailing list