1007bb7d6SSukadev Bhattiprolu /* SPDX-License-Identifier: GPL-2.0+ */
2007bb7d6SSukadev Bhattiprolu 
3007bb7d6SSukadev Bhattiprolu #undef TRACE_SYSTEM
4007bb7d6SSukadev Bhattiprolu #define TRACE_SYSTEM	vas
5007bb7d6SSukadev Bhattiprolu 
6007bb7d6SSukadev Bhattiprolu #if !defined(_VAS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
7007bb7d6SSukadev Bhattiprolu 
8007bb7d6SSukadev Bhattiprolu #define _VAS_TRACE_H
9007bb7d6SSukadev Bhattiprolu #include <linux/tracepoint.h>
10007bb7d6SSukadev Bhattiprolu #include <linux/sched.h>
11007bb7d6SSukadev Bhattiprolu #include <asm/vas.h>
12007bb7d6SSukadev Bhattiprolu 
13007bb7d6SSukadev Bhattiprolu TRACE_EVENT(	vas_rx_win_open,
14007bb7d6SSukadev Bhattiprolu 
15007bb7d6SSukadev Bhattiprolu 		TP_PROTO(struct task_struct *tsk,
16007bb7d6SSukadev Bhattiprolu 			 int vasid,
17007bb7d6SSukadev Bhattiprolu 			 int cop,
18007bb7d6SSukadev Bhattiprolu 			 struct vas_rx_win_attr *rxattr),
19007bb7d6SSukadev Bhattiprolu 
20007bb7d6SSukadev Bhattiprolu 		TP_ARGS(tsk, vasid, cop, rxattr),
21007bb7d6SSukadev Bhattiprolu 
22007bb7d6SSukadev Bhattiprolu 		TP_STRUCT__entry(
23007bb7d6SSukadev Bhattiprolu 			__field(struct task_struct *, tsk)
24007bb7d6SSukadev Bhattiprolu 			__field(int, pid)
25007bb7d6SSukadev Bhattiprolu 			__field(int, cop)
26007bb7d6SSukadev Bhattiprolu 			__field(int, vasid)
27007bb7d6SSukadev Bhattiprolu 			__field(struct vas_rx_win_attr *, rxattr)
28007bb7d6SSukadev Bhattiprolu 			__field(int, lnotify_lpid)
29007bb7d6SSukadev Bhattiprolu 			__field(int, lnotify_pid)
30007bb7d6SSukadev Bhattiprolu 			__field(int, lnotify_tid)
31007bb7d6SSukadev Bhattiprolu 		),
32007bb7d6SSukadev Bhattiprolu 
33007bb7d6SSukadev Bhattiprolu 		TP_fast_assign(
34007bb7d6SSukadev Bhattiprolu 			__entry->pid = tsk->pid;
35007bb7d6SSukadev Bhattiprolu 			__entry->vasid = vasid;
36007bb7d6SSukadev Bhattiprolu 			__entry->cop = cop;
37007bb7d6SSukadev Bhattiprolu 			__entry->lnotify_lpid = rxattr->lnotify_lpid;
38007bb7d6SSukadev Bhattiprolu 			__entry->lnotify_pid = rxattr->lnotify_pid;
39007bb7d6SSukadev Bhattiprolu 			__entry->lnotify_tid = rxattr->lnotify_tid;
40007bb7d6SSukadev Bhattiprolu 		),
41007bb7d6SSukadev Bhattiprolu 
42007bb7d6SSukadev Bhattiprolu 		TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pid=%d, tid=%d",
43007bb7d6SSukadev Bhattiprolu 			__entry->pid, __entry->vasid, __entry->cop,
44007bb7d6SSukadev Bhattiprolu 			__entry->lnotify_lpid, __entry->lnotify_pid,
45007bb7d6SSukadev Bhattiprolu 			__entry->lnotify_tid)
46007bb7d6SSukadev Bhattiprolu );
47007bb7d6SSukadev Bhattiprolu 
48007bb7d6SSukadev Bhattiprolu TRACE_EVENT(	vas_tx_win_open,
49007bb7d6SSukadev Bhattiprolu 
50007bb7d6SSukadev Bhattiprolu 		TP_PROTO(struct task_struct *tsk,
51007bb7d6SSukadev Bhattiprolu 			 int vasid,
52007bb7d6SSukadev Bhattiprolu 			 int cop,
53007bb7d6SSukadev Bhattiprolu 			 struct vas_tx_win_attr *txattr),
54007bb7d6SSukadev Bhattiprolu 
55007bb7d6SSukadev Bhattiprolu 		TP_ARGS(tsk, vasid, cop, txattr),
56007bb7d6SSukadev Bhattiprolu 
57007bb7d6SSukadev Bhattiprolu 		TP_STRUCT__entry(
58007bb7d6SSukadev Bhattiprolu 			__field(struct task_struct *, tsk)
59007bb7d6SSukadev Bhattiprolu 			__field(int, pid)
60007bb7d6SSukadev Bhattiprolu 			__field(int, cop)
61007bb7d6SSukadev Bhattiprolu 			__field(int, vasid)
62007bb7d6SSukadev Bhattiprolu 			__field(struct vas_tx_win_attr *, txattr)
63007bb7d6SSukadev Bhattiprolu 			__field(int, lpid)
64007bb7d6SSukadev Bhattiprolu 			__field(int, pidr)
65007bb7d6SSukadev Bhattiprolu 		),
66007bb7d6SSukadev Bhattiprolu 
67007bb7d6SSukadev Bhattiprolu 		TP_fast_assign(
68007bb7d6SSukadev Bhattiprolu 			__entry->pid = tsk->pid;
69007bb7d6SSukadev Bhattiprolu 			__entry->vasid = vasid;
70007bb7d6SSukadev Bhattiprolu 			__entry->cop = cop;
71007bb7d6SSukadev Bhattiprolu 			__entry->lpid = txattr->lpid;
72007bb7d6SSukadev Bhattiprolu 			__entry->pidr = txattr->pidr;
73007bb7d6SSukadev Bhattiprolu 		),
74007bb7d6SSukadev Bhattiprolu 
75007bb7d6SSukadev Bhattiprolu 		TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pidr=%d",
76007bb7d6SSukadev Bhattiprolu 			__entry->pid, __entry->vasid, __entry->cop,
77007bb7d6SSukadev Bhattiprolu 			__entry->lpid, __entry->pidr)
78007bb7d6SSukadev Bhattiprolu );
79007bb7d6SSukadev Bhattiprolu 
80007bb7d6SSukadev Bhattiprolu TRACE_EVENT(	vas_paste_crb,
81007bb7d6SSukadev Bhattiprolu 
82007bb7d6SSukadev Bhattiprolu 		TP_PROTO(struct task_struct *tsk,
83*7bc6f71bSHaren Myneni 			struct pnv_vas_window *win),
84007bb7d6SSukadev Bhattiprolu 
85007bb7d6SSukadev Bhattiprolu 		TP_ARGS(tsk, win),
86007bb7d6SSukadev Bhattiprolu 
87007bb7d6SSukadev Bhattiprolu 		TP_STRUCT__entry(
88007bb7d6SSukadev Bhattiprolu 			__field(struct task_struct *, tsk)
89007bb7d6SSukadev Bhattiprolu 			__field(struct vas_window *, win)
90007bb7d6SSukadev Bhattiprolu 			__field(int, pid)
91007bb7d6SSukadev Bhattiprolu 			__field(int, vasid)
92007bb7d6SSukadev Bhattiprolu 			__field(int, winid)
93007bb7d6SSukadev Bhattiprolu 			__field(unsigned long, paste_kaddr)
94007bb7d6SSukadev Bhattiprolu 		),
95007bb7d6SSukadev Bhattiprolu 
96007bb7d6SSukadev Bhattiprolu 		TP_fast_assign(
97007bb7d6SSukadev Bhattiprolu 			__entry->pid = tsk->pid;
98007bb7d6SSukadev Bhattiprolu 			__entry->vasid = win->vinst->vas_id;
99*7bc6f71bSHaren Myneni 			__entry->winid = win->vas_win.winid;
100007bb7d6SSukadev Bhattiprolu 			__entry->paste_kaddr = (unsigned long)win->paste_kaddr
101007bb7d6SSukadev Bhattiprolu 		),
102007bb7d6SSukadev Bhattiprolu 
103007bb7d6SSukadev Bhattiprolu 		TP_printk("pid=%d, vasid=%d, winid=%d, paste_kaddr=0x%016lx\n",
104007bb7d6SSukadev Bhattiprolu 			__entry->pid, __entry->vasid, __entry->winid,
105007bb7d6SSukadev Bhattiprolu 			__entry->paste_kaddr)
106007bb7d6SSukadev Bhattiprolu );
107007bb7d6SSukadev Bhattiprolu 
108007bb7d6SSukadev Bhattiprolu #endif /* _VAS_TRACE_H */
109007bb7d6SSukadev Bhattiprolu 
110007bb7d6SSukadev Bhattiprolu #undef TRACE_INCLUDE_PATH
111007bb7d6SSukadev Bhattiprolu #define TRACE_INCLUDE_PATH ../../arch/powerpc/platforms/powernv
112007bb7d6SSukadev Bhattiprolu #define TRACE_INCLUDE_FILE vas-trace
113007bb7d6SSukadev Bhattiprolu #include <trace/define_trace.h>
114