mm: mm_event: add special kernel allocation stat
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git] / include / trace / events / mm_event.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM mm_event
3
4 #if !defined(_TRACE_MM_EVENT_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_MM_EVENT_H
6
7 #include <linux/types.h>
8 #include <linux/tracepoint.h>
9 #include <linux/mm.h>
10
11 struct mm_event_task;
12
13 #define show_mm_event_type(type) \
14 __print_symbolic(type, \
15 { MM_MIN_FAULT, "min_flt" }, \
16 { MM_MAJ_FAULT, "maj_flt" }, \
17 { MM_COMPACTION, "compaction" }, \
18 { MM_RECLAIM, "reclaim" }, \
19 { MM_SWP_FAULT, "swp_flt" }, \
20 { MM_KERN_ALLOC, "kern_alloc" })
21
22 TRACE_EVENT(mm_event_record,
23
24 TP_PROTO(enum mm_event_type type, struct mm_event_task *record),
25
26 TP_ARGS(type, record),
27
28 TP_STRUCT__entry(
29 __field(enum mm_event_type, type)
30 __field(unsigned int, count)
31 __field(unsigned int, avg_lat)
32 __field(unsigned int, max_lat)
33 ),
34
35 TP_fast_assign(
36 __entry->type = type;
37 __entry->count = record->count;
38 __entry->avg_lat = record->accm_lat / record->count;
39 __entry->max_lat = record->max_lat;
40 ),
41
42 TP_printk("%s count=%d avg_lat=%u max_lat=%u",
43 show_mm_event_type(__entry->type),
44 __entry->count, __entry->avg_lat,
45 __entry->max_lat)
46 );
47
48 #endif /* _TRACE_MM_EVENT_H */
49
50 /* This part must be outside protection */
51 #include <trace/define_trace.h>