linux/arch/powerpc/platforms/powernv/vas-trace.h
Haren Myneni 7bc6f71bdf powerpc/vas: Define and use common vas_window struct
Many elements in vas_struct are used on PowerNV and PowerVM
platforms. vas_window is used for both TX and RX windows on
PowerNV and for TX windows on PowerVM. So some elements are
specific to these platforms.

So this patch defines common vas_window and platform
specific window structs (pnv_vas_window on PowerNV). Also adds
the corresponding changes in PowerNV vas code.

Signed-off-by: Haren Myneni <haren@linux.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/1698c35c158dfe52c6d2166667823d3d4a463353.camel@linux.ibm.com
2021-06-20 21:58:56 +10:00

114 lines
2.6 KiB
C

/* 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 pnv_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->vas_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>