xref: /linux/include/trace/events/task.h (revision 5ab889facc6893e4a973d6ab5432550ef4f6ff09)
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, unsigned long 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( unsigned long, 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=%lx 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 		__array(	char, oldcomm,  TASK_COMM_LEN)
42 		__array(	char, newcomm,  TASK_COMM_LEN)
43 		__field(	short,	oom_score_adj)
44 	),
45 
46 	TP_fast_assign(
47 		memcpy(entry->oldcomm, task->comm, TASK_COMM_LEN);
48 		strscpy(entry->newcomm, comm, TASK_COMM_LEN);
49 		__entry->oom_score_adj = task->signal->oom_score_adj;
50 	),
51 
52 	TP_printk("oldcomm=%s newcomm=%s oom_score_adj=%hd",
53 		  __entry->oldcomm, __entry->newcomm, __entry->oom_score_adj)
54 );
55 
56 /**
57  * task_prctl_unknown - called on unknown prctl() option
58  * @option:	option passed
59  * @arg2:	arg2 passed
60  * @arg3:	arg3 passed
61  * @arg4:	arg4 passed
62  * @arg5:	arg5 passed
63  *
64  * Called on an unknown prctl() option.
65  */
66 TRACE_EVENT(task_prctl_unknown,
67 
68 	TP_PROTO(int option, unsigned long arg2, unsigned long arg3,
69 		 unsigned long arg4, unsigned long arg5),
70 
71 	TP_ARGS(option, arg2, arg3, arg4, arg5),
72 
73 	TP_STRUCT__entry(
74 		__field(	int,		option)
75 		__field(	unsigned long,	arg2)
76 		__field(	unsigned long,	arg3)
77 		__field(	unsigned long,	arg4)
78 		__field(	unsigned long,	arg5)
79 	),
80 
81 	TP_fast_assign(
82 		__entry->option = option;
83 		__entry->arg2 = arg2;
84 		__entry->arg3 = arg3;
85 		__entry->arg4 = arg4;
86 		__entry->arg5 = arg5;
87 	),
88 
89 	TP_printk("option=%d arg2=%ld arg3=%ld arg4=%ld arg5=%ld",
90 		  __entry->option, __entry->arg2, __entry->arg3, __entry->arg4, __entry->arg5)
91 );
92 
93 #endif
94 
95 /* This part must be outside protection */
96 #include <trace/define_trace.h>
97