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