1/* SPDX-License-Identifier: GPL-2.0+ */
2
3#undef TRACE_SYSTEM
4#define TRACE_SYSTEM	vas
5
6#if !defined(_VAS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
7
8#define _VAS_TRACE_H
9#include <linux/tracepoint.h>
10#include <linux/sched.h>
11#include <asm/vas.h>
12
13TRACE_EVENT(	vas_rx_win_open,
14
15		TP_PROTO(struct task_struct *tsk,
16			 int vasid,
17			 int cop,
18			 struct vas_rx_win_attr *rxattr),
19
20		TP_ARGS(tsk, vasid, cop, rxattr),
21
22		TP_STRUCT__entry(
23			__field(struct task_struct *, tsk)
24			__field(int, pid)
25			__field(int, cop)
26			__field(int, vasid)
27			__field(struct vas_rx_win_attr *, rxattr)
28			__field(int, lnotify_lpid)
29			__field(int, lnotify_pid)
30			__field(int, lnotify_tid)
31		),
32
33		TP_fast_assign(
34			__entry->pid = tsk->pid;
35			__entry->vasid = vasid;
36			__entry->cop = cop;
37			__entry->lnotify_lpid = rxattr->lnotify_lpid;
38			__entry->lnotify_pid = rxattr->lnotify_pid;
39			__entry->lnotify_tid = rxattr->lnotify_tid;
40		),
41
42		TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pid=%d, tid=%d",
43			__entry->pid, __entry->vasid, __entry->cop,
44			__entry->lnotify_lpid, __entry->lnotify_pid,
45			__entry->lnotify_tid)
46);
47
48TRACE_EVENT(	vas_tx_win_open,
49
50		TP_PROTO(struct task_struct *tsk,
51			 int vasid,
52			 int cop,
53			 struct vas_tx_win_attr *txattr),
54
55		TP_ARGS(tsk, vasid, cop, txattr),
56
57		TP_STRUCT__entry(
58			__field(struct task_struct *, tsk)
59			__field(int, pid)
60			__field(int, cop)
61			__field(int, vasid)
62			__field(struct vas_tx_win_attr *, txattr)
63			__field(int, lpid)
64			__field(int, pidr)
65		),
66
67		TP_fast_assign(
68			__entry->pid = tsk->pid;
69			__entry->vasid = vasid;
70			__entry->cop = cop;
71			__entry->lpid = txattr->lpid;
72			__entry->pidr = txattr->pidr;
73		),
74
75		TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pidr=%d",
76			__entry->pid, __entry->vasid, __entry->cop,
77			__entry->lpid, __entry->pidr)
78);
79
80TRACE_EVENT(	vas_paste_crb,
81
82		TP_PROTO(struct task_struct *tsk,
83			struct pnv_vas_window *win),
84
85		TP_ARGS(tsk, win),
86
87		TP_STRUCT__entry(
88			__field(struct task_struct *, tsk)
89			__field(struct vas_window *, win)
90			__field(int, pid)
91			__field(int, vasid)
92			__field(int, winid)
93			__field(unsigned long, paste_kaddr)
94		),
95
96		TP_fast_assign(
97			__entry->pid = tsk->pid;
98			__entry->vasid = win->vinst->vas_id;
99			__entry->winid = win->vas_win.winid;
100			__entry->paste_kaddr = (unsigned long)win->paste_kaddr
101		),
102
103		TP_printk("pid=%d, vasid=%d, winid=%d, paste_kaddr=0x%016lx\n",
104			__entry->pid, __entry->vasid, __entry->winid,
105			__entry->paste_kaddr)
106);
107
108#endif /* _VAS_TRACE_H */
109
110#undef TRACE_INCLUDE_PATH
111#define TRACE_INCLUDE_PATH ../../arch/powerpc/platforms/powernv
112#define TRACE_INCLUDE_FILE vas-trace
113#include <trace/define_trace.h>
114