xref: /linux/include/trace/events/damon.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
12fcb9362SSeongJae Park /* SPDX-License-Identifier: GPL-2.0 */
22fcb9362SSeongJae Park #undef TRACE_SYSTEM
32fcb9362SSeongJae Park #define TRACE_SYSTEM damon
42fcb9362SSeongJae Park 
52fcb9362SSeongJae Park #if !defined(_TRACE_DAMON_H) || defined(TRACE_HEADER_MULTI_READ)
62fcb9362SSeongJae Park #define _TRACE_DAMON_H
72fcb9362SSeongJae Park 
82fcb9362SSeongJae Park #include <linux/damon.h>
92fcb9362SSeongJae Park #include <linux/types.h>
102fcb9362SSeongJae Park #include <linux/tracepoint.h>
112fcb9362SSeongJae Park 
12c603c630SSeongJae Park TRACE_EVENT_CONDITION(damos_before_apply,
13c603c630SSeongJae Park 
14c603c630SSeongJae Park 	TP_PROTO(unsigned int context_idx, unsigned int scheme_idx,
15c603c630SSeongJae Park 		unsigned int target_idx, struct damon_region *r,
16c603c630SSeongJae Park 		unsigned int nr_regions, bool do_trace),
17c603c630SSeongJae Park 
18c603c630SSeongJae Park 	TP_ARGS(context_idx, target_idx, scheme_idx, r, nr_regions, do_trace),
19c603c630SSeongJae Park 
20c603c630SSeongJae Park 	TP_CONDITION(do_trace),
21c603c630SSeongJae Park 
22c603c630SSeongJae Park 	TP_STRUCT__entry(
23c603c630SSeongJae Park 		__field(unsigned int, context_idx)
24c603c630SSeongJae Park 		__field(unsigned int, scheme_idx)
25c603c630SSeongJae Park 		__field(unsigned long, target_idx)
26c603c630SSeongJae Park 		__field(unsigned long, start)
27c603c630SSeongJae Park 		__field(unsigned long, end)
28c603c630SSeongJae Park 		__field(unsigned int, nr_accesses)
29c603c630SSeongJae Park 		__field(unsigned int, age)
30c603c630SSeongJae Park 		__field(unsigned int, nr_regions)
31c603c630SSeongJae Park 	),
32c603c630SSeongJae Park 
33c603c630SSeongJae Park 	TP_fast_assign(
34c603c630SSeongJae Park 		__entry->context_idx = context_idx;
35c603c630SSeongJae Park 		__entry->scheme_idx = scheme_idx;
36c603c630SSeongJae Park 		__entry->target_idx = target_idx;
37c603c630SSeongJae Park 		__entry->start = r->ar.start;
38c603c630SSeongJae Park 		__entry->end = r->ar.end;
39*a72217adSSeongJae Park 		__entry->nr_accesses = r->nr_accesses_bp / 10000;
40c603c630SSeongJae Park 		__entry->age = r->age;
41c603c630SSeongJae Park 		__entry->nr_regions = nr_regions;
42c603c630SSeongJae Park 	),
43c603c630SSeongJae Park 
44c603c630SSeongJae Park 	TP_printk("ctx_idx=%u scheme_idx=%u target_idx=%lu nr_regions=%u %lu-%lu: %u %u",
45c603c630SSeongJae Park 			__entry->context_idx, __entry->scheme_idx,
46c603c630SSeongJae Park 			__entry->target_idx, __entry->nr_regions,
47c603c630SSeongJae Park 			__entry->start, __entry->end,
48c603c630SSeongJae Park 			__entry->nr_accesses, __entry->age)
49c603c630SSeongJae Park );
50c603c630SSeongJae Park 
512fcb9362SSeongJae Park TRACE_EVENT(damon_aggregated,
522fcb9362SSeongJae Park 
532d00946bSSeongJae Park 	TP_PROTO(unsigned int target_id, struct damon_region *r,
542d00946bSSeongJae Park 		unsigned int nr_regions),
552fcb9362SSeongJae Park 
562d00946bSSeongJae Park 	TP_ARGS(target_id, r, nr_regions),
572fcb9362SSeongJae Park 
582fcb9362SSeongJae Park 	TP_STRUCT__entry(
592fcb9362SSeongJae Park 		__field(unsigned long, target_id)
602fcb9362SSeongJae Park 		__field(unsigned int, nr_regions)
612fcb9362SSeongJae Park 		__field(unsigned long, start)
622fcb9362SSeongJae Park 		__field(unsigned long, end)
632fcb9362SSeongJae Park 		__field(unsigned int, nr_accesses)
64c46b0bb6SXin Hao 		__field(unsigned int, age)
652fcb9362SSeongJae Park 	),
662fcb9362SSeongJae Park 
672fcb9362SSeongJae Park 	TP_fast_assign(
6876fd0285SSeongJae Park 		__entry->target_id = target_id;
692fcb9362SSeongJae Park 		__entry->nr_regions = nr_regions;
702fcb9362SSeongJae Park 		__entry->start = r->ar.start;
712fcb9362SSeongJae Park 		__entry->end = r->ar.end;
722fcb9362SSeongJae Park 		__entry->nr_accesses = r->nr_accesses;
73c46b0bb6SXin Hao 		__entry->age = r->age;
742fcb9362SSeongJae Park 	),
752fcb9362SSeongJae Park 
76c46b0bb6SXin Hao 	TP_printk("target_id=%lu nr_regions=%u %lu-%lu: %u %u",
772fcb9362SSeongJae Park 			__entry->target_id, __entry->nr_regions,
78c46b0bb6SXin Hao 			__entry->start, __entry->end,
79c46b0bb6SXin Hao 			__entry->nr_accesses, __entry->age)
802fcb9362SSeongJae Park );
812fcb9362SSeongJae Park 
822fcb9362SSeongJae Park #endif /* _TRACE_DAMON_H */
832fcb9362SSeongJae Park 
842fcb9362SSeongJae Park /* This part must be outside protection */
852fcb9362SSeongJae Park #include <trace/define_trace.h>
86