18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM
48c2ecf20Sopenharmony_ci#define TRACE_SYSTEM	vas
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#if !defined(_VAS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#define _VAS_TRACE_H
98c2ecf20Sopenharmony_ci#include <linux/tracepoint.h>
108c2ecf20Sopenharmony_ci#include <linux/sched.h>
118c2ecf20Sopenharmony_ci#include <asm/vas.h>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciTRACE_EVENT(	vas_rx_win_open,
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci		TP_PROTO(struct task_struct *tsk,
168c2ecf20Sopenharmony_ci			 int vasid,
178c2ecf20Sopenharmony_ci			 int cop,
188c2ecf20Sopenharmony_ci			 struct vas_rx_win_attr *rxattr),
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci		TP_ARGS(tsk, vasid, cop, rxattr),
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci		TP_STRUCT__entry(
238c2ecf20Sopenharmony_ci			__field(struct task_struct *, tsk)
248c2ecf20Sopenharmony_ci			__field(int, pid)
258c2ecf20Sopenharmony_ci			__field(int, cop)
268c2ecf20Sopenharmony_ci			__field(int, vasid)
278c2ecf20Sopenharmony_ci			__field(struct vas_rx_win_attr *, rxattr)
288c2ecf20Sopenharmony_ci			__field(int, lnotify_lpid)
298c2ecf20Sopenharmony_ci			__field(int, lnotify_pid)
308c2ecf20Sopenharmony_ci			__field(int, lnotify_tid)
318c2ecf20Sopenharmony_ci		),
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci		TP_fast_assign(
348c2ecf20Sopenharmony_ci			__entry->pid = tsk->pid;
358c2ecf20Sopenharmony_ci			__entry->vasid = vasid;
368c2ecf20Sopenharmony_ci			__entry->cop = cop;
378c2ecf20Sopenharmony_ci			__entry->lnotify_lpid = rxattr->lnotify_lpid;
388c2ecf20Sopenharmony_ci			__entry->lnotify_pid = rxattr->lnotify_pid;
398c2ecf20Sopenharmony_ci			__entry->lnotify_tid = rxattr->lnotify_tid;
408c2ecf20Sopenharmony_ci		),
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci		TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pid=%d, tid=%d",
438c2ecf20Sopenharmony_ci			__entry->pid, __entry->vasid, __entry->cop,
448c2ecf20Sopenharmony_ci			__entry->lnotify_lpid, __entry->lnotify_pid,
458c2ecf20Sopenharmony_ci			__entry->lnotify_tid)
468c2ecf20Sopenharmony_ci);
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciTRACE_EVENT(	vas_tx_win_open,
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci		TP_PROTO(struct task_struct *tsk,
518c2ecf20Sopenharmony_ci			 int vasid,
528c2ecf20Sopenharmony_ci			 int cop,
538c2ecf20Sopenharmony_ci			 struct vas_tx_win_attr *txattr),
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci		TP_ARGS(tsk, vasid, cop, txattr),
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci		TP_STRUCT__entry(
588c2ecf20Sopenharmony_ci			__field(struct task_struct *, tsk)
598c2ecf20Sopenharmony_ci			__field(int, pid)
608c2ecf20Sopenharmony_ci			__field(int, cop)
618c2ecf20Sopenharmony_ci			__field(int, vasid)
628c2ecf20Sopenharmony_ci			__field(struct vas_tx_win_attr *, txattr)
638c2ecf20Sopenharmony_ci			__field(int, lpid)
648c2ecf20Sopenharmony_ci			__field(int, pidr)
658c2ecf20Sopenharmony_ci		),
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci		TP_fast_assign(
688c2ecf20Sopenharmony_ci			__entry->pid = tsk->pid;
698c2ecf20Sopenharmony_ci			__entry->vasid = vasid;
708c2ecf20Sopenharmony_ci			__entry->cop = cop;
718c2ecf20Sopenharmony_ci			__entry->lpid = txattr->lpid;
728c2ecf20Sopenharmony_ci			__entry->pidr = txattr->pidr;
738c2ecf20Sopenharmony_ci		),
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci		TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pidr=%d",
768c2ecf20Sopenharmony_ci			__entry->pid, __entry->vasid, __entry->cop,
778c2ecf20Sopenharmony_ci			__entry->lpid, __entry->pidr)
788c2ecf20Sopenharmony_ci);
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciTRACE_EVENT(	vas_paste_crb,
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci		TP_PROTO(struct task_struct *tsk,
838c2ecf20Sopenharmony_ci			struct vas_window *win),
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci		TP_ARGS(tsk, win),
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci		TP_STRUCT__entry(
888c2ecf20Sopenharmony_ci			__field(struct task_struct *, tsk)
898c2ecf20Sopenharmony_ci			__field(struct vas_window *, win)
908c2ecf20Sopenharmony_ci			__field(int, pid)
918c2ecf20Sopenharmony_ci			__field(int, vasid)
928c2ecf20Sopenharmony_ci			__field(int, winid)
938c2ecf20Sopenharmony_ci			__field(unsigned long, paste_kaddr)
948c2ecf20Sopenharmony_ci		),
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci		TP_fast_assign(
978c2ecf20Sopenharmony_ci			__entry->pid = tsk->pid;
988c2ecf20Sopenharmony_ci			__entry->vasid = win->vinst->vas_id;
998c2ecf20Sopenharmony_ci			__entry->winid = win->winid;
1008c2ecf20Sopenharmony_ci			__entry->paste_kaddr = (unsigned long)win->paste_kaddr
1018c2ecf20Sopenharmony_ci		),
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci		TP_printk("pid=%d, vasid=%d, winid=%d, paste_kaddr=0x%016lx\n",
1048c2ecf20Sopenharmony_ci			__entry->pid, __entry->vasid, __entry->winid,
1058c2ecf20Sopenharmony_ci			__entry->paste_kaddr)
1068c2ecf20Sopenharmony_ci);
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci#endif /* _VAS_TRACE_H */
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH
1118c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../arch/powerpc/platforms/powernv
1128c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE vas-trace
1138c2ecf20Sopenharmony_ci#include <trace/define_trace.h>
114