From: Mathieu Desnoyers Date: Mon, 25 Jan 2016 19:23:43 +0000 (-0500) Subject: Fix: update vmscan instrumentation for kernel 4.5 X-Git-Tag: v2.8.0-rc1~43 X-Git-Url: http://git.liburcu.org/?a=commitdiff_plain;h=01e289f7f79ad8ef5c9df7a05dc6307e9c2bee8d;p=lttng-modules.git Fix: update vmscan instrumentation for kernel 4.5 The following tracepoint changes made their way into Linux 4.5-rc1: commit 3aa2385111168187f24a6db04697c6fab0fab9b4 Author: yalin wang 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 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 --- diff --git a/instrumentation/events/lttng-module/mm_vmscan.h b/instrumentation/events/lttng-module/mm_vmscan.h index a6d7fbf2..d9eac540 100644 --- a/instrumentation/events/lttng-module/mm_vmscan.h +++ b/instrumentation/events/lttng-module/mm_vmscan.h @@ -26,6 +26,23 @@ typedef int isolate_mode_t; #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0)) + +#include + +#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,