xref: /linux-6.15/include/trace/events/task.h (revision e3f6a422)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
243d2b113SKAMEZAWA Hiroyuki #undef TRACE_SYSTEM
343d2b113SKAMEZAWA Hiroyuki #define TRACE_SYSTEM task
443d2b113SKAMEZAWA Hiroyuki 
543d2b113SKAMEZAWA Hiroyuki #if !defined(_TRACE_TASK_H) || defined(TRACE_HEADER_MULTI_READ)
643d2b113SKAMEZAWA Hiroyuki #define _TRACE_TASK_H
743d2b113SKAMEZAWA Hiroyuki #include <linux/tracepoint.h>
843d2b113SKAMEZAWA Hiroyuki 
943d2b113SKAMEZAWA Hiroyuki TRACE_EVENT(task_newtask,
1043d2b113SKAMEZAWA Hiroyuki 
1143d2b113SKAMEZAWA Hiroyuki 	TP_PROTO(struct task_struct *task, unsigned long clone_flags),
1243d2b113SKAMEZAWA Hiroyuki 
1343d2b113SKAMEZAWA Hiroyuki 	TP_ARGS(task, clone_flags),
1443d2b113SKAMEZAWA Hiroyuki 
1543d2b113SKAMEZAWA Hiroyuki 	TP_STRUCT__entry(
1643d2b113SKAMEZAWA Hiroyuki 		__field(	pid_t,	pid)
1743d2b113SKAMEZAWA Hiroyuki 		__array(	char,	comm, TASK_COMM_LEN)
1843d2b113SKAMEZAWA Hiroyuki 		__field( unsigned long, clone_flags)
19a9c58b90SDavid Rientjes 		__field(	short,	oom_score_adj)
2043d2b113SKAMEZAWA Hiroyuki 	),
2143d2b113SKAMEZAWA Hiroyuki 
2243d2b113SKAMEZAWA Hiroyuki 	TP_fast_assign(
2343d2b113SKAMEZAWA Hiroyuki 		__entry->pid = task->pid;
2443d2b113SKAMEZAWA Hiroyuki 		memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
2543d2b113SKAMEZAWA Hiroyuki 		__entry->clone_flags = clone_flags;
2643d2b113SKAMEZAWA Hiroyuki 		__entry->oom_score_adj = task->signal->oom_score_adj;
2743d2b113SKAMEZAWA Hiroyuki 	),
2843d2b113SKAMEZAWA Hiroyuki 
29a9c58b90SDavid Rientjes 	TP_printk("pid=%d comm=%s clone_flags=%lx oom_score_adj=%hd",
3043d2b113SKAMEZAWA Hiroyuki 		__entry->pid, __entry->comm,
3143d2b113SKAMEZAWA Hiroyuki 		__entry->clone_flags, __entry->oom_score_adj)
3243d2b113SKAMEZAWA Hiroyuki );
3343d2b113SKAMEZAWA Hiroyuki 
3443d2b113SKAMEZAWA Hiroyuki TRACE_EVENT(task_rename,
3543d2b113SKAMEZAWA Hiroyuki 
3623aebe16SOleg Nesterov 	TP_PROTO(struct task_struct *task, const char *comm),
3743d2b113SKAMEZAWA Hiroyuki 
3843d2b113SKAMEZAWA Hiroyuki 	TP_ARGS(task, comm),
3943d2b113SKAMEZAWA Hiroyuki 
4043d2b113SKAMEZAWA Hiroyuki 	TP_STRUCT__entry(
4143d2b113SKAMEZAWA Hiroyuki 		__array(	char, oldcomm,  TASK_COMM_LEN)
4243d2b113SKAMEZAWA Hiroyuki 		__array(	char, newcomm,  TASK_COMM_LEN)
43a9c58b90SDavid Rientjes 		__field(	short,	oom_score_adj)
4443d2b113SKAMEZAWA Hiroyuki 	),
4543d2b113SKAMEZAWA Hiroyuki 
4643d2b113SKAMEZAWA Hiroyuki 	TP_fast_assign(
4743d2b113SKAMEZAWA Hiroyuki 		memcpy(entry->oldcomm, task->comm, TASK_COMM_LEN);
482933d3cdSAzeem Shaikh 		strscpy(entry->newcomm, comm, TASK_COMM_LEN);
4943d2b113SKAMEZAWA Hiroyuki 		__entry->oom_score_adj = task->signal->oom_score_adj;
5043d2b113SKAMEZAWA Hiroyuki 	),
5143d2b113SKAMEZAWA Hiroyuki 
52*e3f6a422SMarco Elver 	TP_printk("oldcomm=%s newcomm=%s oom_score_adj=%hd",
53*e3f6a422SMarco Elver 		  __entry->oldcomm, __entry->newcomm, __entry->oom_score_adj)
5443d2b113SKAMEZAWA Hiroyuki );
5543d2b113SKAMEZAWA Hiroyuki 
56c38904ebSMarco Elver /**
57c38904ebSMarco Elver  * task_prctl_unknown - called on unknown prctl() option
58c38904ebSMarco Elver  * @option:	option passed
59c38904ebSMarco Elver  * @arg2:	arg2 passed
60c38904ebSMarco Elver  * @arg3:	arg3 passed
61c38904ebSMarco Elver  * @arg4:	arg4 passed
62c38904ebSMarco Elver  * @arg5:	arg5 passed
63c38904ebSMarco Elver  *
64c38904ebSMarco Elver  * Called on an unknown prctl() option.
65c38904ebSMarco Elver  */
66c38904ebSMarco Elver TRACE_EVENT(task_prctl_unknown,
67c38904ebSMarco Elver 
68c38904ebSMarco Elver 	TP_PROTO(int option, unsigned long arg2, unsigned long arg3,
69c38904ebSMarco Elver 		 unsigned long arg4, unsigned long arg5),
70c38904ebSMarco Elver 
71c38904ebSMarco Elver 	TP_ARGS(option, arg2, arg3, arg4, arg5),
72c38904ebSMarco Elver 
73c38904ebSMarco Elver 	TP_STRUCT__entry(
74c38904ebSMarco Elver 		__field(	int,		option)
75c38904ebSMarco Elver 		__field(	unsigned long,	arg2)
76c38904ebSMarco Elver 		__field(	unsigned long,	arg3)
77c38904ebSMarco Elver 		__field(	unsigned long,	arg4)
78c38904ebSMarco Elver 		__field(	unsigned long,	arg5)
79c38904ebSMarco Elver 	),
80c38904ebSMarco Elver 
81c38904ebSMarco Elver 	TP_fast_assign(
82c38904ebSMarco Elver 		__entry->option = option;
83c38904ebSMarco Elver 		__entry->arg2 = arg2;
84c38904ebSMarco Elver 		__entry->arg3 = arg3;
85c38904ebSMarco Elver 		__entry->arg4 = arg4;
86c38904ebSMarco Elver 		__entry->arg5 = arg5;
87c38904ebSMarco Elver 	),
88c38904ebSMarco Elver 
89c38904ebSMarco Elver 	TP_printk("option=%d arg2=%ld arg3=%ld arg4=%ld arg5=%ld",
90c38904ebSMarco Elver 		  __entry->option, __entry->arg2, __entry->arg3, __entry->arg4, __entry->arg5)
91c38904ebSMarco Elver );
92c38904ebSMarco Elver 
9343d2b113SKAMEZAWA Hiroyuki #endif
9443d2b113SKAMEZAWA Hiroyuki 
9543d2b113SKAMEZAWA Hiroyuki /* This part must be outside protection */
9643d2b113SKAMEZAWA Hiroyuki #include <trace/define_trace.h>
97