1 /* SPDX-License-Identifier: GPL-2.0+ */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM rseq
4 
5 #if !defined(_TRACE_RSEQ_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_RSEQ_H
7 
8 #include <linux/tracepoint.h>
9 #include <linux/types.h>
10 
11 TRACE_EVENT(rseq_update,
12 
13 	TP_PROTO(struct task_struct *t),
14 
15 	TP_ARGS(t),
16 
17 	TP_STRUCT__entry(
18 		__field(s32, cpu_id)
19 		__field(s32, node_id)
20 		__field(s32, mm_cid)
21 	),
22 
23 	TP_fast_assign(
24 		__entry->cpu_id = raw_smp_processor_id();
25 		__entry->node_id = cpu_to_node(__entry->cpu_id);
26 		__entry->mm_cid = task_mm_cid(t);
27 	),
28 
29 	TP_printk("cpu_id=%d node_id=%d mm_cid=%d", __entry->cpu_id,
30 		  __entry->node_id, __entry->mm_cid)
31 );
32 
33 TRACE_EVENT(rseq_ip_fixup,
34 
35 	TP_PROTO(unsigned long regs_ip, unsigned long start_ip,
36 		unsigned long post_commit_offset, unsigned long abort_ip),
37 
38 	TP_ARGS(regs_ip, start_ip, post_commit_offset, abort_ip),
39 
40 	TP_STRUCT__entry(
41 		__field(unsigned long, regs_ip)
42 		__field(unsigned long, start_ip)
43 		__field(unsigned long, post_commit_offset)
44 		__field(unsigned long, abort_ip)
45 	),
46 
47 	TP_fast_assign(
48 		__entry->regs_ip = regs_ip;
49 		__entry->start_ip = start_ip;
50 		__entry->post_commit_offset = post_commit_offset;
51 		__entry->abort_ip = abort_ip;
52 	),
53 
54 	TP_printk("regs_ip=0x%lx start_ip=0x%lx post_commit_offset=%lu abort_ip=0x%lx",
55 		__entry->regs_ip, __entry->start_ip,
56 		__entry->post_commit_offset, __entry->abort_ip)
57 );
58 
59 #endif /* _TRACE_SOCK_H */
60 
61 /* This part must be outside protection */
62 #include <trace/define_trace.h>
63