xref: /linux/include/trace/events/task.h (revision 2d8c5098b847f37dde8351fb5b5d190f1bb5c576)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM task
4 
5 #if !defined(_TRACE_TASK_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_TASK_H
7 #include <linux/tracepoint.h>
8 
9 TRACE_EVENT(task_newtask,
10 
11 	TP_PROTO(struct task_struct *task, u64 clone_flags),
12 
13 	TP_ARGS(task, clone_flags),
14 
15 	TP_STRUCT__entry(
16 		__field(	pid_t,	pid)
17 		__array(	char,	comm, TASK_COMM_LEN)
18 		__field(	u64,    clone_flags)
19 		__field(	short,	oom_score_adj)
20 	),
21 
22 	TP_fast_assign(
23 		__entry->pid = task->pid;
24 		memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
25 		__entry->clone_flags = clone_flags;
26 		__entry->oom_score_adj = task->signal->oom_score_adj;
27 	),
28 
29 	TP_printk("pid=%d comm=%s clone_flags=%llx oom_score_adj=%hd",
30 		__entry->pid, __entry->comm,
31 		__entry->clone_flags, __entry->oom_score_adj)
32 );
33 
34 TRACE_EVENT(task_rename,
35 
36 	TP_PROTO(struct task_struct *task, const char *comm),
37 
38 	TP_ARGS(task, comm),
39 
40 	TP_STRUCT__entry(
41 		__field(	pid_t,	pid)
42 		__array(	char, oldcomm,  TASK_COMM_LEN)
43 		__array(	char, newcomm,  TASK_COMM_LEN)
44 		__field(	short,	oom_score_adj)
45 	),
46 
47 	TP_fast_assign(
48 		__entry->pid = task->pid;
49 		memcpy(entry->oldcomm, task->comm, TASK_COMM_LEN);
50 		strscpy(entry->newcomm, comm, TASK_COMM_LEN);
51 		__entry->oom_score_adj = task->signal->oom_score_adj;
52 	),
53 
54 	TP_printk("pid=%d oldcomm=%s newcomm=%s oom_score_adj=%hd",
55 		__entry->pid, __entry->oldcomm,
56 		__entry->newcomm, __entry->oom_score_adj)
57 );
58 
59 /**
60  * task_prctl_unknown - called on unknown prctl() option
61  * @option:	option passed
62  * @arg2:	arg2 passed
63  * @arg3:	arg3 passed
64  * @arg4:	arg4 passed
65  * @arg5:	arg5 passed
66  *
67  * Called on an unknown prctl() option.
68  */
69 TRACE_EVENT(task_prctl_unknown,
70 
71 	TP_PROTO(int option, unsigned long arg2, unsigned long arg3,
72 		 unsigned long arg4, unsigned long arg5),
73 
74 	TP_ARGS(option, arg2, arg3, arg4, arg5),
75 
76 	TP_STRUCT__entry(
77 		__field(	int,		option)
78 		__field(	unsigned long,	arg2)
79 		__field(	unsigned long,	arg3)
80 		__field(	unsigned long,	arg4)
81 		__field(	unsigned long,	arg5)
82 	),
83 
84 	TP_fast_assign(
85 		__entry->option = option;
86 		__entry->arg2 = arg2;
87 		__entry->arg3 = arg3;
88 		__entry->arg4 = arg4;
89 		__entry->arg5 = arg5;
90 	),
91 
92 	TP_printk("option=%d arg2=%ld arg3=%ld arg4=%ld arg5=%ld",
93 		  __entry->option, __entry->arg2, __entry->arg3, __entry->arg4, __entry->arg5)
94 );
95 
96 #endif
97 
98 /* This part must be outside protection */
99 #include <trace/define_trace.h>
100