1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifdef CONFIG_SCHED_RT_CAS
3 TRACE_EVENT(sched_find_cas_cpu_each,
4 
5 	TP_PROTO(struct task_struct *task, int cpu, int target_cpu,
6 		 int isolated, int idle, unsigned long task_util,
7 		 unsigned long cpu_util, int cpu_cap),
8 
9 	TP_ARGS(task, cpu, target_cpu, isolated, idle, task_util, cpu_util, cpu_cap),
10 
11 	TP_STRUCT__entry(
12 		__array(char, comm, TASK_COMM_LEN)
13 		__field(pid_t, pid)
14 		__field(int, prio)
15 		__field(int, cpu)
16 		__field(int, target_cpu)
17 		__field(int, isolated)
18 		__field(unsigned long, idle)
19 		__field(unsigned long, task_util)
20 		__field(unsigned long, cpu_util)
21 		__field(unsigned long, cpu_cap)
22 	),
23 
24 	TP_fast_assign(
25 		memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
26 		__entry->pid		= task->pid;
27 		__entry->prio		= task->prio;
28 		__entry->cpu		= cpu;
29 		__entry->target_cpu	= target_cpu;
30 		__entry->isolated	= isolated;
31 		__entry->idle		= idle;
32 		__entry->task_util	= task_util;
33 		__entry->cpu_util	= cpu_util;
34 		__entry->cpu_cap	= cpu_cap;
35 	),
36 
37 	TP_printk("comm=%s pid=%d prio=%d cpu=%d target_cpu=%d isolated=%d idle=%lu task_util=%lu cpu_util=%lu cpu_cap=%lu",
38 		  __entry->comm, __entry->pid, __entry->prio,
39 		  __entry->cpu, __entry->target_cpu, __entry->isolated,
40 		  __entry->idle, __entry->task_util,
41 		  __entry->cpu_util, __entry->cpu_cap)
42 );
43 
44 TRACE_EVENT(sched_find_cas_cpu,
45 
46 	TP_PROTO(struct task_struct *task, struct cpumask *lowest_mask,
47 		 unsigned long tutil,  int prev_cpu, int target_cpu),
48 
49 	TP_ARGS(task, lowest_mask, tutil, prev_cpu, target_cpu),
50 
51 	TP_STRUCT__entry(
52 		__array(char, comm, TASK_COMM_LEN)
53 		__field(pid_t, pid)
54 		__field(unsigned int, prio)
55 		__bitmask(lowest, num_possible_cpus())
56 		__field(unsigned long, tutil)
57 		__field(int, prev_cpu)
58 		__field(int, target_cpu)
59 	),
60 
61 	TP_fast_assign(
62 		memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
63 		__entry->pid		= task->pid;
64 		__entry->prio		= task->prio;
65 		__assign_bitmask(lowest, cpumask_bits(lowest_mask), num_possible_cpus());
66 		__entry->tutil		= tutil;
67 		__entry->prev_cpu	= prev_cpu;
68 		__entry->target_cpu	= target_cpu;
69 	),
70 
71 	TP_printk("comm=%s pid=%d prio=%d lowest_mask=%s tutil=%lu prev=%d target=%d ",
72 		  __entry->comm, __entry->pid, __entry->prio,
73 		  __get_bitmask(lowest), __entry->tutil,
74 		  __entry->prev_cpu, __entry->target_cpu)
75 );
76 #endif /* CONFIG_SCHED_RT_CAS */
77