^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define TRACE_SYSTEM damon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #if !defined(_TRACE_DAMON_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define _TRACE_DAMON_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/damon.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) TRACE_EVENT(damon_aggregated,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) TP_PROTO(struct damon_target *t, unsigned int target_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) struct damon_region *r, unsigned int nr_regions),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) TP_ARGS(t, target_id, r, nr_regions),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) __field(unsigned long, target_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) __field(unsigned int, nr_regions)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) __field(unsigned long, start)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __field(unsigned long, end)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) __field(unsigned int, nr_accesses)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) __field(unsigned int, age)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) __entry->target_id = target_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) __entry->nr_regions = nr_regions;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) __entry->start = r->ar.start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) __entry->end = r->ar.end;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) __entry->nr_accesses = r->nr_accesses;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) __entry->age = r->age;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) TP_printk("target_id=%lu nr_regions=%u %lu-%lu: %u %u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) __entry->target_id, __entry->nr_regions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) __entry->start, __entry->end,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) __entry->nr_accesses, __entry->age)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #endif /* _TRACE_DAMON_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #include <trace/define_trace.h>