summaryrefslogtreecommitdiff
path: root/include/trace/events/sched_ext.h
blob: 1e54f9564ef3906573b39e00be6316f9555d0274 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM sched_ext

#if !defined(_TRACE_SCHED_EXT_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_SCHED_EXT_H

#include <linux/tracepoint.h>

TRACE_EVENT(sched_ext_dump,

	TP_PROTO(const char *line),

	TP_ARGS(line),

	TP_STRUCT__entry(
		__string(line, line)
	),

	TP_fast_assign(
		__assign_str(line);
	),

	TP_printk("%s",
		__get_str(line)
	)
);

TRACE_EVENT(sched_ext_event,
	    TP_PROTO(const char *name, __s64 delta),
	    TP_ARGS(name, delta),

	TP_STRUCT__entry(
		__string(name, name)
		__field(	__s64,		delta		)
	),

	TP_fast_assign(
		__assign_str(name);
		__entry->delta		= delta;
	),

	TP_printk("name %s delta %lld",
		  __get_str(name), __entry->delta
	)
);

TRACE_EVENT(sched_ext_bypass_lb,

	TP_PROTO(__u32 node, __u32 nr_cpus, __u32 nr_tasks, __u32 nr_balanced,
		 __u32 before_min, __u32 before_max,
		 __u32 after_min, __u32 after_max),

	TP_ARGS(node, nr_cpus, nr_tasks, nr_balanced,
		before_min, before_max, after_min, after_max),

	TP_STRUCT__entry(
		__field(	__u32,		node		)
		__field(	__u32,		nr_cpus		)
		__field(	__u32,		nr_tasks	)
		__field(	__u32,		nr_balanced	)
		__field(	__u32,		before_min	)
		__field(	__u32,		before_max	)
		__field(	__u32,		after_min	)
		__field(	__u32,		after_max	)
	),

	TP_fast_assign(
		__entry->node		= node;
		__entry->nr_cpus	= nr_cpus;
		__entry->nr_tasks	= nr_tasks;
		__entry->nr_balanced	= nr_balanced;
		__entry->before_min	= before_min;
		__entry->before_max	= before_max;
		__entry->after_min	= after_min;
		__entry->after_max	= after_max;
	),

	TP_printk("node %u: nr_cpus=%u nr_tasks=%u nr_balanced=%u min=%u->%u max=%u->%u",
		  __entry->node, __entry->nr_cpus,
		  __entry->nr_tasks, __entry->nr_balanced,
		  __entry->before_min, __entry->after_min,
		  __entry->before_max, __entry->after_max
	)
);

TRACE_EVENT(sched_ext_exit,

	TP_PROTO(struct scx_sched *sch, __u32 kind),

	TP_ARGS(sch, kind),

	TP_STRUCT__entry(
		__string(	name,		sch->ops.name		)
		__field(	__s32,		level			)
		__field(	__u64,		sub_cgroup_id		)
		__string(	cgrp_path,	sch_cgrp_path(sch)	)
		__field(	__u32,		kind			)
	),

	TP_fast_assign(
		__assign_str(name);
		__entry->level		= sch->level;
		__entry->sub_cgroup_id	= sch->ops.sub_cgroup_id;
		__assign_str(cgrp_path);
		__entry->kind		= kind;
	),

	TP_printk("sched %s level %d sub_cgroup_id %llu cgrp_path %s kind %u",
		  __get_str(name), __entry->level, __entry->sub_cgroup_id,
		  __get_str(cgrp_path), __entry->kind
	)
);

#endif /* _TRACE_SCHED_EXT_H */

/* This part must be outside protection */
#include <trace/define_trace.h>