1 /* SPDX-License-Identifier: GPL-2.0 */
3 #define TRACE_SYSTEM damon
5 #if !defined(_TRACE_DAMON_H) || defined(TRACE_HEADER_MULTI_READ)
8 #include <linux/damon.h>
9 #include <linux/types.h>
10 #include <linux/tracepoint.h>
12 TRACE_EVENT_CONDITION(damos_before_apply
,
14 TP_PROTO(unsigned int context_idx
, unsigned int scheme_idx
,
15 unsigned int target_idx
, struct damon_region
*r
,
16 unsigned int nr_regions
, bool do_trace
),
18 TP_ARGS(context_idx
, target_idx
, scheme_idx
, r
, nr_regions
, do_trace
),
20 TP_CONDITION(do_trace
),
23 __field(unsigned int, context_idx
)
24 __field(unsigned int, scheme_idx
)
25 __field(unsigned long, target_idx
)
26 __field(unsigned long, start
)
27 __field(unsigned long, end
)
28 __field(unsigned int, nr_accesses
)
29 __field(unsigned int, age
)
30 __field(unsigned int, nr_regions
)
34 __entry
->context_idx
= context_idx
;
35 __entry
->scheme_idx
= scheme_idx
;
36 __entry
->target_idx
= target_idx
;
37 __entry
->start
= r
->ar
.start
;
38 __entry
->end
= r
->ar
.end
;
39 __entry
->nr_accesses
= r
->nr_accesses_bp
/ 10000;
40 __entry
->age
= r
->age
;
41 __entry
->nr_regions
= nr_regions
;
44 TP_printk("ctx_idx=%u scheme_idx=%u target_idx=%lu nr_regions=%u %lu-%lu: %u %u",
45 __entry
->context_idx
, __entry
->scheme_idx
,
46 __entry
->target_idx
, __entry
->nr_regions
,
47 __entry
->start
, __entry
->end
,
48 __entry
->nr_accesses
, __entry
->age
)
51 TRACE_EVENT(damon_aggregated
,
53 TP_PROTO(unsigned int target_id
, struct damon_region
*r
,
54 unsigned int nr_regions
),
56 TP_ARGS(target_id
, r
, nr_regions
),
59 __field(unsigned long, target_id
)
60 __field(unsigned int, nr_regions
)
61 __field(unsigned long, start
)
62 __field(unsigned long, end
)
63 __field(unsigned int, nr_accesses
)
64 __field(unsigned int, age
)
68 __entry
->target_id
= target_id
;
69 __entry
->nr_regions
= nr_regions
;
70 __entry
->start
= r
->ar
.start
;
71 __entry
->end
= r
->ar
.end
;
72 __entry
->nr_accesses
= r
->nr_accesses
;
73 __entry
->age
= r
->age
;
76 TP_printk("target_id=%lu nr_regions=%u %lu-%lu: %u %u",
77 __entry
->target_id
, __entry
->nr_regions
,
78 __entry
->start
, __entry
->end
,
79 __entry
->nr_accesses
, __entry
->age
)
82 #endif /* _TRACE_DAMON_H */
84 /* This part must be outside protection */
85 #include <trace/define_trace.h>