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