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