/* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM signal #if !defined(_TRACE_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_SIGNAL_H #include <linux/signal.h> #include <linux/sched.h> #include <linux/tracepoint.h> #define TP_STORE_SIGINFO(__entry, info) \ do { \ if (info == SEND_SIG_NOINFO || \ info == SEND_SIG_FORCED) { \ __entry->errno = 0; \ __entry->code = SI_USER; \ } else if (info == SEND_SIG_PRIV) { \ __entry->errno = 0; \ __entry->code = SI_KERNEL; \ } else { \ __entry->errno = info->si_errno; \ __entry->code = info->si_code; \ } \ } while (0) #ifndef TRACE_HEADER_MULTI_READ enum { TRACE_SIGNAL_DELIVERED, TRACE_SIGNAL_IGNORED, TRACE_SIGNAL_ALREADY_PENDING, TRACE_SIGNAL_OVERFLOW_FAIL, TRACE_SIGNAL_LOSE_INFO, }; #endif /** * signal_generate - called when a signal is generated * @sig: signal number * @info: pointer to struct siginfo * @task: pointer to struct task_struct * @group: shared or private * @result: TRACE_SIGNAL_* * * Current process sends a 'sig' signal to 'task' process with * 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, * 'info' is not a pointer and you can't access its field. Instead, * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV * means that si_code is SI_KERNEL. */ TRACE_EVENT(signal_generate, TP_PROTO(int sig, struct siginfo *info, struct task_struct *task, int group, int result), TP_ARGS(sig, info, task, group, result), TP_STRUCT__entry( __field( int, sig ) __field( int, errno ) __field( int, code ) __array( char, comm, TASK_COMM_LEN ) __field( pid_t, pid ) __field( int, group ) __field( int, result ) ), TP_fast_assign( __entry->sig = sig; TP_STORE_SIGINFO(__entry, info); memcpy(__entry->comm, task->comm, TASK_COMM_LEN); __entry->pid = task->pid; __entry->group = group; __entry->result = result; ), TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d", __entry->sig, __entry->errno, __entry->code, __entry->comm, __entry->pid, __entry->group, __entry->result) ); /** * signal_deliver - called when a signal is delivered * @sig: signal number * @info: pointer to struct siginfo * @ka: pointer to struct k_sigaction * * A 'sig' signal is delivered to current process with 'info' siginfo, * and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or * SIG_DFL. * Note that some signals reported by signal_generate tracepoint can be * lost, ignored or modified (by debugger) before hitting this tracepoint. * This means, this can show which signals are actually delivered, but * matching generated signals and delivered signals may not be correct. */ TRACE_EVENT(signal_deliver, TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka), TP_ARGS(sig, info, ka), TP_STRUCT__entry( __field( int, sig ) __field( int, errno ) __field( int, code ) __field( unsigned long, sa_handler ) __field( unsigned long, sa_flags ) ), TP_fast_assign( __entry->sig = sig; TP_STORE_SIGINFO(__entry, info); __entry->sa_handler = (unsigned long)ka->sa.sa_handler; __entry->sa_flags = ka->sa.sa_flags; ), TP_printk("sig=%d errno=%d code=%d sa_handler=%lx sa_flags=%lx", __entry->sig, __entry->errno, __entry->code, __entry->sa_handler, __entry->sa_flags) ); #endif /* _TRACE_SIGNAL_H */ /* This part must be outside protection */ #include <trace/define_trace.h>
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
9p.h | File | 5.1 KB | 0644 |
|
afs.h | File | 13.13 KB | 0644 |
|
alarmtimer.h | File | 2.04 KB | 0644 |
|
asoc.h | File | 5.17 KB | 0644 |
|
bcache.h | File | 10.9 KB | 0644 |
|
block.h | File | 17.18 KB | 0644 |
|
bpf.h | File | 8.23 KB | 0644 |
|
bridge.h | File | 3.45 KB | 0644 |
|
btrfs.h | File | 46.21 KB | 0644 |
|
cgroup.h | File | 3.21 KB | 0644 |
|
clk.h | File | 3.69 KB | 0644 |
|
cma.h | File | 1.31 KB | 0644 |
|
compaction.h | File | 7.76 KB | 0644 |
|
context_tracking.h | File | 1.15 KB | 0644 |
|
cpuhp.h | File | 1.83 KB | 0644 |
|
devlink.h | File | 1.76 KB | 0644 |
|
dma_fence.h | File | 1.66 KB | 0644 |
|
ext4.h | File | 64.44 KB | 0644 |
|
f2fs.h | File | 36.38 KB | 0644 |
|
fib.h | File | 2.45 KB | 0644 |
|
fib6.h | File | 1.82 KB | 0644 |
|
filelock.h | File | 6.27 KB | 0644 |
|
filemap.h | File | 2.74 KB | 0644 |
|
fs.h | File | 946 B | 0644 |
|
fs_dax.h | File | 8.26 KB | 0644 |
|
fsi.h | File | 2.81 KB | 0644 |
|
fsi_master_gpio.h | File | 1.54 KB | 0644 |
|
gpio.h | File | 1.13 KB | 0644 |
|
host1x.h | File | 5.77 KB | 0644 |
|
hswadsp.h | File | 8.37 KB | 0644 |
|
huge_memory.h | File | 4.33 KB | 0644 |
|
i2c.h | File | 4.15 KB | 0644 |
|
intel-sst.h | File | 2.51 KB | 0644 |
|
intel_ish.h | File | 556 B | 0644 |
|
iommu.h | File | 3.03 KB | 0644 |
|
ipi.h | File | 1.88 KB | 0644 |
|
irq.h | File | 3.8 KB | 0644 |
|
irq_matrix.h | File | 4.94 KB | 0644 |
|
jbd2.h | File | 9.79 KB | 0644 |
|
kmem.h | File | 7.39 KB | 0644 |
|
kvm.h | File | 9.03 KB | 0644 |
|
libata.h | File | 11.57 KB | 0644 |
|
lock.h | File | 1.7 KB | 0644 |
|
mce.h | File | 1.85 KB | 0644 |
|
mdio.h | File | 1.02 KB | 0644 |
|
migrate.h | File | 2.42 KB | 0644 |
|
mmc.h | File | 7.24 KB | 0644 |
|
mmflags.h | File | 8.29 KB | 0644 |
|
module.h | File | 2.78 KB | 0644 |
|
napi.h | File | 1013 B | 0644 |
|
net.h | File | 6.56 KB | 0644 |
|
nilfs2.h | File | 5.2 KB | 0644 |
|
nmi.h | File | 780 B | 0644 |
|
oom.h | File | 3.88 KB | 0644 |
|
page_isolation.h | File | 943 B | 0644 |
|
page_ref.h | File | 2.99 KB | 0644 |
|
pagemap.h | File | 2.14 KB | 0644 |
|
percpu.h | File | 2.61 KB | 0644 |
|
power.h | File | 11.35 KB | 0644 |
|
power_cpu_migrate.h | File | 1.59 KB | 0644 |
|
preemptirq.h | File | 1.95 KB | 0644 |
|
printk.h | File | 786 B | 0644 |
|
qdisc.h | File | 1.37 KB | 0644 |
|
rcu.h | File | 24.64 KB | 0644 |
|
regulator.h | File | 2.4 KB | 0644 |
|
rpm.h | File | 2.34 KB | 0644 |
|
rxrpc.h | File | 33.79 KB | 0644 |
|
sched.h | File | 14.12 KB | 0644 |
|
scsi.h | File | 12.32 KB | 0644 |
|
signal.h | File | 3.43 KB | 0644 |
|
skb.h | File | 1.38 KB | 0644 |
|
smbus.h | File | 7.51 KB | 0644 |
|
sock.h | File | 1.72 KB | 0644 |
|
spi.h | File | 3.31 KB | 0644 |
|
spmi.h | File | 3.24 KB | 0644 |
|
sunrpc.h | File | 18.31 KB | 0644 |
|
sunvnet.h | File | 3.06 KB | 0644 |
|
swiotlb.h | File | 1.22 KB | 0644 |
|
syscalls.h | File | 1.48 KB | 0644 |
|
target.h | File | 7.52 KB | 0644 |
|
task.h | File | 1.49 KB | 0644 |
|
tcp.h | File | 6.57 KB | 0644 |
|
thermal.h | File | 5.58 KB | 0644 |
|
thermal_power_allocator.h | File | 3.22 KB | 0644 |
|
thp.h | File | 2.09 KB | 0644 |
|
timer.h | File | 9.58 KB | 0644 |
|
tlb.h | File | 1.41 KB | 0644 |
|
udp.h | File | 632 B | 0644 |
|
ufs.h | File | 6.85 KB | 0644 |
|
v4l2.h | File | 8.81 KB | 0644 |
|
vb2.h | File | 1.73 KB | 0644 |
|
vmscan.h | File | 12.47 KB | 0644 |
|
vsock_virtio_transport_common.h | File | 3.49 KB | 0644 |
|
wbt.h | File | 3.83 KB | 0644 |
|
workqueue.h | File | 2.7 KB | 0644 |
|
writeback.h | File | 19.81 KB | 0644 |
|
xdp.h | File | 5.76 KB | 0644 |
|
xen.h | File | 14.66 KB | 0644 |
|