#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),
cache_items, delta, total_scan),
TP_FIELDS(
- ctf_integer(struct shrinker *, shr, shr)
+ ctf_integer_hex(struct shrinker *, shr, shr)
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
- ctf_integer(void *, shrink, shr->scan_objects)
+ ctf_integer_hex(void *, shrink, shr->scan_objects)
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
- ctf_integer(void *, shrink, shr->shrink)
+ ctf_integer_hex(void *, shrink, shr->shrink)
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
ctf_integer(long, nr_objects_to_shrink, nr_objects_to_shrink)
ctf_integer(gfp_t, gfp_flags, sc->gfp_mask)
total_scan),
TP_FIELDS(
- ctf_integer(struct shrinker *, shr, shr)
+ ctf_integer_hex(struct shrinker *, shr, shr)
ctf_integer(int, nid, nid)
- ctf_integer(void *, shrink, shr->scan_objects)
+ ctf_integer_hex(void *, shrink, shr->scan_objects)
ctf_integer(long, unused_scan, unused_scan_cnt)
ctf_integer(long, new_scan, new_scan_cnt)
ctf_integer(int, retval, shrinker_retval)
TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt),
TP_FIELDS(
- ctf_integer(struct shrinker *, shr, shr)
+ ctf_integer_hex(struct shrinker *, shr, shr)
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
- ctf_integer(void *, shrink, shr->scan_objects)
+ ctf_integer_hex(void *, shrink, shr->scan_objects)
#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
- ctf_integer(void *, shrink, shr->shrink)
+ ctf_integer_hex(void *, shrink, shr->shrink)
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
ctf_integer(long, unused_scan, unused_scan_cnt)
ctf_integer(long, new_scan, new_scan_cnt)
)
)
+#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_hex(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,
TP_ARGS(page, reclaim_flags),
TP_FIELDS(
- ctf_integer(struct page *, page, page)
+ ctf_integer_hex(struct page *, page, page)
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),
+
+ TP_ARGS(zone, nr_scanned, nr_reclaimed, priority, file),
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
+ 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,
TP_ARGS(old_mm, new_mm),
TP_FIELDS(
- ctf_integer(struct mm_struct *, old_mm, old_mm)
+ ctf_integer_hex(struct mm_struct *, old_mm, old_mm)
ctf_integer(unsigned int, old_prio, old_mm ? old_mm->token_priority : 0)
- ctf_integer(struct mm_struct *, new_mm, new_mm)
+ ctf_integer_hex(struct mm_struct *, new_mm, new_mm)
ctf_integer(unsigned int, new_prio, new_mm->token_priority)
)
)
TP_ARGS(swap_token_mm),
TP_FIELDS(
- ctf_integer(struct mm_struct*, swap_token_mm, swap_token_mm)
+ ctf_integer_hex(struct mm_struct*, swap_token_mm, swap_token_mm)
)
)
TP_ARGS(mm, old_prio, swap_token_mm),
TP_FIELDS(
- ctf_integer(struct mm_struct*, mm, mm)
+ ctf_integer_hex(struct mm_struct *, mm, mm)
ctf_integer(unsigned int, old_prio, old_prio)
ctf_integer(unsigned int, new_prio, mm->token_priority)
- ctf_integer(struct mm_struct*, swap_token_mm, swap_token_mm)
+ ctf_integer_hex(struct mm_struct *, swap_token_mm, swap_token_mm)
ctf_integer(unsigned int, swap_token_prio, swap_token_mm ? swap_token_mm->token_priority : 0)
)
)