Loading arch/powerpc/platforms/powernv/vas-trace.h 0 → 100644 +113 −0 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0+ */ #undef TRACE_SYSTEM #define TRACE_SYSTEM vas #if !defined(_VAS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) #define _VAS_TRACE_H #include <linux/tracepoint.h> #include <linux/sched.h> #include <asm/vas.h> TRACE_EVENT( vas_rx_win_open, TP_PROTO(struct task_struct *tsk, int vasid, int cop, struct vas_rx_win_attr *rxattr), TP_ARGS(tsk, vasid, cop, rxattr), TP_STRUCT__entry( __field(struct task_struct *, tsk) __field(int, pid) __field(int, cop) __field(int, vasid) __field(struct vas_rx_win_attr *, rxattr) __field(int, lnotify_lpid) __field(int, lnotify_pid) __field(int, lnotify_tid) ), TP_fast_assign( __entry->pid = tsk->pid; __entry->vasid = vasid; __entry->cop = cop; __entry->lnotify_lpid = rxattr->lnotify_lpid; __entry->lnotify_pid = rxattr->lnotify_pid; __entry->lnotify_tid = rxattr->lnotify_tid; ), TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pid=%d, tid=%d", __entry->pid, __entry->vasid, __entry->cop, __entry->lnotify_lpid, __entry->lnotify_pid, __entry->lnotify_tid) ); TRACE_EVENT( vas_tx_win_open, TP_PROTO(struct task_struct *tsk, int vasid, int cop, struct vas_tx_win_attr *txattr), TP_ARGS(tsk, vasid, cop, txattr), TP_STRUCT__entry( __field(struct task_struct *, tsk) __field(int, pid) __field(int, cop) __field(int, vasid) __field(struct vas_tx_win_attr *, txattr) __field(int, lpid) __field(int, pidr) ), TP_fast_assign( __entry->pid = tsk->pid; __entry->vasid = vasid; __entry->cop = cop; __entry->lpid = txattr->lpid; __entry->pidr = txattr->pidr; ), TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pidr=%d", __entry->pid, __entry->vasid, __entry->cop, __entry->lpid, __entry->pidr) ); TRACE_EVENT( vas_paste_crb, TP_PROTO(struct task_struct *tsk, struct vas_window *win), TP_ARGS(tsk, win), TP_STRUCT__entry( __field(struct task_struct *, tsk) __field(struct vas_window *, win) __field(int, pid) __field(int, vasid) __field(int, winid) __field(unsigned long, paste_kaddr) ), TP_fast_assign( __entry->pid = tsk->pid; __entry->vasid = win->vinst->vas_id; __entry->winid = win->winid; __entry->paste_kaddr = (unsigned long)win->paste_kaddr ), TP_printk("pid=%d, vasid=%d, winid=%d, paste_kaddr=0x%016lx\n", __entry->pid, __entry->vasid, __entry->winid, __entry->paste_kaddr) ); #endif /* _VAS_TRACE_H */ #undef TRACE_INCLUDE_PATH #define TRACE_INCLUDE_PATH ../../arch/powerpc/platforms/powernv #define TRACE_INCLUDE_FILE vas-trace #include <trace/define_trace.h> arch/powerpc/platforms/powernv/vas-window.c +9 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ #include "vas.h" #include "copy-paste.h" #define CREATE_TRACE_POINTS #include "vas-trace.h" /* * Compute the paste address region for the window @window using the * ->paste_base_addr and ->paste_win_id_shift we got from device tree. Loading Loading @@ -880,6 +883,8 @@ struct vas_window *vas_rx_win_open(int vasid, enum vas_cop_type cop, struct vas_winctx winctx; struct vas_instance *vinst; trace_vas_rx_win_open(current, vasid, cop, rxattr); if (!rx_win_args_valid(cop, rxattr)) return ERR_PTR(-EINVAL); Loading Loading @@ -1008,6 +1013,8 @@ struct vas_window *vas_tx_win_open(int vasid, enum vas_cop_type cop, struct vas_winctx winctx; struct vas_instance *vinst; trace_vas_tx_win_open(current, vasid, cop, attr); if (!tx_win_args_valid(cop, attr)) return ERR_PTR(-EINVAL); Loading Loading @@ -1100,6 +1107,8 @@ int vas_paste_crb(struct vas_window *txwin, int offset, bool re) void *addr; uint64_t val; trace_vas_paste_crb(current, txwin); /* * Only NX windows are supported for now and hardware assumes * report-enable flag is set for NX windows. Ensure software Loading Loading
arch/powerpc/platforms/powernv/vas-trace.h 0 → 100644 +113 −0 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0+ */ #undef TRACE_SYSTEM #define TRACE_SYSTEM vas #if !defined(_VAS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) #define _VAS_TRACE_H #include <linux/tracepoint.h> #include <linux/sched.h> #include <asm/vas.h> TRACE_EVENT( vas_rx_win_open, TP_PROTO(struct task_struct *tsk, int vasid, int cop, struct vas_rx_win_attr *rxattr), TP_ARGS(tsk, vasid, cop, rxattr), TP_STRUCT__entry( __field(struct task_struct *, tsk) __field(int, pid) __field(int, cop) __field(int, vasid) __field(struct vas_rx_win_attr *, rxattr) __field(int, lnotify_lpid) __field(int, lnotify_pid) __field(int, lnotify_tid) ), TP_fast_assign( __entry->pid = tsk->pid; __entry->vasid = vasid; __entry->cop = cop; __entry->lnotify_lpid = rxattr->lnotify_lpid; __entry->lnotify_pid = rxattr->lnotify_pid; __entry->lnotify_tid = rxattr->lnotify_tid; ), TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pid=%d, tid=%d", __entry->pid, __entry->vasid, __entry->cop, __entry->lnotify_lpid, __entry->lnotify_pid, __entry->lnotify_tid) ); TRACE_EVENT( vas_tx_win_open, TP_PROTO(struct task_struct *tsk, int vasid, int cop, struct vas_tx_win_attr *txattr), TP_ARGS(tsk, vasid, cop, txattr), TP_STRUCT__entry( __field(struct task_struct *, tsk) __field(int, pid) __field(int, cop) __field(int, vasid) __field(struct vas_tx_win_attr *, txattr) __field(int, lpid) __field(int, pidr) ), TP_fast_assign( __entry->pid = tsk->pid; __entry->vasid = vasid; __entry->cop = cop; __entry->lpid = txattr->lpid; __entry->pidr = txattr->pidr; ), TP_printk("pid=%d, vasid=%d, cop=%d, lpid=%d, pidr=%d", __entry->pid, __entry->vasid, __entry->cop, __entry->lpid, __entry->pidr) ); TRACE_EVENT( vas_paste_crb, TP_PROTO(struct task_struct *tsk, struct vas_window *win), TP_ARGS(tsk, win), TP_STRUCT__entry( __field(struct task_struct *, tsk) __field(struct vas_window *, win) __field(int, pid) __field(int, vasid) __field(int, winid) __field(unsigned long, paste_kaddr) ), TP_fast_assign( __entry->pid = tsk->pid; __entry->vasid = win->vinst->vas_id; __entry->winid = win->winid; __entry->paste_kaddr = (unsigned long)win->paste_kaddr ), TP_printk("pid=%d, vasid=%d, winid=%d, paste_kaddr=0x%016lx\n", __entry->pid, __entry->vasid, __entry->winid, __entry->paste_kaddr) ); #endif /* _VAS_TRACE_H */ #undef TRACE_INCLUDE_PATH #define TRACE_INCLUDE_PATH ../../arch/powerpc/platforms/powernv #define TRACE_INCLUDE_FILE vas-trace #include <trace/define_trace.h>
arch/powerpc/platforms/powernv/vas-window.c +9 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ #include "vas.h" #include "copy-paste.h" #define CREATE_TRACE_POINTS #include "vas-trace.h" /* * Compute the paste address region for the window @window using the * ->paste_base_addr and ->paste_win_id_shift we got from device tree. Loading Loading @@ -880,6 +883,8 @@ struct vas_window *vas_rx_win_open(int vasid, enum vas_cop_type cop, struct vas_winctx winctx; struct vas_instance *vinst; trace_vas_rx_win_open(current, vasid, cop, rxattr); if (!rx_win_args_valid(cop, rxattr)) return ERR_PTR(-EINVAL); Loading Loading @@ -1008,6 +1013,8 @@ struct vas_window *vas_tx_win_open(int vasid, enum vas_cop_type cop, struct vas_winctx winctx; struct vas_instance *vinst; trace_vas_tx_win_open(current, vasid, cop, attr); if (!tx_win_args_valid(cop, attr)) return ERR_PTR(-EINVAL); Loading Loading @@ -1100,6 +1107,8 @@ int vas_paste_crb(struct vas_window *txwin, int offset, bool re) void *addr; uint64_t val; trace_vas_paste_crb(current, txwin); /* * Only NX windows are supported for now and hardware assumes * report-enable flag is set for NX windows. Ensure software Loading