Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) #define TRACE_SYSTEM signal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) #if !defined(_TRACE_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) #define _TRACE_SIGNAL_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #include <linux/signal.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #include <linux/sched.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) #define TP_STORE_SIGINFO(__entry, info)				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 	do {							\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 		if (info == SEND_SIG_NOINFO) {			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 			__entry->errno	= 0;			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 			__entry->code	= SI_USER;		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 		} else if (info == SEND_SIG_PRIV) {		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 			__entry->errno	= 0;			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 			__entry->code	= SI_KERNEL;		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 		} else {					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 			__entry->errno	= info->si_errno;	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 			__entry->code	= info->si_code;	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 		}						\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	} while (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #ifndef TRACE_HEADER_MULTI_READ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) enum {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 	TRACE_SIGNAL_DELIVERED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	TRACE_SIGNAL_IGNORED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	TRACE_SIGNAL_ALREADY_PENDING,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	TRACE_SIGNAL_OVERFLOW_FAIL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 	TRACE_SIGNAL_LOSE_INFO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)  * signal_generate - called when a signal is generated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)  * @sig: signal number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)  * @info: pointer to struct siginfo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)  * @task: pointer to struct task_struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)  * @group: shared or private
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)  * @result: TRACE_SIGNAL_*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)  * Current process sends a 'sig' signal to 'task' process with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)  * 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)  * 'info' is not a pointer and you can't access its field. Instead,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47)  * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)  * means that si_code is SI_KERNEL.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) TRACE_EVENT(signal_generate,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	TP_PROTO(int sig, struct kernel_siginfo *info, struct task_struct *task,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 			int group, int result),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	TP_ARGS(sig, info, task, group, result),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 		__field(	int,	sig			)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 		__field(	int,	errno			)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 		__field(	int,	code			)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 		__array(	char,	comm,	TASK_COMM_LEN	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 		__field(	pid_t,	pid			)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 		__field(	int,	group			)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 		__field(	int,	result			)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 		__entry->sig	= sig;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 		TP_STORE_SIGINFO(__entry, info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 		memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 		__entry->pid	= task->pid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 		__entry->group	= group;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 		__entry->result	= result;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 		  __entry->sig, __entry->errno, __entry->code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 		  __entry->comm, __entry->pid, __entry->group,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 		  __entry->result)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)  * signal_deliver - called when a signal is delivered
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)  * @sig: signal number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)  * @info: pointer to struct siginfo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86)  * @ka: pointer to struct k_sigaction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)  * A 'sig' signal is delivered to current process with 'info' siginfo,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)  * and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)  * SIG_DFL.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91)  * Note that some signals reported by signal_generate tracepoint can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)  * lost, ignored or modified (by debugger) before hitting this tracepoint.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)  * This means, this can show which signals are actually delivered, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)  * matching generated signals and delivered signals may not be correct.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) TRACE_EVENT(signal_deliver,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	TP_PROTO(int sig, struct kernel_siginfo *info, struct k_sigaction *ka),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	TP_ARGS(sig, info, ka),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 		__field(	int,		sig		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 		__field(	int,		errno		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 		__field(	int,		code		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 		__field(	unsigned long,	sa_handler	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 		__field(	unsigned long,	sa_flags	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 		__entry->sig	= sig;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 		TP_STORE_SIGINFO(__entry, info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 		__entry->sa_handler	= (unsigned long)ka->sa.sa_handler;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 		__entry->sa_flags	= ka->sa.sa_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	TP_printk("sig=%d errno=%d code=%d sa_handler=%lx sa_flags=%lx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 		  __entry->sig, __entry->errno, __entry->code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 		  __entry->sa_handler, __entry->sa_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) #endif /* _TRACE_SIGNAL_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #include <trace/define_trace.h>