mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 05:41:55 +00:00
7bc6f71bdf
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
114 lines
2.6 KiB
C
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>
|