162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */
262306a36Sopenharmony_ci#undef TRACE_SYSTEM
362306a36Sopenharmony_ci#define TRACE_SYSTEM rseq
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#if !defined(_TRACE_RSEQ_H) || defined(TRACE_HEADER_MULTI_READ)
662306a36Sopenharmony_ci#define _TRACE_RSEQ_H
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include <linux/tracepoint.h>
962306a36Sopenharmony_ci#include <linux/types.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciTRACE_EVENT(rseq_update,
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	TP_PROTO(struct task_struct *t),
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	TP_ARGS(t),
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	TP_STRUCT__entry(
1862306a36Sopenharmony_ci		__field(s32, cpu_id)
1962306a36Sopenharmony_ci		__field(s32, node_id)
2062306a36Sopenharmony_ci		__field(s32, mm_cid)
2162306a36Sopenharmony_ci	),
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	TP_fast_assign(
2462306a36Sopenharmony_ci		__entry->cpu_id = raw_smp_processor_id();
2562306a36Sopenharmony_ci		__entry->node_id = cpu_to_node(__entry->cpu_id);
2662306a36Sopenharmony_ci		__entry->mm_cid = task_mm_cid(t);
2762306a36Sopenharmony_ci	),
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	TP_printk("cpu_id=%d node_id=%d mm_cid=%d", __entry->cpu_id,
3062306a36Sopenharmony_ci		  __entry->node_id, __entry->mm_cid)
3162306a36Sopenharmony_ci);
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciTRACE_EVENT(rseq_ip_fixup,
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	TP_PROTO(unsigned long regs_ip, unsigned long start_ip,
3662306a36Sopenharmony_ci		unsigned long post_commit_offset, unsigned long abort_ip),
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	TP_ARGS(regs_ip, start_ip, post_commit_offset, abort_ip),
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	TP_STRUCT__entry(
4162306a36Sopenharmony_ci		__field(unsigned long, regs_ip)
4262306a36Sopenharmony_ci		__field(unsigned long, start_ip)
4362306a36Sopenharmony_ci		__field(unsigned long, post_commit_offset)
4462306a36Sopenharmony_ci		__field(unsigned long, abort_ip)
4562306a36Sopenharmony_ci	),
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	TP_fast_assign(
4862306a36Sopenharmony_ci		__entry->regs_ip = regs_ip;
4962306a36Sopenharmony_ci		__entry->start_ip = start_ip;
5062306a36Sopenharmony_ci		__entry->post_commit_offset = post_commit_offset;
5162306a36Sopenharmony_ci		__entry->abort_ip = abort_ip;
5262306a36Sopenharmony_ci	),
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci	TP_printk("regs_ip=0x%lx start_ip=0x%lx post_commit_offset=%lu abort_ip=0x%lx",
5562306a36Sopenharmony_ci		__entry->regs_ip, __entry->start_ip,
5662306a36Sopenharmony_ci		__entry->post_commit_offset, __entry->abort_ip)
5762306a36Sopenharmony_ci);
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci#endif /* _TRACE_SOCK_H */
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci/* This part must be outside protection */
6262306a36Sopenharmony_ci#include <trace/define_trace.h>
63