Fix: update vmscan instrumentation for kernel 4.5
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 25 Jan 2016 19:23:43 +0000 (14:23 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 25 Jan 2016 19:23:43 +0000 (14:23 -0500)
The following tracepoint changes made their way into Linux 4.5-rc1:

commit 3aa2385111168187f24a6db04697c6fab0fab9b4
Author: yalin wang <yalin.wang2010@gmail.com>
Date:   Thu Jan 14 15:18:30 2016 -0800

    mm/vmscan.c: change trace_mm_vmscan_writepage() proto type

and

commit ba5e9579433aefcdccdec207601e124d3bdf2a71
Author: yalin wang <yalin.wang2010@gmail.com>
Date:   Thu Jan 14 15:18:48 2016 -0800

    mm: change mm_vmscan_lru_shrink_inactive() proto types

Update the lttng-modules instrumentation to match those changes.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
instrumentation/events/lttng-module/mm_vmscan.h

index a6d7fbf23560e2be8c6757923e8e826434caade1..d9eac54072c6f41570bed4b406d51f14f0f11eeb 100644 (file)
@@ -26,6 +26,23 @@ typedef int isolate_mode_t;
 
 #endif
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
+
+#include <linux/mm_inline.h>
+
+#define trace_reclaim_flags(page) ( \
+       (page_is_file_cache(page) ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
+       (RECLAIM_WB_ASYNC) \
+       )
+
+#define trace_shrink_flags(file) \
+       ( \
+               (file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
+               (RECLAIM_WB_ASYNC) \
+       )
+
+#endif
+
 LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_sleep,
 
        TP_PROTO(int nid),
@@ -316,6 +333,19 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_
        )
 )
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
+LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
+
+       TP_PROTO(struct page *page),
+
+       TP_ARGS(page),
+
+       TP_FIELDS(
+               ctf_integer(struct page *, page, page)
+               ctf_integer(int, reclaim_flags, trace_reclaim_flags(page))
+       )
+)
+#else
 LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
 
        TP_PROTO(struct page *page,
@@ -328,8 +358,27 @@ LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
                ctf_integer(int, reclaim_flags, reclaim_flags)
        )
 )
+#endif
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
+LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
+
+       TP_PROTO(struct zone *zone,
+               unsigned long nr_scanned, unsigned long nr_reclaimed,
+               int priority, int file),
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
+       TP_ARGS(zone, nr_scanned, nr_reclaimed, priority, file),
+
+       TP_FIELDS(
+               ctf_integer(int, nid, zone_to_nid(zone))
+               ctf_integer(int, zid, zone_idx(zone))
+               ctf_integer(unsigned long, nr_scanned, nr_scanned)
+               ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
+               ctf_integer(int, priority, priority)
+               ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
+       )
+)
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
 LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
 
        TP_PROTO(int nid, int zid,
This page took 0.02717 seconds and 4 git commands to generate.